App测试入门

App测试基础知识

App测试,是指对移动应用软件(如手机app、平板app等)进行全面和系统的测试,以确保其功能、性能、安全性、稳定性、兼容性等方面能满足用户的使用需求和期望。

App常见运行系统

  • IOS系统:

    • IOS系统是苹果公司推出的一款封闭式手机操作系统。

    • 其主要开发语言是Objective-C、Swift

    • 只能运行在苹果的移动设备上。

    • IOS系统的版本只能升级,不能降级

  • Android系统:

      由于Android系统开放源代码的特性,各个手机制造商可以基于Android系统开发出自己的定制系统,这些定制系统在保留了Android系统核心功能的基础上,增加了各自的特色功能和用户界面设计。

      eg:
    • 三星-One UI:在Android基础上增加了一些特有的功能,如边缘屏幕、SPen笔功能等。

    • 华为-EMUI:它添加了许多华为自有的功能,如一键优化、手机克隆等。

    • 小米-MIUI:它改变了Android的许多默认界面,同时增加了许多小米特色的功能,如安全中心、小爱同学等。

    • OPPO-ColorOS:它在Android基础上进行了大量的界面和功能修改,例如添加了OPPO特有的智能助手、游戏空间等。

    • ...

    • Android系统是谷歌公司以Linux为核心,开发、发行的一个智能的、开放式的软件平台。

    • 其主要开发语言是JavaKotlin

    • 可运行在各品牌的移动设备上。

    • Android系统的版本可升、可降

    • 在设计上,Android系统明显更多样化,辅助工具也明显多于IOS。

    • 在兼容性问题上,Android也需要比IOS考虑得多一些。

  • HarmonyOS系统

    • HarmonyOS系统是华为自主研发的操作系统,采用了全新的微内核架构。

    • 为了保证应用的兼容性,鸿蒙系统设计了一套兼容层,可以兼容Android应用

  • Windows系统

  • .....

测试包安装

  • IOS安装:

    • 安装包后缀:ipa

    • 可通过Xcode、蒲公英等安装

    • ios测试包安装后,需要信任此App

  • Android安装:

    • 安装包后缀:apk

    • 可通过浏览器、ADB工具等安装

App专项测试

App测试和web的测试之间的主要区别在于用户与软件交互的方式,用户在App上的操作方式和在浏览器上的操作习惯也大不相同。App 需要考虑各种类型的网络状况,还有电话、短信等中断性的事件。

所以在测试App时,我们不仅需要关注功能测试,还需要关注App的专项测试:

  • 性能测试:包括测试App在各种网络环境下的加载速度,以及在多任务处理时的表现。

  • 安全性测试:确保App在数据传输、存储等方面的安全性,防止数据泄露或被恶意攻击。

  • 稳定性测试:测试App在各种极端情况下(如网络不稳定、内存不足等)的表现,以及其崩溃恢复的能力。

  • 兼容性测试:测试App在各种设备、操作系统、浏览器等不同环境下的表现。

  • 用户体验测试:评估App的易用性、交互性、视觉体验等,以提升用户满意度。

  • ....

App测试常见缺陷

  • 功能性缺陷:当App的某个功能无法正常工作时,通常需要开发人员对代码进行调试和修复。例如,如果一个按钮无法正确触发事件,可能需要检查事件处理代码,确认是否存在错误或遗漏。

  • 性能问题:如果App加载缓慢或响应迟钝,可能需要对App进行性能优化。这可能包括优化代码,减少不必要的计算和内存使用,或者升级服务器配置。也可以考虑使用懒加载、缓存等技术来提升性能。

  • 兼容性问题:如果App在某些设备或操作系统上无法正常运行,可能需要对App进行兼容性测试和优化。这可能包括使用更通用的代码和API,或者为特定的设备和系统提供特殊的适配方案。

  • 安全性问题:如果App存在数据泄露或被攻击的风险,需要对App进行安全性加固。这可能包括加密数据,验证用户输入,防止SQL注入和XSS攻击,使用HTTPS等安全协议,以及定期更新和打补丁。

  • 用户体验问题:如果App的操作流程复杂,界面设计不友好,可能需要对App进行用户体验优化。这可能包括简化操作流程,优化界面布局和颜色,提供更清晰的提示和反馈等

App特有性bug举例:

  • 当用户在使用应用时接听来电,应用崩溃

  • 当用户切换至另一应用时崩溃

  • 当用户未主动使用它时,消耗系统资源

  • 当用户离开应用并在稍后返回时,丢失用户的进度

  • 当屏幕在横向和纵向之间旋转时,崩溃或丢失用户的进度

  • 当用户切换界面时,卡顿

  • ...

App常用测试工具

  • Charles

是我们几乎最常用的测试工具,在做App测试时,我们为了分析App端与服务器端的网络通讯协议,常常需要截取网络封包来分析,Charles提供了强大的功能,可以供我们分析网络请求 ,例如:

  • 查看网络请求信息

  • 修改网络请求和返回

  • 模拟弱网环境

  • 简单的压力测试

  • ...

  • ADB

ADB(Android Debug Bridge),安卓调试桥,用于连接电脑与安卓手机,管理安卓设备的工具。

ADB常用命令:

adb devices                                              # 用于查看电脑当前连接的安卓设备
adb install apk文件包                                     # 在安卓设备上安装app
adb uninstall app软件包名                                 # 卸载app
adb logcat                                               # 查看log
adb kill-server                                          # 终止adb服务进程
adb shell                                                # 进入adb运行环境
adb shell "top -n 1|grep package_name"                   # 查看CPU占用率
adb shell dumpsys batterystats > batterystats.txt        # 采集耗电数据
...

mac安装ADB工具教程参考:Mac安装并使用ADB_adb for mac-CSDN博客

  • Testin

Testin是集App测试、Web测试为一体的自动化测试系统,可实现7X24不间断的测试,节约测试成本,全方位提高应用的可靠性。

App测试流程要点解析

  • 集成测试:

一个App中功能繁多,为了提高功能发布效率,常将App中的各个功能模块,分别进行开发、测试,然后再将各模块的新功能代码合并到一起。

在功能测试阶段,我们都是在各自模块的新功能代码中进行测试,在各个模块单独测试通过之后,各模块的新功能代码将合并,此时我们将进行集成测试,再次验证各自的新功能及各个模块之间的交互是否正常,以确保各个模块能够正常协同工作,提供预期的功能。

  • 渠道包测试:

在Android应用开发中,由于存在多个应用市场和发布平台,开发者通常需要为每个平台创建一个定制的应用程序包。这些定制的应用程序包可能会包含一些特定的配置、插件或SDK,以满足该平台的特定要求。这些定制的应用程序包被称为渠道包。

渠道包测试是针对不同发布渠道定制的应用程序包进行的测试,确保在不同的发布平台上,应用程序都能正常运行并提供一致的用户体验。

  • BAT测试:

对App进行基础功能验证,确保基本功能可用。此阶段执行的测试用例是最核心的用例,因此用例数量非常精简,主要用于进行快速的回归测试。

App测试的挑战和发展趋势

挑战

  • 设备和平台的多样性

移动设备的品牌、型号、屏幕尺寸、分辨率、操作系统及其版本等因素都非常多样化,这对App的兼容性测试提出了很大的挑战。

  • 操作系统的更新频繁

移动操作系统经常会进行更新和升级,这可能导致App出现兼容性问题。

  • 网络环境的不稳定

移动设备的网络环境相比桌面设备来说更不稳定,可能会频繁切换网络,或者网络信号弱等,这对App的网络性能和稳定性提出了高要求。

  • 测试资源的限制

与桌面软件测试相比,移动App测试通常需要更多的设备和更复杂的测试环境,可能会导致测试资源的短缺。

  • 安全性和隐私问题

移动设备通常会存储大量的个人信息,如联系人、照片、位置信息等,这使得App在处理这些信息时需要更加小心,防止数据泄露。

  • 用户体验的挑战

移动设备的操作方式(如触屏、重力感应等)和使用场景(如移动中、户外、噪音环境等)与桌面设备有很大的不同,这对App的用户体验设计和测试提出了新的挑战。

  • 测试自动化的难度

由于移动设备的特殊性,App测试的自动化往往比桌面软件测试更加困难。

  • ...

发展趋势

  • 测试自动化

由于移动设备种类繁多,手动进行全面的测试工作既耗时又耗力。因此,测试自动化被看作是提高测试效率和质量的关键。许多工具和框架(如Appium、Selenium等)都在支持移动App自动化测试。

  • 云测试:云测试能提供各种设备和环境,方便进行大规模和全面的测试。随着云计算的发展,云测试可能会成为主流。

  • AI和机器学习

随着人工智能和机器学习技术的发展,它们开始被应用到App测试中。例如,可以利用机器学习分析测试结果,预测和定位缺陷;或者使用AI自动生成测试用例。

  • ...

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值