应用如何测试App 应用测试方法以及测试思路( 二 )


安装测试:WEB测试基本上没有客户端层面的安装测试,但是App测试是存在客户端层面的安装测试,那么就具备相关的测试点 。
App测试基于手机设备,还有一些手机设备的专项测试 。如交叉事件测试,操作类型测试,网络测试(弱网测试,网络切换)交叉事件测试:就是在操作某个软件的时候,来电话、来短信,电量不足提示等外部事件 。操作类型测试:如横屏测试,手势测试网络测试:包含弱网和网络切换测试 。需要测试弱网所造成的用户体验,重点要考虑回退和刷新是否会造成二次提交 。弱网络的模拟,据说可以用360wifi实现设置 。升级测试:升级测试的提醒机制,升级取消是否会影响原有功能的使用,升级后用户数据是否被清除了 。
从系统架构的层面,WEB测试只要更新了服务器端,客户端就会同步会更新 。而且客户端是可以保证每一个用户的客户端完全一致的 。但是APP端是不能够保证完全一致的,除非用户更新客户端 。如果是APP下修改了服务器端,意味着客户端用户所使用的核心版本都需要进行回归测试一遍 。
如此看来,移动端的测试除了使用的测试框架不同以外,测试设计本身和 GUI 测试有异曲同工之妙,对于移动端还应该有其他的不同测试思路和方法 。
移动应用专项测试的思路和方法
对于移动应用,顺利完成全部业务功能测试往往是不够的,当移动应用被大量用户安装和使用时,就会暴露出很多之前完全没有预料到的问题,
比如:
1.流量使用过多;
2.耗电量过大;
3.在某些设备终端上出现崩溃或者闪退的现象;
4.多个移动应用相互切换后,行为异常;
5.在某些设备终端上无法顺利安装或卸载;
6.弱网络环境下,无法正常使用;
7.Android 环境下,经常出现 ANR(Application Not Responding);

这样的问题还有很多,为了避免或减少此类情况的发生,所以移动应用除了进行常规的功能测试外,通常还会进行很多移动应用所特有的专项测试 。
1. 交叉事件测试
交叉事件测试也叫中断测试,是指 App 执行过程中,有其他事件或者应用中断当前应用执行的测试 。
比如,App 在前台运行过程中,突然有电话打进来,或者收到短信,再或者是系统闹钟等等情况 。所以,在 App 测试时,就需要把这些常见的中断情况考虑在内,并进行相关的测试 。
此类测试目前基本还都是采用手工测试的方式,并且都是在真机上进行,不会使用模拟器 。
首先,采用手工测试的原因是,此类测试往往场景多,而且很多事件很难通过自动化的方式来模拟,比如呼入电话、接收短信等,这些因素都会造成自动化测试的成本过高,得不偿失,所以工程实践中,交叉事件测试往往全是基于手工的测试 。
其次,之所以采用真机,是因为很多问题只会在真机上才能重现,采用模拟器测试没有意义 。
交叉事件测试,需要覆盖的场景主要包括:
1.多个 App 同时在后台运行,并交替切换至前台是否影响正常功能;
2.要求相同系统资源的多个 App 前后台交替切换是否影响正常功能,比如两个 App 都需要播放音乐,那么两者在交替切换的过程中,播放音乐功能是否正常;
3.App 运行时接听电话;
4.App 运行时接收信息;
5.App 运行时提示系统升级;
6.App 运行时发生系统闹钟事件;
7.App 运行时进入低电量模式;
8.App 运行时第三方安全软件弹出告警;
9.App 运行时发生网络切换,比如,由 Wifi 切换到移动 4G 网络,或者从 4G 网络切换到 3G
网络等;

其实你可以发现,这些需要覆盖的场景,也是我们今后测试的测试用例集,每一场景都是一个测试用例的集合 。
2. 兼容性测试
兼容性测试顾名思义就是,要确保App在各种终端设备、各种操作系统本、各种屏幕分辨率、各种网络环境下,功能的正确性 。常见的App兼容性测试往往需要覆盖以下的测试场景:
1.不同操作系统的兼容性,包括主流的 Andoird 和 iOS 版本;
2.主流的设备分辨率下的兼容性;
3.主流移动终端机型的兼容性;
4.同一操作系统中,不同语言设置时的兼容性;
5.不同网络连接下的兼容性,比如 Wifi、GPRS、EDGE、CDMA200 等;
6.在单一设备上,与主流热门 App 的兼容性,比如微信、抖音、淘宝等;

兼容性测试通常都需要在各种真机上执行相同或者类似的测试用例,所以往往采用自动化测试的手段 。同时,由于需要覆盖大量的真实设备,除了大公司会基于 Appium + SeleniumGrid+OpenST去搭建自己的移动设备私有云平台外,其他公司一般都会使用第三方的移动设备云测平台完成兼容性测试 。第三方的移动设备云测平台,国外最知名的是 SauceLab,国内主流的是Testin 。