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

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


当前回答

单元测试:它总是由开发人员在开发完成后执行,以在他们为QA准备任何需求之前从测试方面找出问题。

集成测试:这意味着当一些数据/功能输出被驱动到一个模块到另一个模块时,测试人员必须验证模块到子模块的验证。或者在您的系统中使用使用您的系统数据进行集成的第三方工具。

烟雾测试:测试人员进行测试,以验证系统是否进行了高级测试,并试图在更改或代码生效之前找出显示阻止程序错误。

回归测试:测试人员执行回归,以验证由于系统中实施的新增强或系统中的更改而导致的现有功能。

其他回答

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

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

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

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

软件测试技术最佳网站之一的答案:

软件测试类型–完整列表单击此处

这是一个相当长的描述,我不打算将其粘贴在这里:但它可能对想要了解所有测试技术的人有所帮助。

单元测试

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

集成测试:

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

烟雾测试

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

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

回归测试

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

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

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

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

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

单元测试:指定并测试类的单个方法的契约的一个点。这应该有一个非常狭窄和明确的范围。复杂的依赖关系和与外部世界的交互会被破坏或嘲弄。集成测试:测试多个子系统的正确互操作。从测试两个类之间的集成,到测试与生产环境的集成,这是一个完整的过程。烟雾测试(也称为健全性检查):一个简单的集成测试,我们只需要检查当被测试的系统被调用时,它是否正常返回并且不会崩溃。烟雾测试与电子设备都是一个类比,在电子设备中,当电路通电时会进行第一次测试(如果它冒烟,那就糟糕了!)。。。……显然,还有管道系统,管道系统被烟雾填满,然后进行目视检查。如果有任何东西冒烟,系统就会泄漏。回归测试:在修复错误时编写的测试。它可确保此特定错误不会再次发生。全名是“非回归测试”。它也可以是在更改应用程序之前进行的测试,以确保应用程序提供相同的结果。

对此,我将补充:

验收测试:测试功能或用例是否正确实现。它类似于集成测试,但侧重于要提供的用例,而不是所涉及的组件。系统测试:将系统作为黑盒进行测试。在测试过程中,对其他系统的依赖性通常会被嘲笑或清除(否则这将更像是一个集成测试)。飞行前检查:在类似生产的环境中重复进行的测试,以缓解“在我的机器上构建”综合症。这通常通过在类似生产的环境中进行验收或烟雾测试来实现。