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

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


当前回答

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

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

其他回答

回归测试-

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

单元测试:验证特定组件(即类)是否按照设计创建或修改了功能。该测试可以是手动或自动的,但不会超出组件的边界。

集成测试:验证特定组件的交互是否按设计运行。集成测试可以在单元级或系统级执行。这些测试可以是手动或自动的。

回归测试:验证新的缺陷没有引入到现有代码中。这些测试可以是手动或自动的。

根据您的SDLC(瀑布式、RUP、敏捷等),特定的测试可以在“阶段”中执行,也可以或多或少地同时执行。例如,单元测试可能仅限于开发人员,然后将代码交给测试人员进行集成和回归测试。然而,另一种方法可能会让开发人员进行单元测试和某种程度的集成和回归测试(使用TDD方法以及连续集成和自动化单元和回归测试)。

工具集将在很大程度上依赖于代码库,但有许多用于单元测试(JUnit)的开源工具。HP(Mercury)QTP或Borland的Silk Test都是自动化集成和回归测试的工具。

单元测试

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

集成测试:

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

烟雾测试

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

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

回归测试

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

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

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

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