什么是APP稳定性测试?
app的稳定性也可以理解为app的健壮性、可靠性。通俗的说就是对app进行破坏性测试,app也能达到稳定的一个状态。
对被测应用进行长时间的操作,在各种场景使用过程中都可以正常使用,不出现或极少出现崩溃/闪退、无响应等问题。
好比一个健康的成年人,出现了普通发烧感冒也不会影响其正常的生活,那么我们会认为其身体还是健康的。回到APP测试也是一样,如果对被测应用进行各种操作,长时间操作,也不会影响APP的正常使用,我们就会认为这款APP在稳定性方面是符合预期的。
APP稳定性测试的目的
测试APP是否达到一个稳定的状态。
APP稳定性测试什么时候执行
在面试时问到候选人app稳定性测试在什么时候执行效果最好?大部分候选人都是回答等app稳定后再开始进行稳定性测试。
如果理解了app稳定性测试的目的,都不会这么回答。app稳定性测试目的是测试app是否达到一个稳定的状态,结合缺陷越早发现修复的成本越低的原则,越早发现app在稳定性方面的缺陷,越早暴露修复,上线后对用户的影响就会越小。
所以 APP稳定性在测试前期就开始执行测试,比如APP提测后,每天利用晚上的时间来执行,第二天早上看结果,既不会占用测试时间,也可以尽早发现问题。
APP稳定性测试如何执行
面试过程中问到APP稳定性测试怎么执行,大部分候选人都能回答出来使用monkey工具。Monkey测试是最常用的一种测试手段。
APP稳定性判断
APP稳定性判断的常用的指标是崩溃率、ANR率。
ANR(Application Not Response)是指在Android上,应用程序响应不够灵敏时,系统会向用户显示的一个对话框。
如果用计算公式来说明那就是:
1-崩溃率(或 ANR率)
崩溃率或ANR率越小,稳定性越好。
测试阶段可以用公式:
崩溃率(ANR率) = 崩溃次数(ANR次数) / 总操作次数 * 100%
上线后使用的公式:
崩溃率(ANR率) = 一段时间内崩溃用户数 / 一段时间内总用户数 * 100%
影响APP稳定性的因素
常见影响APP稳定性的原因有以下几种:
内存问题
- app所需内存超过设备限制(如可用内存过低时),导致app崩溃闪退;
- app内存泄漏,耗尽设备全部内存导致整个系统崩溃;
- app内存越界,使用了非授权的内存位置导致app崩溃。
程序逻辑错误
- 数组越界,如负数索引、超过数组长度的索引;
- 堆栈溢出,如堆栈区缓冲区被填满,堆栈空时取数据等;
- 并发操作,如并发时调用了一个已释放的指针;
- 逻辑错误,如0除作为除数问题。
交互逻辑
- app界面交换操作滑动导致app崩溃。
未处理等中断及异常
- app在使用过程中面临很多中断、如切后台、接听电话、切换网络、断网以及用户的一些非预期操作。
网络因素
- 网络不佳、弱网环境,无法达到app所需的快速响应时间,导致app崩溃。
- 不同网络的切换。