4.5.3 稳定性测试法
稳定测试法是一种在一段时间里长时间、高负载运行某种业务的可靠性测试方法。稳定性测试法能够非常有效地测试系统的成熟性,是一种非常重要的可靠性测试方法。
正如4.3.1节讨论的,稳定性测试、压力测试和性能测试存在一定的关系,如图4-15所示,我们以负载的高低来区分不同测试。实际上,我们还可以把负载再扩大,扩大到系统规格:
·超过系统规格的测试是压力测试。
·确定是否可以达到系统规格的测试是性能测试。
·在系统规格内的测试是稳定性测试。
所谓系统规格,是指系统承诺的能够处理的最大容量或能力。在产品开发过程中,常见的产品规格表就是我们这里所说的系统规格。
接下来介绍一套有趣的稳定性测试心法——稳定性测试四字诀。
第一诀:“多”
“多”字诀的要义是,在测试中通过增加用户对功能的操作数量来测试系统的稳定性。
还是以“用户发送电子邮件”为例。使用“多”字诀,我们可以测试用户发送500封邮件或发送1000封邮件时系统的稳定性。
第二诀:“并”
“并”字诀的要义是,在测试中让多个用户同时来操作这个功能,由此来测试系统是否依然稳定。有时我们也称这种测试为并发测试。
以“用户发送电子邮件”为例,在“并”字诀下,我们可以让500个用户同时向服务器发送电子邮件(假设系统支持的最大并发用户数低于500)。
第三诀:“复”
“复”字诀的要义是,在测试中让一个或多个用户,反复进行新建、刷新、删除、同步、备份之类的操作,以此来测试系统是否稳定。使用“复”字诀能够快速、有效地发现系统在处理时序、资源申请/释放上是否存在问题。这是非常重要的稳定性测试方法。
以“用户发送电子邮件”为例,使用“复”字诀,我们可以在一段时间内(如1天、1周)通过500个用户反复进行登录邮箱、编写邮件、发送邮件、退出邮箱等操作,观察系统是否依然正常稳定。
第四诀:“异”
“异”字诀的要义是,在测试中让一个或者多个用户反复进行异常操作,验证系统是否能够持续做出合理的反应。
和异常输入法和故障植入法相比,“异”字诀强调的是“持续”和“累积”。事实上,开发者在进行编码的时候,常会考虑正确情况下的资源申请和回收而忽视异常情况下的资源回收。“异”字诀在发现缺陷方面非常有效。
还是以“用户发送电子邮件”为例,我们可以测试用户持续(如1天、1周)发送地址是非法输入值的邮件,用户在长时间(如1天、1周)处于网络故障的情况下持续发送邮件等情况。
实际测试时,我们应将“多、并、复、异”等稳定性测试方法组合起来使用,让测试更为灵活有效。