当前位置:  开发笔记 > 编程语言 > 正文

什么是单元测试,集成测试,烟雾测试,回归测试?

如何解决《什么是单元测试,集成测试,烟雾测试,回归测试?》经验,为你挑选了9个好方法。

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

例如,我使用JUnit和NUnit进行单元测试和集成测试.有没有烟雾测试或回归测试工具?



1> ddaa..:

单元测试:指定并测试一个类的单个方法的合同的一个点.这应该有一个非常狭窄和明确的范围.复杂的依赖关系和与外部世界的交互被扼杀或嘲笑.

集成测试:测试多个子系统的正确互操作.那里有完整的范围,从测试两个类之间的集成,到测试与生产环境的集成.

Smoke测试(又名Sanity检查):一个简单的集成测试,我们只是检查当被测系统被调用时它会正常返回并且不会爆炸.

烟雾测试与电子设备类似,第一次测试是在给电路加电时(如果它抽烟,那就太糟糕了!)......

...... 显然,还有管道,管道系统实际上是由烟雾填充,然后用肉眼检查.如果有什么东西抽烟,系统就会漏水.

回归测试:修复错误时编写的测试.它确保不会再次发生此特定错误.全名是"非回归测试".它也可以是在更改应用程序之前进行的测试,以确保应用程序提供相同的结果.

对此,我将补充:

验收测试:测试是否正确实现了功能或用例.它类似于集成测试,但重点关注用例而不是涉及的组件.

系统测试:将系统测试为黑盒子.在测试期间,通常会对其他系统的依赖性进行模拟或存根(否则它将更多地是集成测试).

飞行前检查:在生产环境中重复的测试,以减轻"我的机器上的建立"综合症.通常,这是通过在生产环境中进行验收或烟雾测试来实现的.


烟雾测试[早在一个世纪以前的电子设备](http://en.wikipedia.org/wiki/Smoke_testing#History_of_the_term)来自管道,当管道系统被实际烟雾填充然后视觉检查.如果它吸了,就漏了.
@AndyM"烟雾测试"的背景是不准确的.IIRC它来自管道,在管道建成之后(在它连接到供水系统之前),管道系统中的烟雾被泵入.如果有烟雾,管道没有正确密封.这比实际让水流动并且看看是否发生任何水坑(在此过程中可能损坏墙壁/砖石)的损害小.这是一个近似的系统不会灾难性的失败.开发过程可能是:"构建"通过?=>"烟雾测试"通过了吗?=>"验收测试"通过=>向QA团队进行详细测试.
我相信你说"回归测试"真的是"非回归测试"的简写,这是错误的吗?我持怀疑态度,部分是因为这只是不直观和令人困惑(虽然有很多术语),但维基百科还有两篇关于回归和非回归测试的文章.关于回归测试的文章甚至说:_Contrast采用非回归测试...旨在验证在引入或更新给定软件应用程序后,更改是否具有预期效果.
回归测试也用于功能更改,而不仅仅是错误修复.尼基塔的答案是一个更全面的定义.
是否有显示所有类型的简单示例代码?
@ddaa完整性测试和烟雾测试不一样.在构建清除Smoke测试之后执行完整性测试,并且QA团队已接受进行​​进一步测试,完整性测试使用更精细的细节检查主要功能.

2> Gerrie Schen..:

单元测试:自动测试以测试类的内部工作.它应该是一个独立的测试,与其他资源无关.

集成测试:在环境上完成的自动测试,类似于单元测试,但具有外部资源(db,磁盘访问)

回归测试:在实现新功能或错误修复之后,您将重新测试过去有效的方案.在这里,您可以了解新功能是否会破坏现有功能.

烟雾测试:首先测试哪些测试人员可以继续测试.


回归测试的定义并不完全是这样的.@ddaa正确定义它.

3> Jon Skeet..:

每个人的定义都会略有不同,通常都有灰色区域.然而:

单元测试:这一点(尽可能隔离)工作吗?

集成测试:这两个(或更多)组件一起工作吗?

烟雾测试:整个系统(尽可能接近生产系统)是否能够很好地挂在一起?(即我们有理由相信它不会造成黑洞吗?)

回归测试:我们是否无意中重新引入了我们之前修复过的任何错误?



4> AndyM..:

我刚刚意识到的一个新的测试类别是:

金丝雀测试

一个金丝雀测试是一个自动化的,非破坏性测试定期运行LIVE的环境,这样,如果它没有成功,一些真正糟糕的事情.

例子可能是:

是否只有在DEV/TEST中可用的数据才会出现在LIVE中.

后台进程无法运行

用户可以登录吗?


这个名字来自煤矿开采:带金丝雀和你一起"下来t'pit".当它嗤之以鼻时,快点出去吧.金丝雀对小浓度的有毒气体非常敏感,并且会在浓度水平对人体产生毒害之前死亡.如果Canary测试失败,请快速修复,因为LIVE失败只是时间问题.
该网站是否可以被ping - 恰当的是,存在一个名为Binary Canary的服务.

5> annakata..:

伪造的历史琐事:"烟雾测试"来自潜艇工程(继承自管道),在那里将字面的烟雾泵入船体,看它是否有任何一次出现,这对于潜艇而言将是一次戏剧性的失败!



6> Kaleem Ullah..:

来自最好的软件测试技术网站之一的答案:

软件测试类型 - 完整列表点击这里

在此输入图像描述

这是一个很长的描述,我不会在这里粘贴它:但它可能对想要了解所有测试技术的人有所帮助.

希望它会有所帮助:)



7> 小智..:

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

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

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

根据您的SDLC(瀑布,rup,敏捷等),可以在"阶段"中执行特定测试,或者可以同时或多或少地执行所有测试.例如,单元测试可能仅限于开发人员,然后他们将代码转交给测试人员进行集成和回归测试.然而,另一种方法可能是开发人员进行单元测试和某种程度的集成和回归测试(使用TDD方法以及持续集成和自动化单元和回归测试).

工具集在很大程度上取决于代码库,但有许多用于单元测试的开源工具(JUnit).HP的(汞)QTP或Borland的Silktest都是自动集成和回归测试的工具.



8> 小智..:

单元测试:已知应用程序中单个模块或独立组件的测试是单元测试,单元测试将由开发人员完成.

集成测试:结合所有模块和测试应用程序来验证通信和模块之间的数据流是否正常工作,此测试也由开发人员执行.

烟雾测试 在烟雾测试中,他们以浅薄和广泛的方式检查应用程序,在烟雾测试中他们检查应用程序的主要功能,如果应用程序中有任何阻止器问题他们将向开发团队报告,开发团队将修复它和纠正缺陷,并将其交还给测试团队,现在测试团队将检查所有模块,以验证在一个模块中进行的更改是否会影响其他模块.在SMOKE测试中,测试用例是编写脚本的

回归测试重复执行相同的测试用例,以确保未更改的模块不会导致任何缺陷.回归测试属于功能测试



9> 小智..:

回归测试-

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


你在哪里引用?
根据[本页](http://www.scribd.com/doc/163447765/Regression-Testing),该引用来自[维基百科"软件测试"文章](http://en.wikipedia.org/ wiki/Software_testing #Raression_testing)虽然看起来自2010年以来该段落已被改变.
推荐阅读
女女的家_747
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有