移动app传统测试流程优化

[本文出自天外归云的博客园]前端

概述

在传统的软件测试流程中,每一期需求从开发到上线都要经历从需求分析与评审、测试用例评审、开发、测试、发布的流程。其中测试包含了后台测试、前端web测试、客户端测试。后台测试又包括后台代码逻辑测试、接口测试、接口压力测试等,web端测试包含了前端页面的UI界面测试、PC与移动端浏览器兼容性测试和功能测试等,而客户端测试包含的测试项目较多,而每项测试又相对技术含量较高,从而引入了专项测试的概念。和针对客户端每期需求所作的功能测试不一样,专项测试的结果虽然与产品的具体功能相关,又包含独立于产品需求功能以外的部分。这也使得咱们在设计客户端测试用例的时候常常会把属于专项测试中的部份内容忽略掉,从而致使了一些在设计测试用例思路上的疏漏。
 

移动app专项测试有哪些

从专项测试的概念出发,移动端app的专项测试包括:
安装包测试、兼容性测试、内存泄露测试、耗电量测试、流量测试、冲突测试、弱网测试、接口容错测试、系统权限测试、过分绘制测试。
 
在现有的业务中引入专项测试,咱们须要考虑如下三点:
1. When to 专项测试?
2. How to 专项测试?
3. Why to 专项测试?
 

安装包测试

安装包测试介绍
安装包测试就是对包括安装、卸载、升级三种方式在内的提示信息的测试、安装和升级后的包名称、版本信息、logo、客户端主要功能的验证与测试。安装包测试的重要性不言而喻,它直接可以影响用户下载量和app激活率,间接影响用户转化率。
安装包测试主要包括如下几点:
1)常规安装包测试;
2)从低版本到高版本的覆盖安装测试;
3)从低版本到高版本的app内部升级测试;
4)过程当中手机内存、硬盘不足状况下的安装包测试;
5)安装杀毒软件的前提下的安装包测试;
6)过程当中强行关机、断网、电话呼入呼出、跳转到其余app内进行操做的安装包测试;
7)中断测试(检查是否可以回退到以前状态):安装中断、卸载中断、升级中断;
8)不一样iOS版本、安卓版本的安装包测试。
何时进行安装包测试?
安装包的测试在软件测试流程中的阶段要先于功能测试阶段。
 

兼容性测试

兼容性测试介绍
兼容性测试就是针对app所处硬件与软件环境的不一样而进行的测试。兼容性测试很重要,若是一个app换个手机就闪退,换个系统就抛异常,无疑会间接影响到用户对产品的评价,直接与间接的增长用户的流失率、减小app的下载量。
兼容性测试主要包括如下几种:
1)操做系统版本兼容:Andoird版本,iOS版本;
2)屏幕尺寸与分辨率兼容:
2.8英寸分辨率为640x480(VGA) 像素密度286PPI 
3.5英寸分辨率为960x640(DVGA) 像素密度326PPI(iPhone4)
4.0英寸分辨率为1136x640(HD) 像素密度330PPI(iPhone5)
4.7英寸分辨率为1280x720(HD) 像素密度312PPI
... ...
10 英寸分辨率为2560x1600 像素密度299ppi
3)Android ROM兼容:小米、华为、魅族、中兴、谷歌、三星;
4)网络类型兼容:Wifi、3G、4G。
何时进行兼容性测试?
兼容性测试通常在功能测试没有问题的基础上展开,在软件测试流程中的阶段排在功能测试阶段以后、发版上线阶段以前。
 

内存泄露测试

内存泄露测试介绍
内存泄露测试就是为了检测在测试的过程当中是否有内存泄露的状况的发生而进行的测试。偶尔的内存泄漏现象通常用户是难以察觉的,可是这部分的测试仍然很是有必要,由于内存泄露的堆积会最终消耗尽系统全部的内存,严重影响机器的性能。内存泄露测试须要借助于工具。
何时进行内存泄露测试
内存泄露测试贯穿着整个软件测试流程,因此内存泄露测试和功能测试阶段进行。
 

耗电量测试

耗电量测试介绍
耗电量测试就是在不一样的场景下为检测电量消耗程度而进行的测试。之因此要进行耗电量测试,举例来讲,有用户反馈在用一款app的时候发现电量消耗很快,最后把app卸载了之后一切恢复了正常。若是用户间接的评论了产品,用户的评价将直接影响app的下载量。耗电量的测试须要借助于工具。几个典型的耗电场景以下:
  1)定位,尤为是调用GPS定位;
  2)网络传输,尤为是非Wifi环境;
  3)屏幕亮度;
  4)CPU频率(一些客户端内的操做会增长CPU频率);
  5)内存调度频度(同上);
  6)锁屏与唤醒的时间和次数。
耗电量测试用例的设计需围绕以上几点,结合需求与功能进行展开。
何时进行耗电量测试
耗电量测试能够和功能测试阶段进行。
 

流量测试

流量测试介绍
流量测试就是在手机上面点击想要测试的界面或者一组场景,而后查看用了多少流量的测试。流量测试很重要,有些产品的流量消耗是严重的,而一些用户安装了流量统计软件,用户可能会考虑卸载掉那些流量消耗严重的软件或在没有wifi的状况下禁止使用相应的app。流量测试须要借助于工具。
何时进行流量测试
流量测试能够在确保功能没有问题的前提下与功能测试阶段进行。
 

冲突测试

冲突测试介绍
冲突测试就是在运行某一程序的功能时被第三方功能或软件干扰的测试。冲突测试是一种对软件状态的测试,软件状态又分为“开始”、“挂起”、“结束”三种,因此冲突测试也是模拟干扰软件运行“开始”、“挂起”、“结束”三种状态的测试。在模块的操做过程当中触发一些常见的打断,测试客户端对于事件优先级的处理是否影响功能。冲突测试的难点在要打断一个事件须要事先算好时间,而对于有些速度快难以打断的状态来讲想要实现冲突测试有时须要借助于一些自动化的手段来实现。
冲突测试主要关注的点:
1)来电呼入;
2)网络切换;
3)短信通知;
4)Push消息;
5)闹钟;
6)USB插入;
7)挂起;
8)程序历史记录启动;
9)长按键关机;
10)自动横屏;
11)锁屏待机;
何时进行冲突测试
冲突测试涉及整个软件测试流程,例如:安装包测试中就涉及了冲突测试。因此,冲突测试贯穿整个软件测试流程,先于功能测试阶段进行。
 

弱网测试

弱网测试介绍
弱网测试就是在不一样网络环境下对app所进行的测试。受网络情况影响的功能每每与后台接口相关,客户端内数据的更新也是经过调用后台接口并接收返回来的数据而完成的。设计弱网测试用例的关键在于分析哪些功能与后台接口挂钩,凡是与后台接口挂钩的功能,都有必要考虑是否须要针对性的设计弱网测试用例。弱网的模拟须要借助于工具。
何时进行弱网测试
弱网测试和功能测试阶段进行。
 

接口容错测试

接口容错测试介绍
接口容错测试就是对于服务端接口返回异常或不合理的数据的状况下,验证客户端内是否可以正确处理异常数据的测试。接口返回超时及返回异常都应该对应在客户端内有合理的提示以提升用户体验度。接口容错测试须要借助抓包工具来完成对接口返回数据的修改。
何时进行接口容错测试
接口容错测试与功能测试阶段进行。
 

系统权限测试

系统权限测试介绍
系统权限测试就是针对app须要获取系统权限处所设计的测试。在测试的过程当中主要检查客户端内对于获取系统权限处的处理是否友好,功能上是否正常。咱们须要对涉及到获取系统权限的功能模块作一个统计,从而肯定设计测试用例的范围。每每涉及系统权限测试相关的功能点也包含在客户端每期的需求当中,因此涉及系统权限方面的测试点通常不容易被忽略。
测试用例需包含对app设置了“容许权限”、“提醒权限”、“禁止权限”三种状况:
1)容许权限:app内相关模块功能正常;
2)提醒权限:app内相关模块功能触发时会出现提醒;
3)禁止权限:app内相关模块功能触发时会友好提示,并不会有异常和崩溃的现象。
何时进行系统权限测试
系统权限测试与功能测试阶段进行。
 

过分绘制测试

过分绘制测试介绍
过分绘制是指在一帧的时间内(16.67ms)像素被绘制了屡次,每次绘制都会占用CPU,当绘制超时时就会出现卡顿现象。而过分绘制测试就是要检查在测试过程当中是否有过分绘制的现象发生。测试每每须要借助于工具,由于过分绘制现象肉眼很难可以分辨。Android系统的开发者工具中提供了“强制进行GPU渲染”功能能够帮助咱们来发现过分绘制现象。产品并不知道哪些功能模块会有过分绘制的风险,因此并不会把涉及过分绘制的内容写到需求说明文档中。因为须要对可能发生过分绘制的地方有必定的把握能力(通常在涉及Activity跳转的地方返回容易有过分绘制现象发生。例如:从Activity A跳转到Activity B后Activity A没有被销毁,从Activity B返回Activity A后Activity A又被重现建立,这时就容易出现过分绘制),因此实际测试中咱们很容易将这部分测试用例的设计忽略掉。
过分绘制主要关注的地方举例(拿“一元乐购”app来讲):
1)首页的快捷入口icon(充值、1元变20、晒单、易中商品);
2)乐购头条滚动栏可点击的部分。
想要设计这部分的测试用例,须要:
1)弄清app内可能存在的全部Activity;
2)肯定能触发Activity之间跳转的功能模块;
何时进行过分绘制测试
过分绘制测试与功能测试阶段进行。
 

移动app专项测试实施方案

从以上总体对专项测试阶段的把握来看,分三队:
第一队:安装包测试、冲突测试;
第二队:内存泄露测试、耗电量测试、流量测试、弱网测试、接口容错测试、系统权限测试、过分绘制测试;
第三队:兼容性测试。
 

具体实施方案

安装包测试:建议对安装方面有改动时测,无需每次都测;
冲突测试:冲突测试用例要和功能测试用例一块儿设计到客户端功能测试用例中;
内存泄露测试:建议经过自动化工具对测试过程全程进行监控,一旦发现泄露状况,客户端屏幕截图、收集泄露先后的日志、发送popo给客户端开发;
耗电量测试:建议经过自动化工具进行检测;
流量测试:建议经过自动化工具辅助完成测试,要求工具能够检测一段时间内app的流量,配合手工点击本次需求所涉及到的客户端与请求操做相关的按钮或操做结合设定的流量标注来肯定是否有严重的流量问题;
弱网测试:建议经过自动化工具模拟各类程度的弱网,对涉及到的客户端与请求操做相关的按钮或操做进行弱网测试;
接口容错测试:接口容错测试用例要和功能测试用例一块儿设计到客户端功能测试用例中;
系统权限测试:系统权限测试用例要和功能测试用例一块儿设计到客户端功能测试用例中;
过分绘制测试:过分绘制测试用例要和功能测试用例一块儿设计到客户端功能测试用例中;
兼容性测试:借助兼容性测试平台完成(传统作法:处处借手机点点点)。
 

实施流程

对以上实施方案再次进行整理概括,能够对传统测试流程进行改进。对于每次需求,分如下阶段——
1. 确认阶段:
1)肯定涉及Activity之间跳转的功能模块;
2)肯定与后台请求相关的全部按钮或操做。
2. 测试用例设计阶段:
1)功能测试用例;
2)冲突测试用例;
3)接口容错测试用例;
4)系统权限测试用例;
5)过分绘制测试用例。
3. 测试执行阶段:
1)手工测试:安装包测试(按需)、功能测试;
2)半自动测试(一半靠手点,一半靠工具):流量测试、弱网测试;
3)自动化测试(彻底靠工具):内存泄露测试、耗电量测试(选取主要机型进行);
4)兼容性测试(借助于兼容性测试平台手工测试)。
 

自动化工具

1)自动化流量测试辅助工具,要求:能够进行一段时间内的流量统计;
2)自动化弱网测试辅助工具,要求:能够选择设置各类程度的弱网;
3)内存泄露自动化测试工具;
4)耗电量自动化测试工具。
 

总结

如今的移动app软件测试流程能够概括为:四个工具、三个阶段、一个平台。
相对传统移动app测试流程的优化:
1)极大程度上丰富与完善了功能测试用例的设计方法;
2)极大程度上实现了自动化过程在测试中的开发与使用。
相关文章
相关标签/搜索