什么是烟雾测试
烟雾测试是一组用以确定系统处于稳定状态、所有的主要功能都具备并且能够在 “ 正常 ” 条件下运行的测试用例。烟雾测试不能由测试小组独立来建立;它应该是通过联合的方式,至少是在与开发员达成一致的情况下建立的。烟雾测试的目标是显示稳定性、而不是发现系统的每个 bug ,必须在系统测试环境中运行。
烟雾测试,在《微软项目求生法则》一书第 14 章 “ 构建过程 ” 关于烟雾测试,就是开发人员在个人版本的软件上执行目前的烟雾测试项目,确定新的程序代码不出故障。 在人类的日常生活中也存在着各种领域的烟雾测试,以及灾害的避免。
烟雾测试的名称可以理解为该种测试耗时短,仅用一袋烟功夫足够了。也有人认为是形象地类比新电路板功基本功能检查。任何新电路板焊好后,先通电检查,如果存在设计缺陷,电路板可能会短路,板子烟雾了。
烟雾测试的对象是每一个新编译的需要正式测试的软件版本,目的是确认软件基本功能正常,可以进行后续的正式测试工作。烟雾测试的执行者是版本编译人员。
烟雾测试的应用
在软件工作组中,软件在编写过程中执行 Daily Build 和烟雾测试,如果无法成功编译,或者编译成功但是无法执行,则启动小组讨论直到修改完善错误为止。内部需要编译多个版本 (Builds) ,但是只有有限的几个版本需要执行正式测试(根据项目开发计划),这些需要执行的中间测试版本,在刚刚编译出来后,软件编译人员需要进行基本性能确认测试,例如是否可以正确安装 / 卸载,主要功能是否实现,是否存在严重死机或数据严重丢失等 Bug 。如果通过了该测试,则可以根据正式测试文档进行正式测试。否则,就需要重新编译版本,再次执行版本可接收确认测试,直到成功。
新版本的基本功能确认检查的测试,有的公司称为版本健康检查 (Build Sanity Check) 。对于编译的本地化软件新版本,除了进行上面提到的各种测试检查,还要检查是否在新的本地化版本中正确包含了全部应该本地化的文件。可以通过采用文件和目录结构比较工具,首先比较源语言版本和本地化版本的文件和目录中的文件数目、文件名称和文件日期等,这个过程称为版本镜像检查 (Build Image Check) 。其次,分别安装源语言版本和本地化版本,比较安装后的文件和目录结构中的文件数目、文件名称和文件日期等,这个过程称为版本安装检查 (Build Installing Check) 。
微软方针
1.建立每日组建
每日组建会需要小组成员一起工作,也会鼓励开发人员保持同步。如果新组建的反覆运算发生延迟,则延迟可能轻易地造成具有多个相依性的产品发生未同步的情形。遵循程序,每日建置以及烟雾测试任何已变更或新的二进位码档案,可以确保得到更高的品质。
3.注意事项
请将每日组建设定为小组的最高优先顺序。如果因为签入的程式码尚未经过烟雾测试,使得组建损毁了,开发人员和软体测试人员就必须停止所有其他工作,直到问题解决为止。损毁组建应该不会受到太过严格的处罚,但是处罚会着重在要求小组将建置适当的每日组建做为第一优先任务。不需要执行详尽的测试。执行烟雾测试的目的不在于,确保二进位档桉为100%无错误,这会需要相当多的时间。请执行烟雾测试,以较高的层级验证组建。您可以确保二进位档案中的变更不会使一般组建不稳定,或是造成功能上的严重错误。
3.Web测试和负载测试
建置Web测试和负载测试时,建议在执行任何长时间且负载过重的测试之前,先执行烟雾测试。在Web测试和负载测试中,烟雾测试属于简短、负载较轻的测试。在针对测试进行效能或压力测试(Stress Testing)之前,请使用烟雾测试,验证每个设定都已正确地设定,并且如预期般正常运作。