集成测试是否是一个总称,如果是,它包括哪些类型的测试?

Tuu*_*nen 7 testing integration-testing unit-testing categorization

我发现"集成测试"的概念令人困惑.似乎有不少解释和范围:

  • 功能/验收测试(例如,使用Selenium测试用户界面)
  • 测试软件的不同类/模块的集成(简单地一起测试两个或更多类,而不用像db调用和东西那样做任何特殊的事情)
  • 独立测试系统配置功能/功能(数据库集成工作,正确注入依赖项,安全基类工作)
  • 整个系统测试(运行使用数据库,Web服务等的服务)
  • 等等

我开始将集成测试视为一个总括性术语(而不是在编程讲座中定义它,其中通常给出特定/严格的含义):

  • 集成测试包含:
    • 单元集成测试(在不调用外部库的情况下,在同一个包中测试不同类的集成)
    • 功能/验收测试(例如,通过Selenium测试软件的最终输出)
    • 系统测试(包括维基百科文章中列出的各种,更多技术和非功能相关的测试)

在Maven默认生命周期中,只有"测试"和"集成测试"阶段.这似乎将测试分为大致两类,并与这些假设一致.

一般来说,有许多现有的问题和答案正在寻找单元测试,功能测试,回归测试等之间的差异.但是,我正在寻找有关集成测试的更具体的答案:您如何对集成测试进行分类,以及您在其中包含哪些内容?另外,您是否将软件测试大致分为两类:单元测试(1个单元)与集成测试(2个单元)?

Ste*_*veD 3

计算充满了重载的术语,这些术语对于与您交谈的任何程序员来说都有轻微(有时不是那么轻微)的不同含义。集成测试就是其中之一。

我倾向于支持您将集成测试解释为测试两个或多个插入在一起的单元。但这仍然相当模糊,因为我们对“单位”的定义可能不同。

我认为更重要的是,开发团队就集成测试的含义达成一致,而不是找到集成测试的真正定义。