测试架构师修炼之道:从测试工程师到测试架构师(第2版)
上QQ阅读APP看书,第一时间看更新

4.3.2 如何通过质量属性来探索测试方法

质量属性除了帮我们理解测试类型,还能启发我们找到测试方法。

下面我们以“可靠性”为例,看看能得到哪些启发。在4.2.6节中,我们已经讨论了可靠性及其子属性——成熟性、可用性、容错性、易恢复性和可靠性的依从性。

我们希望系统在正常的情况下不出故障,这启发我们:是不是可以通过“长时间”“大并发”“新建”“各种混合业务”等手段去测试其成熟性?

我们希望系统对异常有一定的容忍度,遇到异常时系统的正常功能不会受到影响,这让我们想到:是不是可以通过“人为制造故障”“加大负载”等方式去测试其容错性?

我们希望系统出现问题后可以快速恢复,这让我们想到:是不是可以通过正常和异常反复的方式来测试其可恢复性?

然后我们对上述启发点进行归纳总结,可以得到“异常值测试”“故障植入测试”“稳定性测试”“压力测试”和“恢复测试”等各种测试方法。当然,实际工作中我们还可以结合业务的实际情况和测试经验(如失效规律[1])来获得更多更有针对性的测试方法。例如对需要进行网络协议交互的系统,模糊测试(Fuzzing测试)[2]就是一种可以有效测试协议的健壮性的测试方法,这种方法可以测试系统的成熟度、容错性和可恢复性。

图4-16总结了从质量属性到测试方法的整个启发式思考和总结的过程。

图4-16 由可靠性质量属性得到可靠性测试方法

[1] 失效规律就是发现问题的方法。

[2] Fuzzing测试也是一种专业的安全测试手段。