本篇文章将简单系统地介绍冒烟测试(Smoke testing)、可用性测试(Sanity testing)及回归测试(Regression testing),并对三种测试进行对比。
文章目录
一、 冒烟测试(Smoke testing)
起源
Smoke testing起源于管道测试——通过往管道中灌烟,查看管道是否冒烟,来初步判断管道是否有缝隙。
由此我们可以推断出Smoke Testing 只是一种初级、直观的测试。类似地,在软件测试环境中,冒烟测试指的是测试构建(Build)的基本功能。如果测试失败,构建将被宣布为不稳定,并且在构建的冒烟测试通过之前不再测试。
总结起来,冒烟测试具有以下五特征:
- 确定产品必须满足的关键业务功能。
- 设计和执行应用程序的基本功能。
- 确保每一次构建都能通过冒烟测试,以便继续测试。
- 烟雾测试能够发现明显的错误,从而节省测试团队的时间和精力。
- 烟雾测试可以是手动或自动的。
冒烟测试与BVT虽然相似,但仍有一定的区别,两者在执行阶段、内容、执行结果对后续工作的影响等方面有着本质区别。
二、可用性测试(Sanity testing)
Sanity Testing 是在接收到软件构建(Build)后进行的一种测试,在代码或功能上做了细微的更改,以确定缺陷已被修复,并且不会因这些更改而引入进一步的问题。目标是确定所建议的功能大致如预期的那样工作。如果Sanity Testing失败,那么构建将被拒绝,以节省进行更严格测试所需的时间和成本。
Sanity Testing 通常是无脚本的,它用于确定应用程序的某个部分在发生微小更改后是否仍在工作。因此,Sanity Testing 是一种狭义的回归测试,它主要关注一个或几个功能领域。
需要在软件构建中执行Sanity Testing和Smoke Testing时,应首先执行Smoke Testing,然后再继续进行Sanity Testing。
三、回归测试(Regression testing)
回归测试一种黑盒测试技术,包括重新执行受代码更改影响的测试,以确认此次修改没有引入新的错误。在整个软件开发生命周期中,这些测试应该尽可能频繁地执行。
回归测试分为两类:
1. 完全回归(Retest all):
测试时选择基线测试用例库中的所有用例进行回归测试,这是一种最为保险的策略,相对于部分回归策略,其可以将遗漏regression bug的概率降到最低,但这种方式同时也是所有策略中成本最高的一种方式。
2. 部分回归:
部分回归是指在回归测试时选择基线测试用例库中的一部分用例进行回归测试,而不是所有用例全部执行,相对于完全回归测试,这种测试策略效率很高,并且所需要的时间和成本比较少,但也没有完全回归覆盖率高(或者说遗漏回归bug的概率比完全测试高)。
回归测试步骤:
- 选择回归测试。
- 选择apt工具并自动化回归测试
- 使用检查点验证应用程序
- 必要时管理回归测试/更新
- 安排测试
- 将构建集成
- 分析结果
四、三种测试的对比
Smoke testing | Sanity testing | Regression testing | |
---|---|---|---|
深度 | 不深入 | 深入 | 深入 |
广度 | 广泛全面 | 有限 | 广泛全面 |