什么是app稳定性测试?

什么是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崩溃。
  • 不同网络的切换。 



我的回答