我认为我理解使用烟雾服务器进行连续集成来衡量项目的性能和测试覆盖率。这基本上是正确的吗?对程序进行抽烟测试意味着什么?它是否只是意味着连续应用烟雾服务器上定义的测试,以便能够确定特定时间范围内的性能下降?
答案 0 :(得分:60)
烟雾测试是一组在实际测试之前运行的基本廉价测试。它旨在验证构建是否已成功部署以及所有测试环境。方面正在运行并为实际测试过程做好准备。它可以节省您将测试愤怒的全部范围带入错误的构建中,并且只是意识到您已经在恶劣的环境中进行了测试。或者错误地部署构建可能为时已晚。
答案 1 :(得分:27)
打开它,看看是否有烟雾。
答案 2 :(得分:21)
该术语起源于hardware repair,已应用于软件。这是一个快速测试,以查看应用程序第一次运行时是否“着火”。如上所述,只是为了确保你不要浪费一大堆时间,将它们放在明显坏掉的东西上。
答案 3 :(得分:4)
烟雾测试不是性能测试或回归预防测试。
烟雾测试是一组优先级最高的全自动测试。即使您的常规构建成功,您的产品也可能以非常基本的方式被破坏,使其100%无法使用。烟雾测试旨在测试该级别的核心功能。没有通过冒烟测试的构建很可能会失败大部分的自动化测试。
如果冒烟测试失败,通常意味着您正在失去生产力,因为构建不可用,无法测试等。烟雾测试失败往往需要立即修复,大约数小时而不是几天。< / p>
关于烟雾测试的重要方面是它们可以快速运行。你应该总是运行某种类型的烟雾测试。许多团队有足够的资源在日常或持续集成构建中运行更大的测试套件(这是优秀的),但烟雾测试应该被视为最低限度。
答案 4 :(得分:4)
wikipedia page on smoke testing实际上相当不错。 它包含一个指向Steve McConnel(“代码完整”)的论文,该论文在IEEE Software 13(4)的最佳实践部分,1996年标题为"Daily Build and Smoke Test"。
我认为烟雾测试是单元测试和其他形式测试的先决条件:如果冒烟测试失败,即使开始进行单元测试也没有意义。
答案 5 :(得分:2)
我们使用术语冒烟测试来指代对应用程序或产品进行快速基本测试的测试,以使其有资格进行集成测试或功能测试等进一步测试。如果应用程序未能完成这些高级测试所需的一些基本操作,那么进行集成测试或其他高级测试几乎没有用处。例如,我们有一个基于Web的应用程序,我们进行冒烟测试以确保我们可以加载所有网页,让用户登录/注销等。这些是应该与应用程序一起使用以使其可测试的基本内容。如果页面甚至没有加载或者用户甚至无法登录,我们就无法在功能或集成测试方面做太多工作。我们对每次构建进行抽烟测试,然后进行功能和集成测试。
答案 6 :(得分:1)
烟雾测试是集成测试的第一步。作为开发人员,您已将所有部分放在一起,并且确保您的应用程序在运送给您的QA团队进行“真正”测试之前运行。
我想写更多,但MahdeTo打败了我一个正确答案......:)
答案 7 :(得分:0)
*在进行测试之前检查应用程序的基本和关键功能称为烟雾测试。 *在烟雾测试中,我们检查基本和关键功能的正向流程,以检查构建是否可测试。
答案 8 :(得分:0)
我同意先前的一些回答。对我来说,冒烟测试只是检查我所有X千个子页面和重定向是否仍在工作。
工作表示每个子页面的状态代码为“ 200 OK”。
我尽可能晚地进行烟雾测试。在将代码部署到服务器之后以及在使该服务器处于活动状态之前。
今天,甚至还有一个在线服务(SaaS)为我完成这项工作。 https://www.smest.it帮助我进行烟雾测试。自从我每天检查我的网站以来,我就在他们的主页上输入了我的私有域一次。完全没有压力。