什么是三明治测试(定义、类型、示例)?

集成测试是软件测试中的一个特定阶段,测试人员将所有独立模块组合并测试到一个实体中。在这个阶段,测试人员测试接口和通信的每个模块。这些测试使用两种方法进行——自顶向下和自底向上集成测试。三明治测试,又名混合集成测试,包括自下而上和自上而下的测试方法。简而言之,在三明治测试中,测试人员获得了这两种方法的优势,使过程更加精确和以结果为导向。

三明治测试的特点

以下是三明治或混合测试的特点 -

  • 它具有三层 - 主要目标层,目标层下方的层和目标层上方的层。

  • 测试主要集中在中间目标层。

  • 它是根据代码结构的特点选择的。

  • 测试人员可以采用三明治测试来处理软件应用程序的工作版本。

  • 它还用于在软件开发周期的最早阶段确定开发基本工作系统。

夹心测试背后的主要目标是通过引入进化的方法来消除弱点并提高产品质量。测试人员使用动态符号执行和基于搜索的技术等高级技术来生成涵盖所有分支语句的质量测试数据。这通过最小化测试用例来提高定期代码覆盖率的准确性。

为什么在软件测试中需要三明治测试?

缺乏正确的方法会导致项目失败。每个软件都有特定的方法论,每种方法论都有其特点。混合或夹心测试包含不同的技术,确保最大程度地覆盖成功测试过程所需的方法。

三明治测试示例

三明治测试类似于 Web 应用程序测试。

例如,Windows 应用程序包括用户界面的融合,如 .NET、MFC 和 WPF。人们可以在他们的系统上安装这样的混合应用程序。它们不仅没有兼容问题,而且安装和执行所需的时间也更少。它们提供与主要设备的一致性和完全跨平台兼容性。开发人员可以编写一个脚本并轻松地在多个平台上运行它。

混合应用程序中涉及的测试

混合应用程序中涉及的测试 混合应用程序中进行了三种类型的测试

  • 功能测试- 进行以确保程序中的所有功能正常运行。它确保应用程序可以轻松使用内置资源。

  • 连接测试- 确保应用程序可以在多种类型的网络连接下准确工作。此外,它还验证用户可以切换不同的连接类型并在没有任何网络连接的情况下工作。

  • 兼容性测试- 确保应用程序在不同设备上运行而不会显示任何兼容性问题。

在我们详细了解 Sandwich 方法之前,让我们先简单了解一下集成测试。

集成测试

软件工程师使用各种策略来执行集成测试,具有 -

  • 大爆炸法

  • 增量方法:分为三个阶段——自顶向下、自底向上和三明治(自顶向下和自底向上的组合)方法

大爆炸测试

大爆炸测试非常适合小型系统。在此测试中,所有组件或模块同时组合(也称为实体)并作为一个单元进行测试。

增量测试

在增量测试中,至少集成和测试两个或多个模块(逻辑相关)。然后测试人员逐渐添加其他相关模块,直到所有相关模块都集成并测试成功。

增量测试使用两种方法进行:自底向上和自顶向下测试。

自下而上的集成测试

在这种方法中,测试人员首先测试较低级别的模块。所有测试的模块稍后用于测试更高级别的模块。该过程一直持续到所有顶级模块都经过完全测试。

优势-

  • 易于故障定位

  • 与大爆炸方法不同,无需开发所有模块即可开始测试过程。

限制-

  • 由于关键模块最后进行测试,因此可能会导致缺陷

  • 无法测试早期原型

自顶向下的集成测试

测试是通过自上而下的集成方法中的软件系统控制流从上到下进行的。与自下而上的方法相反,测试人员首先测试较高级别的模块,然后是较低级别的模块。如果某些模块没有准备好,测试工程师可以使用存根作为替代。

优势-

  • 易于故障定位

  • 获得早期原型更容易

  • 由于首先测试关键模块,因此尽早发现主要缺陷会更容易。

限制

  • 较低的模块经常被忽视

  • 需要很多存根

三明治测试

如前所述,夹心测试是自下而上和自上而下方法的混合。这意味着,顶层模块和底层模块都作为一个系统集成和测试在一起。因此,夹心测试也称为混合集成测试。此测试需要使用存根和驱动程序。

如何进行三明治测试?

夹心测试过程可分为五个步骤:

  • 步骤 1 - 准备测试计划

  • 第 2 步- 开发测试场景、案例和脚本

  • 步骤 3 - 运行测试用例并报告缺陷

  • 第 4 步- 跟踪缺陷并再次测试它们

  • 第 5 步- 重复第 3 步和第 4 步,直到集成成功完成

夹心测试的属性

  • 决定在测试过程中使用的方法或途径

  • 分配范围和范围外的项目

  • 分配角色和职责

  • 满足测试的先决条件

  • 准备测试环境

  • 准备风险和缓解计划

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

以下是进行集成测试的进入和退出标准

入学标准-

  • 准备所有经过单元测试的组件或模块

  • 修复并关闭所有高度关键的错误

  • 完成所有模块的代码并成功集成

  • 签署并记录所有集成测试计划、测试用例和场景

  • 设置所需的测试环境

退出标准

  • 测试所有集成应用程序

  • 记录所有执行的测试用例

  • 修复并关闭所有高度优先的错误

  • 提交所有技术文档以及发行说明

在运行三明治测试之前,研究应用程序的架构设计至关重要。这有助于您更好地识别关键模块。测试人员可以联系架构团队获取接口设计,以创建和验证测试用例和接口细节。