[摘要] 关于冒烟测试,应该是微软首先提出来的一个概念,和微软一直提倡的每日build有很密切的联系。具体说,冒烟测试就是在每日build建立后,对系统的基本功能进行简单的测试。这种测试强调功能的覆盖率,而不对功能的正确性进行验证。从这一点看和所谓的“接受性(验收)测试(Acceptance Test)”非常相似。不同之处就在于他们执行的频率和被测的版本不同。

[关键字] 软件测试 冒烟测试 验收测试

关于冒烟测试,应该是微软首先提出来的一个概念,和微软一直提倡的每日build有很密切的联系。具体说,冒烟测试就是在每日build建立后,对系统的 基本功能进行简单的测试。这种测试强调功能的覆盖率,而不对功能的正确性进行验证。从这一点看和所谓的“接受性(验收)测试(Acceptance Test)”非常相似。不同之处就在于他们执行的频率和被测的版本不同。

至于冒烟测试这个名称的来历,大概是从电路板测试得来的。因为当电路板做好以后,首先会加电测试,如果板子没有冒烟在进行其它测试,否则就必须重新来过。类似的如果冒烟测试没有通过,那么这个build也会返回给开发队伍进行修正,测试人员测试的版本必须首先通过冒烟测试的考验。

冒烟测试的说法据说是:

就象生产汽车一样,汽车生产出来以后,首先发动汽车,看汽车能否冒烟,如果能,证明汽车最起码可以开动了。说明完成了最基本的功能。

冒烟测试一般用于每日构建(Nightly build),构建服务器首先从CVS服务器上,下载最新的源代码,然后编译单元测试,运行单元测试通过后,编译可执行文件,可执行文件若可运行,并能执 行最基本的功能,则认为通过了冒烟测试,这时,构建服务器会把程序打包成安装文件,然后上传到内部网站,第二天一早,测试人员来了以后,会收到构建服务器 发来的邮件提示昨晚是否构建成功。若构建成功,则测试人员进行相关的功能测试。所有这些功能的完成,一般是靠编写脚本完成的,目前比较常用的脚本有 TCL,Perl,Python及功能弱弱的批处理。用这些可以完成系统的每日构建。

简单的说,就是先保证系统能跑的起来,不至于让测试工作做到一半突然出现错误导致业务中断。目的就是先通过最基本的测试,如果最基本的测试都有问题,就直接打回开发部了,减少测试部门时间的浪费

冒烟测试准则

在软件中,“冒烟测试”这一术语描述的是在将代码更改签入到产品的源树中之前对这些更改进行验证的过程。在检查了代码后,冒烟测试是确定和修复软件缺陷的最经济有效的方法。冒烟测试设计用于确认代码中的更改会按预期运行,且不会破坏整个版本的稳定性。

注意:“冒烟测试”这一术语源自硬件行业。该术语源于此做法:对一个硬件或硬件组件进行更改或修复后,直接给设备加电。如果没有冒烟,则该组件就通过了测试。

下面的准则描述了冒烟测试的最佳做法。遵循准则的效果会有很大的不同,从增强团队成员之间的交流,到形成特定的使用测试和调试工具的方式等。

与开发人员协同工作

由于冒烟测试特别关注更改过的代码,因此必须与编写代码的开发人员协同工作。必须了解以下内容:

·         代码中进行了什么更改。若要理解该更改,必须理解使用的技术;开发人员可以提供相关说明。

·         更改对功能有何影响。

·         更改对各组件的依存关系有何影响。

在进行冒烟测试前检查代码

在运行冒烟测试前,进行侧重于代码中的所有更改的代码检查。代码检查是验证代码质量并确保代码无缺陷和错误的最有效、最经济的方法。冒烟测试确保通过代码检查或风险评估标识的主要的关键区域或薄弱区域已通过验证,因为如果失败,测试就无法继续。

在干净的调试版本中安装私有二进制文件

由于冒烟测试必须侧重于仅对更新后的二进制文件中的功能更改进行验证,所以必须通过使用被测试文件的调试二进制文件来使测试在干净的测试环境中运行。

注意

在冒烟测试中,使用不匹配的二进制文件进行测试是一个常见错误。为了避免此错误,当两个或多个更新后的二进制文件之间存在依赖项时,请在测试版本中包括所有更新后的二进制文件。否则,测试的结果可能无效。

创建每日构建 (Daily Build)

每日构建要求团队成员协同工作,并鼓励开发人员彼此保持同步。如果新版本的迭代被延迟,则该延迟很容易导致具有多个依赖项的产品不同步。遵循每日构建和冒烟测试的过程,任何更改过的或新的二进制文件都可确保实现高质量。

有关设置重复版本的更多信息,请参见 在 Team Foundation Build 中运行生成。有关验证产品版本的更多信息,请参见如何:配置和运行生成验证测试 (BVT)。

注意

将高质量的每日构建作为团队最重要的任务。如果由于签入代码未进行冒烟测试而导致版本中断,则需要开发人员和测试人员停止所有其他工作,直到问题被解决为止。对导致中断版本的人员的处罚不应该很重,但这个处罚一定要能强调这样一个道理:正确的每日构建是团队最重要的任务。

不需要执行穷举测试。冒烟测试的目的不是确保二进制文件 100% 没有错误。这样需要花费太多的时间。执行冒烟测试是为了在高级别验证版本。要确保二进制文件中的更改不会破坏常规版本的稳定性,也不会导致功能中出现严重错误。

Web 测试和负载测试

生成 Web 测试和负载测试时,在运行任何时间长、工作量大的测试之前运行冒烟测试是一种很好的做法。在 Web 测试和负载测试中,冒烟测试时间短,工作量也小。使用冒烟测试是为了在运行性能测试或压力测试之前,确保一切都已正确配置并可按预期运行。

软件测试分类冒烟测试,什么是冒烟测试相关推荐

  1. 【测试】软件测试分类体系系统学习

    一.软件测试定义.目的.原则 1.定义 是在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否满足设计要求进行评估的过程. 是使用人工或自动手段对系统运行或测试的过程,其目的在于检验 ...

  2. BS和CS架构,软件开发的瀑布模型,快速原型模型、螺旋模型、敏捷开发、软件测试分类,测试的分类和理解

    1.BS和CS架构 1.1  BS:浏览器与服务器结构 优点:客户端无需安装,有web浏览器即可 缺点:在速度和安全性上需要花费巨大的设计成本 1.2  CS:客户机与服务器结构 优点:CS架构的页面 ...

  3. 测试理论系列——软件测试分类

    软件测试分类图示 一.按测试阶段划分 1.单元测试( Unit Testing) 又称模块测试,针对软件设计中的最小单位-程序模块,进行正确性检查的测试工作. 单元测试需要从程序内部结构出发设计测试用 ...

  4. 软件测试 通用技术02 测试流程 V模型 W模型 H模型 X模型 单元测试 软件测试分类

    文章目录 1 软件测试流程 2 软件测试过程模型 2.1 V模型(重点) 2.2 W模型(重点) 2.3 H模型 2.4 X模型 3 软件测试过程理念 4 软件测试分类 4.1 按照开发阶段划分 单元 ...

  5. android冒烟测试自动化,自动化冒烟测试脚本应当遵循的原则

    自动化冒烟测试脚本应当遵循的原则 发表于:2009-06-29来源:作者:点击数: 自动化冒烟测试脚本应当遵循的原则: 1.覆盖主要功能: 冒烟测试不是 系统测试 或 集成测试 ,所以不需要面面俱到, ...

  6. 软件测试分类及测试中三个主要概念

    软件测试分类: 按测试技术,软件测试可分为:黑盒测试.白盒测试.灰盒测试 黑盒测试:在程序接口进行测试,它只是检查程序功能是否按照规格说明书的规定正常使用.也被称为功能测试或者数据驱动测试. 白盒测试 ...

  7. BVT测试(版本验证测试、冒烟测试)和Daily build

    BVT测试介绍: BVT测试也称为"冒烟测试".版本验证测试 (BVT) 通常由一组广泛的测试组成,这些测试用于验证特定版本的总体质量.BVT 通常根据设定的计划自动运行,经常在夜 ...

  8. 手机软件测试分类(测试分类)

    1.兼容性测试 例如:测试一个文档使用word2003能打开,无法打开word 2007的现象. 一般兼容性测试的手机模块内容包括: SIM卡兼容性测试.BT.PC驱动.SD卡和WLAN. 2.自动化 ...

  9. 测试基础-01-软件测试的定义与分类

    1.目标与内容: 1.1软件测试的定义及目的 1.2软件测试分类 2.什么是软件? 2.1软件是计算机程序.程序所用的数据以及有关文档资料的集合 2.2软件是计算机的灵魂.软件又可以分为2大类:系统软 ...

  10. 软件测试面试题银行,资讯详情-金融测试面试题-柠檬班-自动化测试-软件测试培训-自学官网...

    网上银行转账是怎么测的,设计一下测试用例. 回答思路:宏观上可以从质量模型(万能公式)来考虑,重点需要测试转账的功能.性能与安全性.设计测试用例可以使用场景法为主,先列出转账的基本流和备选流.然后设计 ...

最新文章

  1. 知识图谱前沿跟进,看这篇就够了,Philip S. Yu 团队发布权威综述,六大开放问题函待解决!...
  2. 浅谈C中的指针和数组(一)
  3. (赞助5本)谷歌官方推荐的 TensorFlow 2 “豹书”来了!
  4. 数模笔记_多变量最优化的拉格朗日乘子方法中的灵敏性分析和影子价格
  5. 数据结构与算法-- 广度优先打印二叉树
  6. [转]Linux下g++编译与使用静态库(.a)和动态库(.os) (+修正与解释)
  7. win10无法运行C语言文件,主编告诉你win10打不开pdf文件的详尽处理办法
  8. loj 1308(点双连通分量应用)
  9. 使用POI在线预览Word
  10. matlab数据类型single vs double
  11. word中插入公式2010和2016两个版本)
  12. ubuntu固定内网ip_Ubuntu 设置固定ip地址
  13. 万字长文!多图预警!46张图彻底搞懂 IP 基础知识!
  14. 计算两个数据的百分比
  15. 小强升职记梗概_《小强升职记》读书笔记一
  16. 书店销售管理系统----数据库原理及应用综合实验
  17. 【K8S】k8s pv,pvc无法删除问题
  18. Java实现 蓝桥杯 算法训练 字串统计
  19. 服务器神器——tmux
  20. 2008.05.25 读华为前执行副总裁李玉琢的《我与商业领袖的合作与冲突》有感(一)

热门文章

  1. android动态开场,看得见的数据结构Android版之开篇前言+完篇总结
  2. rabbitmq 连接报错 An unexpected connection driver error occured
  3. 最新获得淘宝app商品详情原数据 的API
  4. 【计算机视觉】Lecture 28:跟踪简介
  5. laravel中提供DB facade(原始查找)、查询构造器、Eloquent ORM三种操作数据库方式
  6. 前端实现图片压缩—压缩图片大小,画质(两种方式)
  7. leach c matlab,其实是MATLAB的LEACH协议
  8. 双均线策略 ------优矿学习
  9. python处理word页码_使用Python向Word文档添加页码
  10. 算法——实现随机拿到30道不重复的20以内的加减法题目