移动app传统测试流程优化

目前在腾讯 目前在腾讯     2022-08-23     652

关键词:

概述

在传统的软件测试流程中,每一期需求从开发到上线都要经历从需求分析与评审、测试用例评审、开发、测试、发布的流程。其中测试包含了后台测试、前端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)极大程度上实现了自动化过程在测试中的开发与使用。
 
 
 
 

移动app测试方案及流程&测试点归纳

移动app测试方案及流程1.首先是测试资源确认及准备(1)产品需求文档,产品原型图,接口说明文档及设计文档应该齐全(2)测试设备及测试工具的准备:IOS和android的不同年版本的真机,以及测试相关工具的准备 2.测试用... 查看详情

移动测试与传统测试的区别

...能在高端机运行不能在低端机运行也是不行的10.极限测试移动app在一定临界点的行为 如CPU内存超过95%切换飞行模式 切换时区 持续使用下的内存泄露11.非功能测试 最重要的 用户体验  查看详情

读移动app测试

读《互联网移动APP测试》,了解一些测试流程及相关测试技术。反思自己工作中的不足及优点,特作此记录。1、常见研发流程2、测试用例设计及评审1)测试用例的投入2)测试用例编写详细程度标题、步骤、前置条件、测试数... 查看详情

移动app测试经验总结

移动APP的测试与传统的软件测试稍微有些区别。 阅读目录1、移动App比PC上的程序测试要复杂2、移动App测试中如何设计TestCase3、让自己成为真实的用户4、关注用户体验测试5、少做UI自动化,多做后台接口的自动化6、测试你最... 查看详情

移动端手机app耗电量测试:monkey电量测试基本操作及android性能优化

参考技术AMonkey测试简介存放路径:Monkey程序是Android系统自带的,由Java语言写成,在Android文件系统中的存放路径是:/system/framework/monkey.jar。大致操作流程:通过名为“monkey”的Shell脚本去启动Monkey.jar程序(shell脚本在Android文件... 查看详情

移动端自动化测试-wtfappium?

手机App分为两大类,原生App(NativeApp)和混合APP(HybridApp)原生App(NativeApp)原生App实际就是我们所常见的传统App开发模式,云端数据存储+App应用客户端。App应用客户端,包含了所有的UI元素、框架逻辑等。只有数据存储在云端... 查看详情

移动端自动化测试-wtfappium

手机App分为两大类,原生App(NativeApp)和混合APP(HybridApp)原生App(NativeApp)原生App实际就是我们所常见的传统App开发模式,云端数据存储+App应用客户端。App应用客户端,包含了所有的UI元素、框架逻辑等。只有数据存储在云端... 查看详情

app应用测试方法以及测试思路

分析三种主流的移动App类型,并给出和普通web测试不同的地方,给出测试的思路,并给出部分场景组合。移动端测试还是PC端测试,业务测试其实都属于GUI测试的范畴,所以基本的测试思路,比如基于页面... 查看详情

移动app崩溃测试用例设计

移动App测试与传统台式机测试相比有一定的复杂性。这些复杂性可以被分类为:  环境(大量的设备,各种移动OSs,适应频繁OSs变化)。  设备(触摸式和非触摸式设备,有限的内存容量,电池耗电量)。  网络(不同的... 查看详情

移动app性能测试指标

性能测试在应用质量保证中起着重要的作用,概括为三个方面:应用在客户端性能的测试、应用在网络上性能的测试和应用在服务器端性能的测试。通常情况下,三方面有效、合理的结合,可以达到对系统性能全面的分析和瓶颈... 查看详情

app测试流程

这个东西好像我记得在我的移动APP测试经验里有写到。记得不是那么清楚了,正好今天有人问,我就整理一下贴出来给大家看看吧。首先看看下面这个图 我想这幅图应该能够很明确的展示APP测试的流程了。然后需要说明的是... 查看详情

app经常崩溃原因解析转帖

  介绍  我们的日常生活中对移动设备越来越多的使用意味着移动App测试这个主题已成为需要考虑的一个无法避免的问题。根据最近的调查研究,用户难以容忍有bug的移动App。  移动AppBug的影响是用户体验差、App的商... 查看详情

app自动化测试很重要?一文带你搞懂怎么测app

现在是移动互联网的时代,移动端APP产品在不断推陈出新,相应的APP测试人员也变得炙手可热。今天小濠跟大家全面谈谈APP应该怎么做测试。一、首先,移动测试要注意以下几点:移动APP测试中如何设计TestCaseÿ... 查看详情

app自动化测试很重要?一文带你搞懂怎么测app

现在是移动互联网的时代,移动端APP产品在不断推陈出新,相应的APP测试人员也变得炙手可热。今天小濠跟大家全面谈谈APP应该怎么做测试。一、首先,移动测试要注意以下几点:移动APP测试中如何设计TestCaseÿ... 查看详情

netty——概念剖析(零拷贝)(代码片段)

目录一、传统IO问题1.1、传统的IO将一个文件通过socket写出1.2、传统IO的内部工作流程图解1.3、传统IO的内部工作流程概述1.4、传统IO的问题二、NIO优化传统IO2.1、通过DirectByteBuffer优化传统IO2.2、NIO优化的内部工作流程图解2.3、NIO优... 查看详情

netty——概念剖析(零拷贝)(代码片段)

目录一、传统IO问题1.1、传统的IO将一个文件通过socket写出1.2、传统IO的内部工作流程图解1.3、传统IO的内部工作流程概述1.4、传统IO的问题二、NIO优化传统IO2.1、通过DirectByteBuffer优化传统IO2.2、NIO优化的内部工作流程图解2.3、NIO优... 查看详情

传统企业如何选择优质的微信解决方案提供商

...联网变革时代信息化转型的重要性。开始着手构建基于“移动互联网+企业业务流程”整合的互联网+解决方案。对于大多数传统企业来说,开发app是不必要的,因为传统企业只是需要打通移动互联网(不需要通过app做运营),且a... 查看详情

腾讯内部强推app测试笔记太牛了!app测试流程全搞定!

1.UI测试app主要核ui与实际设计的效果图是否一致;交互方面的问题建议,可以先与产品经理确认,确认通过后,才开始让开发实施更改或优化2.功能测试根据软件说明或用户需求验证App的各个功能实现,实际测... 查看详情