单元,功能,验收和集成测试之间有什么区别?

时间:2011-02-04 23:59:15

标签: testing terminology definition

单元,功能,验收和集成测试(以及我未提及的任何其他类型的测试)之间有什么区别?

8 个答案:

答案 0 :(得分:1315)

答案 1 :(得分:80)

重要的是,您知道这些术语对您的同事意味着什么。例如,当他们说“完全端到端”测试时,不同的群体对他们的意思略有不同的定义。

我最近遇到了Google的命名系统进行测试,我更喜欢它 - 他们只使用Small,Medium和Large来绕过这些参数。为了确定测试适合哪个类别,他们会考虑几个因素 - 运行需要多长时间,访问网络,数据库,文件系统,外部系统等等。

http://googletesting.blogspot.com/2010/12/test-sizes.html

我认为您当前工作场所的小,中,大差异可能与Google不同。

然而,这不只是关于范围,而是关于目的。马克关于测试的不同观点的观点,例如:程序员与客户/最终用户,非常重要。

答案 2 :(得分:57)

http://martinfowler.com/articles/microservice-testing/

Martin Fowler的博客文章讲述了测试代码的策略(特别是在微服务架构中),但大多数都适用于任何应用程序。

我将从他的摘要幻灯片中引用:

  
      
  • 单元测试 - 在应用程序中运行最小的可测试软件,以确定它们是否按预期运行。
  •   
  • 集成测试 - 验证组件之间的通信路径和交互,以检测接口缺陷。
  •   
  • 组件测试 - 将运行的软件的范围限制在被测系统的一部分,操纵系统   内部代码接口和使用测试双精度来隔离代码   正在接受其他组件的测试。
  •   
  • 合同测试 - 验证外部服务边界处的交互,声明其符合消费预期的合同   服务。
  •   
  • 端到端测试 - 验证系统是否满足外部要求并实现其目标,从而测试整个系统   端到端。
  •   

答案 3 :(得分:29)

单元测试 - 顾名思义,此方法在对象级别进行测试。针对任何错误测试各个软件组件。该测试需要了解程序,并创建测试代码以检查软件是否按预期运行。

功能测试 - 在不了解系统内部工作的情况下执行。测试人员将通过提供不同的输入并测试生成的输出来尝试通过遵循要求来使用系统。此测试也称为闭箱测试或黑盒。

验收测试 - 这是在将软件移交给客户端之前进行的最后一次测试。执行此操作是为了确保开发的软件满足所有客户要求。有两种类型的验收测试 - 一种由开发团队成员执行,称为内部验收测试(Alpha测试),另一种由客户或最终用户执行(Beta测试)

集成测试 - 已经进行单元测试的各个模块相互集成。一般来说,遵循两种方法:

1)自上而下
2)自下而上

答案 4 :(得分:17)

这很简单。

  1. 单元测试:这是具有编码知识的开发人员实际进行的测试。此测试在编码阶段完成,它是白盒测试的一部分。当一个软件用于开发时,它被开发成一段代码或称为一个单元的代码片。这些单元的单独测试称为开发人员进行单元测试,以发现某些人为错误,例如缺少声明覆盖等。

  2. 功能测试:此测试在测试(QA)阶段完成,它是黑盒测试的一部分。以前编写的测试用例的实际执行情况。此测试实际上由测试人员完成,他们找到站点中任何功能的实际结果,并将此结果与预期结果进行比较。如果他们发现任何差异,那么这就是一个错误。

  3. 验收测试:知道为UAT。这实际上是由测试人员以及开发人员,管理团队,作者,编写者以及参与此项目的所有人完成的。确保项目最终准备好免费提供。

  4. 集成测试:代码单元(在第1点中说明)相互集成以完成项目。这些代码单元可能采用不同的编码技术编写,也可能采用不同的编码技术,因此测试由开发人员完成,以确保代码的所有单元与其他单元兼容,并且没有任何集成问题。

答案 5 :(得分:6)

答案 6 :(得分:4)

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

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

功能测试检查应用程序的各个功能意味着进行功能测试

验收测试此测试由最终用户或客户完成,无论构建应用程序是否符合客户要求,客户规范是否已知是验收测试

答案 7 :(得分:4)

我将用一个实际的例子解释你这个,没有理论上的东西:

开发人员编写代码。尚未实现GUI。此级别的测试将验证函数是否正常工作以及数据类型是否正确。这个测试阶段称为单元测试。

开发GUI并将应用程序分配给测试人员时,他会验证客户端的业务需求并执行不同的方案。这称为功能测试。在这里,我们将客户端需求映射到应用程序流。

集成测试:假设我们的应用程序有两个模块:HR和Finance。 HR模块之前已交付并经过测试。现在财务已经开发并可供测试。现在也可以使用相互依赖的功能,因此在这个阶段,您将测试两者之间的通信点,并验证它们是否符合要求中的要求。

回归测试是另一个重要阶段,在任何新的开发或错误修复之后完成。其目的是验证以前的工作功能。