一、什么是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率。 如果用计算公式来说明那就是:1-崩溃率/ANR率来衡量,崩溃率/ANR率越小,稳定性越好。 测试阶段可以用公式:崩溃率/ANR率=崩溃次数(ANR次数)/总操作次数*100% 上线后使用的公式:崩溃率/ANR率=一段时间内崩溃用户数/一段时间内总用户数*100% 六、影响APP稳定性的因素 常见影响APP稳定性的原因有以下几种:
- app所需内存超过设备限制(如可用内存过低时),导致app崩溃闪退
- app内存泄漏,耗尽设备全部内存导致整个系统崩溃
- app内存越界,使用了非授权的内存位置导致app崩溃●程序逻辑错误
- 数组越界,如负数索引、超过数组长度的索引
- 堆栈溢出,如堆栈区缓冲区被填满,堆栈空时取数据等
- 并发操作,如并发时调用了一个已释放的指针
- 逻辑错误,如0除作为除数问题●交互逻辑
- app界面交换操作滑动导致app崩溃●未处理等中断及异常
- app在使用过程中面临很多中断、如切后台、接听电话、切换网络、断网以及用户的一些非预期操作●网络因素
- 比如网络不佳、弱网环境,无法达到app所需的快速响应时间,导致app崩溃
- 不同网络的切换