本文已参与掘金创作者训练营第三期「高产更文」赛道
稳定性测试,是测试过程中以目标为维度分类的一个大类,经常有人听说,但是实际在面试过程中,发现很多同学对这个概念不是很清晰,其中不乏很多大厂出来的同学。
1.什么是稳定性测试
稳定性是测试中比较大的一类测试,目的是保证被测软件/系统在任何条件/环境下都能保持功能正常,或者正确处理异常和突发情况。因此,从广义上讲,只要在异常/极端/特殊条件下触发,目标是保证系统稳定的,均可称为稳定性测试,这是一种广义的说法。狭义的说法,可以约等于我下面讲的2.2部分。
2.稳定性测试怎么做
稳定性测试常常贯穿在整个测试阶段,大致可以分如下三大类测试:
2.1 系统健壮性测试
健壮性测试更多倾向于指系统应对本身服务异常、请求/入参异常、中间件异常、上下游服务异常情况下,整个系统是否可以正确或者合理展示结果。
2.2 “稳定性”测试
稳定性测试相较于性能测试,更偏向于长时间(通常2-7天)在一定压力下(这个压力不应该是QPS的峰值,而是日常流量的5-8分位)看系统功能是否正常,更加重要的是看系统占用资源是否正常,比如是否存在内测泄漏等情况。这种测试方法更多用于迭代周期较长或者大版本产品,toB比较多见。
2.3 性能测试
性能测试,即在保证系统在较大吞吐量时的表现。考察点与压力测试比较类似,一个是功能是否正确,另一个比较关键的就是资源占用情况的合理性。做性能测试也有很多误解,很多同学认为只要给个大流量,直接压就可以了,这是一误区,做性能测试的正确步骤如下:
- 评估是否需需要做性能测试
- 做业务建模,分析系统不稳定风险点
- 制定压测策略
- 准备压测工具&数据
- 压测实施