什么是单元测试、集成测试、烟雾测试和回归测试?它们之间有什么区别,我可以为它们使用哪些工具?

例如,我使用JUnit和NUnit进行单元测试和集成测试。有没有针对最后两种测试的工具,烟雾测试或回归测试?


当前回答

已经有一些很好的答案,但我想进一步完善它们:

单元测试是这里白盒测试的唯一形式。其他都是黑盒测试。白盒测试意味着你知道输入;你知道机构的内部工作原理,可以检查它,你知道输出。使用黑盒测试,您只知道输入是什么,输出应该是什么。

很明显,单元测试是这里唯一的白盒测试。

单元测试测试特定的代码片段。通常是方法。集成测试测试您的新功能软件是否可以与其他所有功能集成。回归测试。这是为了确保您没有损坏任何东西而进行的测试。一切过去有效的东西都应该继续有效。烟雾测试是作为一项快速测试来完成的,以确保在您参与更激烈的测试之前一切都正常。

其他回答

烟雾测试已经在这里解释过了,而且很简单。回归测试属于集成测试。

自动化测试可分为两种。

单元测试和集成测试(这是最重要的)

我会将所有测试(如集成测试、功能测试、回归测试、UI测试等)使用短语“长测试”(LT),将单元测试称为“短测试”。

LT的一个例子是,自动加载网页,登录帐户并购买一本书。如果测试通过,则更有可能以相同的方式在现场运行(因此“更好的睡眠”参考)。Long=网页(开始)和数据库(结束)之间的距离。

这是一篇很棒的文章,讨论了集成测试(长测试)相对于单元测试的好处。

集成测试:集成测试是集成的另一个元素烟雾测试:烟雾测试也称为构建版本测试。烟雾测试是初始测试过程,用于检查被测软件是否准备就绪/稳定,以便进行进一步测试。回归测试:回归测试是重复测试。新软件是否在另一模块中生效。单元测试:这是一个白盒测试。只有开发人员参与其中

单元测试

单元测试通常由开发人员完成,而测试人员在这种类型的测试中是部分进化的,测试是逐个单元完成的。在Java JUnit中,测试用例也可以测试编写的代码是否设计完美。

集成测试:

当所有/部分组件集成时,在单元测试之后可以进行这种类型的测试。这种类型的测试将确保当组件集成时,它们是否会影响彼此的工作能力或功能?

烟雾测试

这种类型的测试是在系统成功集成并准备在生产服务器上运行时完成的。

这种类型的测试将确保从开始到结束的每个重要功能都能正常工作,并且系统可以部署到生产服务器上。

回归测试

这种类型的测试对于测试开发人员修复某些问题时系统中是否不存在意外/不需要的缺陷非常重要。该测试还确保成功解决所有错误,因此不会出现其他问题。

单元测试针对的是实现的最小部分。在Java中,这意味着您正在测试单个类。如果类依赖于其他类,则这些类是假的。

当您的测试调用多个类时,这是一个集成测试。

完整的测试套件可能需要很长时间才能运行,因此在更改之后,许多团队会运行一些快速完成的测试,以检测严重的损坏。例如,您已经将URI分解为基本资源。这些是烟雾测试。

回归测试在每个构建上运行,并允许您通过捕获所破坏的内容来有效地重构。任何类型的测试都可以是回归测试,但我发现单元测试最有助于找到故障源。

烟雾和健全性测试都是在软件构建之后执行的,以确定是否开始测试。烟雾测试后可执行或不执行卫生。它们可以单独执行,也可以同时执行——在吸烟后立即执行。

因为健全性测试更深入,需要更多时间,所以在大多数情况下,自动化是非常值得的。

烟雾测试的执行时间通常不超过5-30分钟。它更一般:它检查整个系统的少量核心功能,以验证软件的稳定性是否足以进行进一步测试,并且没有任何问题,从而阻止计划测试用例的运行。

卫生测试比吸烟更详细,可能需要15分钟到一整天,具体取决于新建筑的规模。这是一种更专业的验收测试,在进展或重新测试后进行。它检查某些新功能和/或bug修复的核心特性以及与这些特性密切相关的一些特性,以便在可以更大规模地执行回归测试之前,验证它们是否按照所需的操作逻辑运行。