51Testing软件测试论坛

标题: 浅谈冒烟测试与随机测试 [打印本页]

作者: xulin168    时间: 2005-8-11 10:46
标题: 浅谈冒烟测试与随机测试
浅谈冒烟测试与随机测试 2004-03-28 软件测试的种类何其多也,每种测试都有其要达到的目的和实现手段。本文将介绍两种不太普遍的测试类型-冒烟测试与随机测试。 冒烟测试 冒烟测试(smoke testing),据说是微软起的名字。在《微软项目求生法则》一书第14章“构建过程”关于冒烟测试,就是开发人员在个人版本的软件上执行目前的冒烟测试项目,确定新的程序代码不出故障。 冒烟测试的名称可以理解为该种测试耗时短,仅用一袋烟功夫足够了。也有人认为是形象地类比新电路板功基本功能检查。任何新电路板焊好后,先通电检查,如果存在设计缺陷,电路板可能会短路,板子冒烟了。 冒烟测试的对象是每一个新编译的需要正式测试的软件版本,目的是确认软件基本功能正常,可以进行后续的正式测试工作。冒烟测试的执行者是版本编译人员。 在一般软件公司,软件在编写过程中,内部需要编译多个版本(Builds),但是只有有限的几个版本需要执行正式测试(根据项目开发计划),这些需要执行的中间测试版本,在刚刚编译出来后,软件编译人员需要进行基本性能确认测试,例如是否可以正确安装/卸载,主要功能是否实现,是否存在严重死机或数据严重丢失等Bug。如果通过了该测试,则可以根据正式测试文档进行正式测试。否则,就需要重新编译版本,再次执行版本可接收确认测试,直到成功。 新版本的基本功能确认检查的测试,有的公司成为版本健康检查(Build Sanity Check)。对于编译的本地化软件新版本,除了进行上面提到的各种测试检查,还要检查是否在新的本地化版本中正确包含了全部应该本地化的文件。可以通过采用文件和目录结构比较工具,首先比较源语言版本和本地化版本的文件和目录中的文件数目、文件名称和文件日期等,这个过程称为版本镜像检查(Build Image Check)。其次,分别安装源语言版本和本地化版本,比较安装后的文件和目录结构中的文件数目、文件名称和文件日期等,这个过程称为版本安装检查(Build Installing Check)。 随机测试 在软件测试中除了根据测试样例和测试说明书进行测试外,还需要进行随机测试(Ad-hoc testing),主要是根据测试者的经验对软件进行功能和性能抽查。随机测试是根据测试说明书执行样例测试的重要补充手段,是保证测试覆盖完整性的有效方式和过程。 随机测试主要是对被测软件的一些重要功能进行复测,也包括测试那些当前的测试样例(TestCase)没有覆盖到的部分。另外,对于软件更新和新增加的功能要重点测试。重点对一些特殊点情况点、特殊的使用环境、并发性、进行检查。尤其对以前测试发现的重大Bug,进行再次测试,可以结合回归测试(Regressive testing)一起进行。 理论上,每一个被测软件版本都需要执行随机测试,尤其对于最后的将要发布的版本更要重视随机测试。随机测试最好由具有丰富测试经验的熟悉被测软件的测试人员进行测试。对于被测试的软件越熟悉,执行随机测试越容易。只有不断的积累测试经验,包括具体的测试执行和对缺陷跟踪记录的分析,不断总结,才能提高。
作者: ggstar    时间: 2005-8-11 20:43
看得比较累 xulin同志以后发贴能不能分个段?小子谢过了……
这个冒烟测试和随即测试,个人认为,和预测试与异常分析、错误猜测的概念比较像,不知是否?
作者: cr19800604    时间: 2005-8-13 12:37
本人发表一点浅薄的意见:
冒烟测试我还没听说过,看了知道是微软公司提出来的,其实我觉得把测试取那么多花哨的名字没有必要,什么用一袋烟的功夫把测试完成了叫做冒烟测试,如果这么来命名的话,我想名字就没有什么意思了,只要我们懂得测试的中心在哪里,知道关键的测试方法,知道基础的测试思想,流程,我想万变不离其宗,测试就能做好.
作者: 森林一木    时间: 2005-8-15 15:44
给测试方法起个更形象的名字,是个好办法,容易理解,冒烟测试这种测试方法配合版本控制,可以起到很好的版本提测试效果
作者: ww0221542    时间: 2005-8-15 16:54
冒烟测试的意思不是那个样子的吧?

应该是和压力测试差不多的意思,比如对数据库进行测试就是测试根据当前硬件环境,测试出系统数据瓶颈。假如一个tansaction可以操作300MB的数据量,但是当你把数据量加到301MB的时候系统将无法正常运行,那么数据瓶颈即为300MB,当到301MB的时候系统负载过重,不能正常运行(理解为系统或硬件冒烟损坏)。
作者: jackiewang1120    时间: 2005-8-19 13:10
楼上的朋友,楼主写的冒烟测试的概念是正确的,我个人简单的理解----冒烟测试其实跟确认测试差不多,就是拿到一个新项目,先用很少的人力和时间确认一下这个项目的基本功能是否可用.如果基本功能都不能实现的话,就根本不用去进行下面的测试了.
作者: elmerwu    时间: 2005-8-22 11:35
冒烟测试其实就是一个预测试的情况,就像楼上所说的,如果软件的基本功能都没有实现就进行正式测试的话,那结果很可能就是测试挂起,浪费了很多的测试人力资源和测试时间
作者: ww0221542    时间: 2005-8-23 13:46
学到了 谢谢 呵呵
作者: 图腾狼    时间: 2006-1-14 13:48
同意预测试的说法,这种测试很有用的
作者: cuiqiliang    时间: 2006-1-14 21:57
这是俺前年写的一段文章,如果大家要看的段落更清楚,还是到我的网站下面的页面阅读吧。
http://www.giltworld.com/Modules/Testing/smoke_adhoc.htm

冒烟测试,是对刚编译的Build快速测试,确认是否可以用来测试,主要验证下面的内容:
(1)软件是否可以安装
(2)软件的主要功能是否正确
(3)软件的主要模块是否遗漏
(4)...

另外,肯定发转帖时,说明原创作者和文章出处。
作者: leo_wangxy    时间: 2006-1-16 12:37
呵呵,又掌握了两个概念,虽然在工作中不一定能用到.
作者: chw1225    时间: 2006-1-24 09:57
各位讲解的不错,学习了好多




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2