【发布时间】:2009-04-13 20:10:17
【问题描述】:
我以为我理解了烟雾服务器用于持续集成来衡量项目的性能和测试覆盖率。这基本正确吗?对程序进行冒烟测试是什么意思?这是否仅仅意味着持续应用在烟雾服务器上定义的测试,以便能够查明特定时间范围内的性能下降?
This other question 确实描述了健全性测试和冒烟测试之间的区别,但没有要求定义冒烟测试。这个问题比参考问题早很多年。
【问题讨论】:
标签: smoke-testing
我以为我理解了烟雾服务器用于持续集成来衡量项目的性能和测试覆盖率。这基本正确吗?对程序进行冒烟测试是什么意思?这是否仅仅意味着持续应用在烟雾服务器上定义的测试,以便能够查明特定时间范围内的性能下降?
This other question 确实描述了健全性测试和冒烟测试之间的区别,但没有要求定义冒烟测试。这个问题比参考问题早很多年。
【问题讨论】:
标签: smoke-testing
冒烟测试是一组在实际测试之前运行成本低的基本测试。它旨在验证构建是否成功部署以及所有测试环境。方面正在运行并为实际测试过程做好准备。它可以帮助您将测试愤怒的全部范围归结为错误的构建,并让您意识到您一直在在一个糟糕的环境中进行测试。或错误部署的构建可能为时已晚。
【讨论】:
打开电源,看看有没有冒烟。
【讨论】:
该术语起源于hardware repair,并已应用于软件。它旨在快速测试应用程序在首次运行时是否“着火”。如上所述,这只是为了确保您不会浪费一大群人的时间,因为他们把他们放在明显坏掉的东西上。
【讨论】:
冒烟测试不是性能测试或回归预防测试。
冒烟测试是一组优先级最高的全自动测试。即使您的常规构建成功,您的产品也有可能以非常根本的方式被破坏,使其 100% 无法使用。冒烟测试旨在测试该级别的核心功能。未通过冒烟测试的构建很可能会导致大部分自动化测试失败。
如果冒烟测试失败,这通常意味着您正在失去生产力,因为构建不可用、无法测试等。冒烟测试失败往往需要立即修复,大约是几小时而不是几天。
冒烟测试的重要方面是它们可以快速运行。您应该始终运行某种冒烟测试。许多小组有足够的资源在他们的日常或持续集成构建上运行更大的测试套件(这很好),但冒烟测试应该被认为是最低限度的。
【讨论】:
wikipedia page on smoke testing 实际上相当不错。 它包含一个指向 Steve McConnel(“代码完成”)论文的指针,该论文位于 1996 年 IEEE 软件 13(4) 的最佳实践部分,标题为 "Daily Build and Smoke Test"。
我想说冒烟测试是单元测试和其他形式测试的先决条件:如果冒烟测试失败,甚至启动单元测试也没有意义。
【讨论】:
我们使用术语冒烟测试来指代对应用程序或产品进行快速基本测试以使其有资格进行进一步测试(如集成测试或功能测试)的测试。如果应用程序未能完成这些高级测试所需的一些基本操作,那么进行集成测试或其他高级测试几乎没有用处。例如,我们有一个基于 Web 的应用程序,我们进行冒烟测试以确保我们可以加载所有网页,让用户登录/注销等。这些是应该与应用程序一起工作以使其可测试的基本内容。如果页面甚至没有加载或者用户甚至无法登录,我们就无法对功能或集成测试做太多事情。我们对每个构建进行冒烟测试,然后进行功能和集成测试。
【讨论】:
冒烟测试是集成测试的第一步。作为开发人员,您已将所有部分放在一起,并确保您的应用能够运行,然后再将其交给您的 QA 团队进行“真正的”测试。
我想写更多,但 MahdeTo 打败了我,得到了正确答案……:)
【讨论】:
*在进行测试之前检查应用程序的基本和关键功能称为冒烟测试。 *在冒烟测试中,我们检查基本和关键功能的正流,以检查构建是否可测试。
【讨论】:
我同意前面的一些答案。对我来说,冒烟测试只是检查我所有的 X 数千个子页面和重定向是否仍然有效。
Working 表示每个子页面的状态码为“200 OK”。
我会尽可能晚地运行冒烟测试。在我将代码部署到服务器之后,在我激活该服务器之前。
今天甚至有在线服务 (SaaS) 为我完成这项工作。 https://www.smest.it 帮助我进行烟雾测试。我刚刚在他们的主页上输入了一次我的私人域,自从我每天检查我的网站以来。一点压力都没有。
【讨论】: