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