什么是正交数组测试?(示例)

正交阵列测试

正交阵列测试 (OAT) 是一种使用正交阵列创建测试用例的软件测试技术。它是一种统计测试方法,在被测试系统具有大量数据输入时特别有用。正交阵列测试通过配对和组合输入,并以相对较少的测试用例测试系统来最大化测试覆盖率,从而节省时间。

例如,当火车票需要验证时,必须测试乘客数量、车票号码、座位号和火车号等因素。逐一测试每个因素/输入是繁琐的。当QA工程师将更多输入组合在一起进行测试时,效率更高。在这种情况下,我们可以使用正交阵列测试方法。

这种配对或组合输入并测试系统以节省时间的方法称为成对测试。OATS技术用于成对测试。

为什么选择OAT(正交阵列测试)?

在当前情况下,由于代码的复杂性,向客户交付高质量的软件产品已变得具有挑战性。

在传统方法中,测试套件包括源自所有输入值和前置条件组合的测试用例。因此,必须覆盖N个测试用例。

但在实际情况中,测试人员没有时间执行所有测试用例来发现缺陷,因为在测试阶段还需要考虑文档、建议和客户反馈等其他流程。

因此,测试经理希望优化测试用例的数量和质量,以确保以最小的努力实现最大的测试覆盖率。这种努力称为测试用例优化。

  1. 系统化的统计方法来测试成对交互
  2. 交互和集成点是缺陷的主要来源。
  3. 执行定义良好、简洁的测试用例,这些测试用例可能会发现大多数(并非所有)错误。
  4. 正交方法保证所有变量的成对覆盖。

OAT的表示方式

OAT的计算公式

Represented OAT

  • 运行次数(N)——阵列中的行数,转换为将生成的测试用例数量。
  • 因子(K)——阵列中的列数,转换为可以处理的最大变量数量。
  • 水平(V)——任何单个因子可以采用的最大值数量。

单个因子有2到3个输入需要测试。这些最大输入数量决定了水平。

如何进行正交阵列测试:示例

  1. 识别场景的独立变量。
  2. 找到运行次数最小的阵列。
  3. 将因子映射到阵列。
  4. 为任何“剩余”级别选择值。
  5. 将运行次数转换为测试用例,并添加任何未生成的特别可疑组合。

示例 1

一个网页有三个不同的部分(顶部、中部、底部),可以单独向用户显示或隐藏。

  • 因子数 = 3(顶部、中部、底部)
  • 级别数(可见性) = 2(隐藏或显示)
  • 阵列类型 = L4(23)

(4是创建OAT阵列后得到的运行次数)

如果采用传统测试技术,我们需要2 X 3 = 6个测试用例

测试用例 场景 要测试的值
测试 #1 隐藏 顶部
测试 #2 显示 顶部
测试 #3 隐藏 底部
测试 #4 显示 底部
测试 #5 隐藏 中部
测试 #6 显示 中部

如果采用OAT测试,我们需要4个测试用例,如下所示

测试用例 顶部 中部 底部
测试 #1 隐藏 隐藏 隐藏
测试 #2 隐藏 可见 可见
测试 #3 可见 隐藏 可见
测试 #4 可见 可见 隐藏

示例 2

需要测试微处理器的功能

  1. 温度:100°C、150°C和200°C。
  2. 压力:2 psi、5 psi和8 psi
  3. 掺杂量:4%、6%和8%
  4. 沉积速率:0.1mg/s、0.2mg/s和0.3mg/s

使用传统方法,我们需要81个测试用例来覆盖所有输入。让我们使用OATS方法。

因子数量 = 4(温度、压力、掺杂量和沉积速率)

级别 = 每个因子3个级别(温度有3个级别——100°C、150°C和200°C,其他因子也类似)

创建如下数组

1. 列与因子数量一致

测试用例 # 温度 压力 掺杂量 沉积速率

2. 输入行数等于每个因子的级别数。即温度有3个级别。因此,温度的每个级别插入3行,

测试用例 # 温度 压力 掺杂量 沉积速率
1 100摄氏度
2 100摄氏度
3 100摄氏度
4 150摄氏度
5 150摄氏度
6 150摄氏度
7 200摄氏度
8 200摄氏度
9 200摄氏度

3. 现在将压力、掺杂量和沉积速率分别放入列中。

例如:在温度100°C、150°C和200°C处输入2 psi,同样在100°C、150°C和200°C处输入4%的掺杂量,依此类推。

测试用例 # 温度 压力 掺杂量 沉积速率
1 100摄氏度 2 psi 4% 0.1 毫克/秒
2 100摄氏度 5 psi 6% 0.2 毫克/秒
3 100摄氏度 8 psi 8% 0.3 毫克/秒
4 150摄氏度 2 psi 4% 0.1 毫克/秒
5 150摄氏度 5 psi 6% 0.2 毫克/秒
6 150摄氏度 8 psi 8% 0.3 毫克/秒
7 200摄氏度 2 psi 4% 0.1 毫克/秒
8 200摄氏度 5 psi 6% 0.2 毫克/秒
9 200摄氏度 8 psi 8% 0.3 毫克/秒

因此,在OAs中,我们需要9个测试用例来覆盖。

OAT的优点

  • 保证对所有选定变量的成对组合进行测试。
  • 减少测试用例数量
  • 创建较少的测试用例,涵盖所有变量的所有组合测试。
  • 可以实现变量的复杂组合。
  • 比手动创建的测试集更简单,错误更少。
  • 它对集成测试很有用。
  • 由于减少了测试周期和测试时间,提高了生产力。

OAT的缺点

  • 随着数据输入的增加,测试用例的复杂性也随之增加。因此,人工工作量和时间也随之增加。因此,测试人员必须进行自动化测试
  • 适用于软件组件的集成测试。

执行OAT时的错误

  1. 测试工作不应集中在应用程序的错误区域。
  2. 避免选择错误的参数进行组合
  3. 避免将正交阵列测试用于最小测试工作。
  4. 手动应用正交阵列测试
  5. 将正交阵列测试应用于高风险应用程序

结论

在这里,我们已经了解了如何使用OAT(正交阵列测试)来减少测试工作,以及如何实现测试用例优化。