集成测试概念、类型、自上而下和自下而上示例

什么是集成测试?

集成测试被定义为一种测试类型,其中软件模块被逻辑集成并作为一个组进行测试。此级别测试的目的是在集成这些软件模块时暴露它们之间交互中的缺陷

集成测试侧重于检查这些模块之间的数据通信。因此,它也被称为“I&T”(集成和测试)、“字符串测试”,有时也称为“线程测试”。

  • 什么是集成测试?
  • 为什么要进行集成测试?
  • 集成测试用例示例
  • 集成测试的途径、策略、方法论
  • 大爆炸方法:
  • 增量式方法
  • 什么是存根和驱动程序?
  • 自下而上集成
  • 自上而下集成:
  • 如何进行集成测试?
  • 集成测试计划简介:
  • 集成测试的进入和退出标准
  • 集成测试的最佳实践/指南

为什么要进行集成测试?

Integration Testing
Integration Testing

尽管每个软件模块都经过了单元测试,但由于各种原因仍然存在缺陷,例如

  • 一般来说,模块是由个人软件开发人员设计的,他们的理解和编程逻辑可能与其他程序员不同。为了验证软件模块的统一性,集成测试变得非常必要
  • 在模块开发时,客户更改需求的可能性很大。这些新需求可能不会进行单元测试,因此需要进行系统集成测试。
  • 软件模块与数据库的接口可能出错
  • 外部硬件接口(如果有)可能出错
  • 异常处理不当可能会导致问题。

集成测试用例示例

集成测试用例与其他测试用例的不同之处在于,它主要关注模块之间的接口和数据流。这里,优先考虑集成环节,而不是已经测试的单元功能。

以下场景的集成测试用例示例:应用程序有3个模块,分别是“登录页面”、“邮箱”和“删除电子邮件”,并且每个模块都是逻辑集成的。

这里不要太关注登录页面测试,因为它已经在单元测试中完成了。但是检查一下它是如何链接到邮箱页面的。

类似的Mail Box:检查它与Delete邮件模块的集成。

测试用例ID 测试用例目标 测试用例描述 预期结果
1个 检查登录模块和邮箱模块之间的接口链接 输入登录凭据,然后单击登录按钮 重定向到邮箱
2个 检查邮箱和删除邮件模块之间的接口链接 从邮箱中选择电子邮件,然后单击删除按钮 选定的电子邮件应显示在已删除/垃圾桶文件夹中

集成测试的途径、策略、方法论

软件工程定义了执行集成测试的各种策略,即

  • 大爆炸方法
  • 增量式方法:进一步分为以下几个部分
    • 自上而下方法
    • 自下而上方法
    • 夹心法-自上而下与自下而上相结合

下面是不同的策略,它们的执行方式以及它们的局限性和优势。

大爆炸测试

大爆炸(Big Bang)测试是一种集成测试方法,它将所有组件或模块一次性集成在一起,然后作为一个单元进行测试。如果设备中的所有组件都未完成,集成过程将不会执行。

优势:

  • 适合小型系统使用。

缺点:

  • 故障定位比较困难。
  • 考虑到在此方法中需要测试的接口数量巨大,可能很容易错过一些要测试的接口链接。
  • 由于集成测试只有在“所有”模块设计完成后才能开始,因此测试团队在测试阶段执行的时间会更少。
  • 由于同时测试所有模块,因此不会优先隔离和测试高风险的关键模块。处理用户接口的外围模块也没有被优先隔离和测试。

增量测试

在增量测试方法中,测试是通过集成两个或更多逻辑上相互关联的模块来完成的,然后测试应用程序的正常功能。然后递增地集成其他相关模块,并且该过程继续,直到成功集成和测试所有逻辑上相关的模块。

增量式方法又通过两种不同的方法实现:

  • 自下而上
  • 自上而下

存根和驱动程序

存根和驱动程序是集成测试中用于促进软件测试活动的虚拟程序。它们不实现软件模块的整个编程逻辑,但它们在测试时模拟与调用模块的数据通信。

存根:由被测模块调用。

驱动程序:调用要测试的模块。

自下而上的集成测试

自下而上集成测试是一种先测试较低级别模块的策略。一旦测试和集成了较低级别的模块,就形成了下一级别的模块。

图表表示法:

INTEGRATION Testing Tutorial: Big Bang, Top Down & Bottom Up
INTEGRATION Testing Tutorial: Big Bang, Top Down & Bottom Up

优势:

  • 故障定位更容易。
  • 与Big-Bang方法不同,不需要浪费时间等待所有模块的开发

缺点:

  • 控制应用程序流的关键模块(在软件体系结构的顶层)是最后测试的,可能容易出现缺陷。
  • 早期的原型是不可能的。

自上而下的集成测试

自顶向下集成测试是一种按照软件系统的控制流程自上而下进行集成测试的方法。存根用于测试某些模块是否未就绪。

图表表示法:

INTEGRATION Testing Tutorial: Big Bang, Top Down & Bottom Up
INTEGRATION Testing Tutorial: Big Bang, Top Down & Bottom Up

优势:

  • 故障定位更容易。
  • 获得早期原型的可能性。
  • 关键模块按优先级进行测试;可以首先发现并修复主要的设计缺陷。

缺点:

  • 需要很多存根。
  • 较低级别的模块测试不充分。

混合测试

混合测试是一种将顶层模块与下层模块进行测试,同时将下层模块与顶层模块集成起来,作为一个系统进行测试的策略。它既利用存根又利用驱动程序。

INTEGRATION Testing Tutorial: Big Bang, Top Down & Bottom Up
INTEGRATION Testing Tutorial: Big Bang, Top Down & Bottom Up

如何进行集成测试?

与软件测试策略无关的集成测试程序(如上所述):

  1. 准备集成测试计划
  2. 设计测试场景、案例和脚本。
  3. 执行测试用例,然后报告缺陷。
  4. 跟踪和重新测试缺陷。
  5. 重复步骤3和4,直到集成成功完成。

集成测试计划简介:

它包括以下属性:

  • 测试方法/途径(如上所述)。
  • 集成测试的范围和范围外项目。
  • 角色和职责。
  • 集成测试的前提条件。
  • 测试环境。
  • 风险和缓解计划。

集成测试的进入和退出标准

任何软件开发模型中集成测试阶段的进入和退出标准

进入条件:

  • 单元测试的组件/模块
  • 所有高优先级错误都已修复并关闭
  • 所有模块都要编码完成并成功集成。
  • 集成测试计划、测试用例、待签署并记录的场景。
  • 集成测试需要设置的测试环境

退出条件:

  • 集成应用程序测试成功。
  • 记录已执行的测试用例
  • 所有高优先级错误都已修复并关闭
  • 提交技术文件,然后提交版本说明。

集成测试的最佳实践/指南

  • 首先,确定可以采用的集成测试策略,然后相应地准备测试用例和测试数据。
  • 研究应用程序的体系结构设计,确定关键模块。这些需要按优先级进行测试。
  • 从架构团队获取接口设计,并创建测试用例以详细验证所有接口。必须详细测试与数据库/外部硬件/软件应用程序的接口。
  • 在测试用例之后,起关键作用的是测试数据。
  • 在执行之前,始终准备好模拟数据。执行测试用例时不要选择测试数据。

IT赶路人

专注IT知识分享