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

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


当前回答

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

自动化测试可分为两种。

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

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

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

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

其他回答

单元测试:测试类内部工作的自动测试。它应该是与其他资源无关的独立测试。集成测试:在环境中进行的自动测试,与单元测试非常相似,但使用外部资源(数据库、磁盘访问)回归测试:在实现新功能或bug修复后,您重新测试过去有效的场景。这里您将介绍新功能打破现有功能的可能性。烟雾测试:测试人员可以断定是否继续测试的第一次测试。

回归测试-是一种软件测试,我们试图覆盖或检查错误修复。错误修复程序的功能不应因提供的修复程序而更改或更改。在此过程中发现的问题称为回归问题。

烟雾测试:是一种决定是否接受构建/软件以进行进一步QA测试的测试。

每个人都会有稍微不同的定义,并且经常有灰色区域。然而:

单元测试:这一点(尽可能隔离)是否有效?集成测试:这两个(或更多)组件是否一起工作?烟雾测试:整个系统(尽可能接近于一个生产系统)是否结合得很好?(即,我们有理由相信它不会产生黑洞吗?)回归测试:我们是否无意中重新引入了以前修复过的bug?

回归测试-

“回归测试针对已更改的软件重新运行以前的测试,以确保当前软件中所做的更改不会影响现有软件的功能。”

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

对此,我将补充:

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