稳定性测试是自动化测试领域最为核心的内容之一。稳定性测试设计应该考虑哪些方面?如何在有限的样本上最大化测试产出?笔者结合自动化的一些经验和理解,总结了稳定性测试设计最核心的五个要素:压力、随机、并发、交互以及时间。何解, 一起看一下。
压力
英文中,稳定性叫做Stability;而压力称为Stress。在测试领域,很多人将稳定性测试等价为压力测试。其实不然。稳定性的一个最重要实现途径是通过压力的方式,但是压力不是测试稳定性的唯一方式。压力的内涵是重复地做同样的事情,通过长时间、多轮次的执行,以期达到让功能break或者系统crash的目标。在现实中,这往往是一个比较有效、可行的方式。
但是,压力测试的一个最主要问题是:把一个简单功能重复1000遍和把1000个简单功能轮流执行一遍的效果可能大不相同。前者不一定能够发现问题,但是后者却很有可能发现问题。为什么呢?这就涉及到到下面几个要素。
随机
在稳定性测试中,如果按部就班地一条条case执行下来,也许并不会有太好的产出。因为你的事件序列是固定的、可预测的,没有太多“意外”。
设想一下,在A地和B地之间有若干条路径,但是你每次都走同一条路,那么你可能对这条路上的肯洼不平了如指掌,但是对于其他路径上的情况你却一无所知。
想要探明A到B之间所有的坑,理想的情况是,你可以遍历A和B之间的每一条通路。但是现实情况是,你并不知道到底有多少条