unit testing? 集成testing? 回归testing? 验收testing?

有没有人能够清楚地定义这些testing级别,因为我发现在进行TDD或unit testing时很难区分。 请如果有人能详细说明,何时执行这些?

简述:

unit testing – 你unit testing每个单独的代码。 认为每个文件或类。

集成testing – 将多个单元放在一起进行交互时,您需要进行集成testing,以确保将这些单元集成在一起没有引入任何错误。

回归testing – 集成(也许是修复)后,你应该再次运行你的unit testing。 这是回归testing,以确保进一步的变化没有打破任何已经testing的单位。 你已经做过的unit testing已经产生了可以一次又一次运行的回归testing的unit testing。

验收testing – 当用户/客户/企业收到function时(或您的testing部门)将进行验收testing,以确保function满足其要求。

您可能还想调查白盒和黑盒testing。 还有性能和负载testing,以及testing“ilities”要考虑。

unit testing:当它失败时,它会告诉你你的代码需要被修复的部分。

集成testing:当它失败时,它会告诉您应用程序的各个部分不能按预期一起工作。

验收testing:当它失败时,它告诉你应用程序没有按照客户期望的那样做。

回归testing:当它失败时,它告诉你应用程序不再像以前那样运行。

我会尽力:

  1. unit testing:开发人员会编写一个testing单个组件或类。
  2. 集成testing:涉及需要协作的多个组件或软件包的更广泛的testing
  3. 回归testing:对应用程序进行单一更改会迫使您重新运行所有testing并检查所有function。
  4. 验收testing:最终用户或质量保证部门在签署之前完成这些工作,以接受应用程序的交付。 它说“该应用符合我的要求”。

以下是对每个提到的testing的简单解释,以及何时适用:

unit testingunit testing是在一个独立的单元(通常是一个类或一个方法)上执行的,只要单元已经执行或单元更新完成,就应该执行unit testing。

这意味着,只要你写了一个类/方法,修正了错误,改变了function,就运行了…

集成testing集成testing旨在testing多个单元如何相互作用。 这种types的testing应该在每个单位之间build立一种新的沟通forms或者其互动的性质发生变化时进行。

这意味着无论何时将最近编写的单元集成到系统的其余部分,或者与其他系统交互的单元已经更新(并成功完成其unit testing),都会运行。

回归testing回归testing在系统中任何事情发生变化时执行,以检查是否没有引入新的错误。

这意味着它在所有补丁,升级,错误修复之后运行。 回归testing可以看作是组合unit testing和集成testing的特例。

验收testing验收testing只要与检查子系统(可能是整个系统)是否满足其整个规格有关,就会被执行。

这意味着它主要在完成新的交付物或者宣布完成更大的任务之前运行。 看到这个作为你的最终检查,看看你真的完成了你的目标,然后跑到客户/老板和宣布胜利。

这至less是我学到的方法,但我确信还有其他的反对意见。 无论哪种方式,我希望有所帮助。

unit testing:我的单一方法工作正常吗? (没有依赖关系,或依赖关系嘲笑)

整合testing:我的两个独立开发的模块是否正确运行

回归testing:我是否通过更改/编写新代码来破坏任何内容? (运行单元/集成testing,每个提交都是技术上的(自动)回归testing)。 更经常用于QA的环境 – 手动或自动化。

验收testing :由客户完成的testing,他“接受”交付的软件