有没有人可以清楚地定义这些测试级别,因为我发现在进行TDD或单元测试时很难区分。如果有人能详细说明如何以及何时实施这些措施?
有没有人可以清楚地定义这些测试级别,因为我发现在进行TDD或单元测试时很难区分。如果有人能详细说明如何以及何时实施这些措施?
Answers:
简要地:
单元测试 -对每个单独的代码段进行单元测试。考虑每个文件或类。
集成测试 -将多个相互影响的单元放在一起时,您需要进行集成测试,以确保将这些单元集成在一起不会引起任何错误。
回归测试 -集成(并可能修复)之后,您应该再次运行单元测试。这是回归测试,以确保进一步的更改不会破坏任何已测试的单元。您已经做过的单元测试已经产生了可以再次运行以进行回归测试的单元测试。
验收测试 -当用户/客户/企业接收功能时,他们(或您的测试部门)将进行验收测试,以确保功能满足其要求。
您可能还想调查白盒和黑盒测试。也有性能和负载测试,以及要考虑的“故障”测试。
这是对上述每个测试及其适用时间的简单说明:
单元测试 单元测试是对独立单元(通常是类或方法)执行的,每当实现单元或单元更新完成时都应执行单元测试。
这意味着只要您编写了类/方法,修复了错误,更改了功能,它就可以运行。
集成测试 集成测试旨在测试多个单元之间的交互程度。只要单元之间建立了新的通信形式或者它们的交互性质发生了变化,就应该执行这种测试。
这意味着只要将最近编写的单元集成到系统的其余部分中,或者与其他系统交互的单元已被更新(并成功完成其单元测试),它就可以运行。
回归测试 只要在系统中进行了任何更改,都将执行回归测试,以检查是否引入了新的错误。
这意味着它将在所有补丁,升级,错误修复之后运行。回归测试可以看作是组合单元测试和集成测试的特例。
验收测试 只要与检查子系统(可能是整个系统)是否满足其整个规格有关,就执行验收测试。
这意味着它主要在完成新的可交付成果或宣布完成较大任务之前运行。将此作为您的最终检查,以确保在跑到客户/老板和宣布胜利之前,您已经完成了目标。
至少这是我学到的方式,尽管我确信还有其他反对意见。无论哪种方式,我都希望能有所帮助。
无法评论(声誉低:-|),所以...
@Andrejs很好地说明了与每种测试类型相关的环境之间的差异。
单元测试通常在开发人员机器上(可能在CI构建期间)运行,并模拟出对其他资源/系统的依赖性。
根据定义,集成测试必须(一定程度上)具有依赖项的可用性;其他资源和系统被调用,因此环境更具代表性。用于测试的数据可以是模拟的,也可以是真实生产数据的一小部分混淆的子集。
UAT /验收测试必须向接受软件的质量保证和业务团队代表真实的经验。因此,需要完整的集成和实际的数据量以及完整的掩盖/混淆的数据集,以提供真实的性能和最终用户体验。
其他“麻烦”也可能需要环境尽可能接近现实,以模拟生产经验,例如性能测试,安全性,...