浅谈冒烟测试(Smoke Testing)
鉴于之前跟开发提到提测前需要进行冒烟测试,然后几个开发一脸迷茫的问我:什么叫冒烟测试?所以我准备跟大家从以下几个方面简单的分享一下什么是冒烟测试。
一、软件测试的分类

二、冒烟测试(Smoke Testing)的概念
Smoke Testing 的概念最早源于制造业,用于测试管道。测试时,用鼓风机往管道里灌烟,看管壁外面是否有烟冒出来,以便检验管道是否有缝隙。这一测试显然比较初级,更深层一点的测试至少要进行渗油测试、带压测试等等。Smoke Testing 只是一种初级、直观的测试。
软件测试中的 Smoke Testing 实际上用的是其引申含义,而且是引申了不止一道的含义,在这里,Smoke Testing 其实是个俚语就跟很多其他源于美国软件行业的名词一样。
Smoke Testing 在软件测试中的意义,应该说取的是其原始概念中的目的而非手段。通过 Smoke Testing,在软件代码正式编译并交付测试之前,先尽量消除其表面的错误,减少后期测试的负担。因此可以说,Smoke Testing 是预测试。
冒烟测试是指对提交测试的软件在进行详细深入的测试之前而进行的预测试,这种预测试的主要目的是暴露导致软件需重新发布的基本功能失效等严重问题。冒烟测试可以由开发人员执行,也可以由测试人员来执行。即,在版本编译后正式提交测试之前由开发人员执行;或开发发布版本后,测试人员在接受这个版本作为正式版本进一步测试前执行。
微软提出在审查了变更的代码后,冒烟测试是确认修复的缺陷及功能变更是否有效的最经济有效的方法。冒烟测试能手动执行,也可以在版本编译后自动化执行,它是对基本功能的确认,非深入测试,但要覆盖到面,即所有的更改点都要进行确认。采用自动化执行是,可以结合每日构件后进行自动化的每日smoking test,如果测试通过,则把更改后的代码自动合并到主干代码仓库中,作为正式提交测试的版本。
三、冒烟测试可以实施的步骤
对于smoking test在软件开发过程中的应用,下面提出一种可实施的步骤:
1. 根据软件的变更,包括新需求的实现、bug修复,设计出更改满足预期的功能级checklist。
2. 准备好测试环境。如:软件的运行环境是嵌入式产品,如手机,数码相机,医疗仪器等,需准备好用户使用的真实运行环境。如果是windows平台运行环境,请准备干净的操作系统。
3.执行checklist,确认基本功能有效,足以支持更进一步的详细、全面测试。
四、冒烟测试的优缺点
冒烟测试就是在每日build建立后,对系统的 基本功能进行简单的测试。
冒烟测试的对象是每一个新编译的需要正式测试的软件版本,目的是确认软件基本功能正常,可以进行后续的正式测试工作。冒烟测试的执行者是版本编译人员。
SmokeTest优点是节省测试时间,防止build失败。缺点是覆盖率还是比较低。
五、冒烟测试(Smoke Testing)与回归测试(Regression testing)的区别
冒烟测试就是新版本送测后的测试,以决定是否要继续测试乃至发布。回归测试就是解决一个问题后的测试,方向是判断新的代码是否引入了新问题。冒烟测试一般用于每日构建(Nightly build),构建服务器首先从CVS服务器上,下载最新的源代码,然后编译单元测试,运行单元测试通过后,编译可执行文件,可执行文件若可运行,并能执行最基本的功能,则认为通过了冒烟测试。而回归测试,是软件维护阶段对软件修改后进行的测试。两种测试用在软件生命的不同周期。
根据对冒烟测试和回归测试的理解,总结了二者的一些区别,如下:
|
冒烟测试 |
回归测试 |
|
|
使用阶段 |
单元测试之后 |
软件维护阶段 |
|
测试侧重点 |
新版本送测后,对基本功能的粗略测试 |
解决一个问题后,判断是否引入新的问题 |
|
消耗时间 |
节省时间 |
消耗时间长 |
|
覆盖率 |
低 |
高 |
|
执行人 |
提测前是开发;版本上线前是测试 |
测试 |
浅谈冒烟测试(Smoke Testing)的更多相关文章
- 测试员浅谈App测试的重点
近年来,手机app也时持续大热.基于安卓和ios的手机app,更是受到众多投资者的青睐.而手机软件测试行业也是如此. 现在听的最多的是web测试和App测试,但实际上两者本质上没有什么区别,性质都一样 ...
- 浅谈session测试
Session 是用于保持状态的基于 Web 服务器的方法,在 Web 服务器上保持用户的状态信息供在任何时间从任何页访问.Session 允许通过将对象存储在 Web 服务器的内存中在整个用户会话过 ...
- 浅谈cookie测试
Cookie 提供了一种在Web 应用程序中存储用户特定信息的方法,例如存储用户的上次 访问时间等信息.假如不进行cookie存储一个网站的用户行为,那么可能会造成以下问题:用户进行购买几件商品转到结 ...
- 大牛浅谈Web测试基于实际测试的功能测试点总结
今天跟大家讲解的是web测试在实际测试的功能测试点的一些小总结,希望对你们有帮助,有说的不好的地方,还请多多指教! 一.页面链接检查:测试每一个链接是否都有对应的页面,并且页面之前可以正确切换. ...
- 冒烟测试、α测试、Beta测试、性能测试
“冒烟测试”(也可称为showcase)这一术语描述的是在将代码更改嵌入到产品的源树中之前对这些更改进行验证的过程. 冒烟测试(smoke test)在测试中发现问题,找到了一个Bug,然后开发人员会 ...
- Smoke Testing(冒烟测试)
Smoke Testing 的概念最早源于制造业,用于测试管道.测试时,用鼓风机往管道里灌烟,看管壁外面是否有烟冒出来,以便检验管道是否有缝隙.这一测试显然比较初级,更深层一点的测试至少要进行渗油测试 ...
- 冒烟测试(smoke testing)
冒烟测试(smoke testing),就是开发人员在个人版本的软件上执行目前的冒烟测试项目,确定新的程序代码不出故障.冒烟测试的对象是每一个新编译的需要正式测试的软件版本,目的是确认软件基本功能正常 ...
- 浅谈测试rhel7新功能时的感受及遇到的问题【转载】
半夜起来看世界杯,没啥激情,但是又怕错误意大利和英格兰的比赛,就看了rhel7 相关新功能的介绍. rhel7的下载地址: https://access.redhat.com/site/downloa ...
- [原创]浅谈移动互联网App兼容性测试
[原创]浅谈移动互联网App兼容性测试 今天要谈的话题,估计各位测试都有感受,移动互联网App兼容性测试,我们到底测试覆盖如何去挑选机型?具体移动App兼容性测试如何开展?是不是应引进像testin这 ...
随机推荐
- 何为JQuery对象?
- mysql 与 memcache 字段名后面有空格时会产生什么问题(转)
同事下午遇到一问题,MySQL 和 Memcached 对于同一个key,不能对应起来.最终原因是:PHP将key写入MySQL数据库之前,没有经过trim()过滤首尾空格(关键是尾部空格),结果: ...
- 洛谷P1909 买铅笔
题目描述 P老师需要去商店买n支铅笔作为小朋友们参加NOIP的礼物.她发现商店一共有 333 种包装的铅笔,不同包装内的铅笔数量有可能不同,价格也有可能不同.为了公平起 见,P老师决定只买同一种包装的 ...
- [LUOGU2730] 魔板
搜索水题.因为只有8个数,排列一共有40320种,直接bfs,判重就行了. 但是判重的时候直接用8进制表示的话要88的bool数组.这种操作太low了,于是我们可以用康托展开,降成8!. 康托展开其实 ...
- 经纬度计算两点间的距离,根据距离排序SQL
#java的Utilspublic class DistanceUtil { // 地球平均半径 private static final double EARTH_RADIUS = 6378137; ...
- 最大团&稳定婚姻系列
[HDU] 1530 Maximum Clique 1435 Stable Match 3585 maximum shortest distance 二分+最大团 1522 Marriage is ...
- HDU 4196
很容易由算术基本定理知道,完全平方数就是所有质因子指数为偶数的数.而求得N以下的质因子,可由前两篇的公式知,由N!与p的关系求得.对于指数为p的,用N!除去就可以,因为p必定属于N以内,且无重复. 至 ...
- iOS库--.a与.framework
一.什么是库? 库是共享程序代码的方式,一般分为静态库和动态库. 二.静态库与动态库的差别? 静态库:链接时完整地拷贝至可运行文件里.被多次使用就有多份冗余拷贝. 动态库:链接时不复制.程序执行时由系 ...
- SVN各种异常解决整理
错误1:工作副本已锁定 由于周末公司server停机维护,今天在用SVN提交业务时,直接报错: 同一时候给了解决的方法:请运行清理命令 直接返回上级文件夹单击右键.运行清除命令后,再次提交! OK! ...
- UI组件之AdapterView及其子类(五)ListView组件和ListActivity
ListView组件是一个显示组件,继承AdapterView基类,前面已经介绍了分别使用ArrayAdapter,SimpleAdapter,扩展BaseAdapter来为LisView提供列表项h ...