什么是正交阵列测试?(示例)
正交阵列测试
正交阵列测试 (OAT) 是一种使用正交阵列创建测试用例的软件测试技术。这是一种统计测试方法,当要测试的系统有大量数据输入时尤其有用。正交阵列测试通过配对和组合输入并使用相对较少的测试用例测试系统来帮助最大化测试覆盖率,从而节省时间。
例如,当需要验证火车票时,需要测试乘客人数、票号、座位号和火车号等因素。逐一测试每个因素/输入非常麻烦。当 QA 工程师将更多输入组合在一起进行测试时,效率会更高。在这种情况下,我们可以使用正交阵列测试方法。
这种配对或组合输入并测试系统以节省时间的方法称为成对测试。OATS 技术用于成对测试。
为什么要进行OAT(正交阵列测试)?
在目前的情况下,由于代码的复杂性,向客户交付高质量的软件产品变得越来越具有挑战性。
在传统方法中,测试套件包括从所有输入值和前提条件的组合中得出的测试用例。因此,必须覆盖 n 个测试用例。
但在现实情况下,测试人员没有时间执行所有测试用例来发现缺陷,因为在测试阶段还需要考虑其他过程,例如文档、建议和来自客户的反馈。
因此,测试经理希望优化测试用例的数量和质量,以确保最大程度 测试覆盖率 以最小的努力。这种努力被称为 测试用例 优化。
- 测试成对相互作用的系统和统计方法
- 交互和集成点是缺陷的主要来源。
- 执行明确、简洁的测试用例,可能会发现大多数(并非全部)错误。
- 正交方法保证所有变量的成对覆盖。
OAT 的代表方式
计算OAT的公式
- 运行(N)——数组中的行数,相当于将生成的测试用例的数量。
- 因子(K)——数组中的列数,即可以处理的最大变量数。
- 级别(V)—— 任何单一因素可取的最大值数。
单个因素有 2 到 3 个输入需要测试。输入的最大数量决定了级别。
如何进行正交阵列测试:示例
- 确定场景的独立变量。
- 找到具有运行次数的最小数组。
- 将因子映射到数组。
- 选择任何“剩余”级别的值。
- 将运行转录为测试用例,添加任何未生成的特别可疑的组合。
例子1
网页有三个不同的部分(顶部、中部、底部),可以单独显示或隐藏
- 因素数量 = 3 (顶部、中间、底部)
- 级别数(可见性)= 2(隐藏或显示)
- 数组类型 = L4(23)
(4 是创建 OAT 数组后到达的运行次数)
如果我们采用传统测试技术,我们需要 2 X 3 = 6 个测试用例
测试用例 | 方案 | 要测试的值 |
---|---|---|
测试#1 | HIDDEN | 置顶 |
测试#2 | 显示 | 置顶 |
测试#3 | HIDDEN | 半身裙/裤 |
测试#4 | 显示 | 半身裙/裤 |
测试#5 | HIDDEN | 中间 |
测试#6 | 显示 | 中间 |
如果我们进行 OAT 测试,我们需要 4 个测试用例,如下所示:
测试用例 | TOP | 中间 | 半身裙/裤 |
---|---|---|---|
测试#1 | 老旧房屋 | 老旧房屋 | 老旧房屋 |
测试#2 | 老旧房屋 | 可见 | 可见 |
测试#3 | 可见 | 老旧房屋 | 可见 |
测试#4 | 可见 | 可见 | 老旧房屋 |
例子2
必须测试微处理器的功能:
- 温度:100C、150C和200C。
- 压力:2 psi、5 psi 和 8 psi
- 掺杂量:4%、6%、8%
- 沉积速率:0.1毫克/秒、0.2毫克/秒和0.3毫克/秒
通过使用传统方法,我们需要 = 81 个测试用例来覆盖所有输入。让我们使用 OATS 方法:
因素数量 = 4 (温度、压力、掺杂量和沉积速率)
级别 = 每个因素有 3 个级别(温度有 3 个级别 - 100C、150C 和 200C,同样,其他因素也有级别)
创建一个数组如下:
1. 因子数列
测试用例 # | 温度 | 压力 | 掺杂量 | 沉积率 |
---|---|---|---|---|
2. 输入行数等于每个因素的级别数。例如,温度有 3 个级别。因此,为温度的每个级别插入 3 行,
测试用例 # | 温度 | 压力 | 掺杂量 | 沉积率 |
---|---|---|---|---|
1 | 100C | |||
2 | 100C | |||
3 | 100C | |||
4 | 150C | |||
5 | 150C | |||
6 | 150C | |||
7 | 200C | |||
8 | 200C | |||
9 | 200C |
3. 现在将压力、掺杂量和沉积速率分开。
例如:在温度为 2C、100C 和 150C 时输入 200 psi,同样在 4C、100C 和 150C 时输入掺杂量 200%,等等。
测试用例 # | 温度 | 压力 | 掺杂量 | 沉积率 |
---|---|---|---|---|
1 | 100C | 2psi | 4% | 0.1毫克/秒 |
2 | 100C | 5psi | 6% | 0.2毫克/秒 |
3 | 100C | 8psi | 8% | 0.3毫克/秒 |
4 | 150C | 2psi | 4% | 0.1毫克/秒 |
5 | 150C | 5psi | 6% | 0.2毫克/秒 |
6 | 150C | 8psi | 8% | 0.3毫克/秒 |
7 | 200C | 2psi | 4% | 0.1毫克/秒 |
8 | 200C | 5psi | 6% | 0.2毫克/秒 |
9 | 200C | 8psi | 8% | 0.3毫克/秒 |
因此,在 OA 中,我们需要 9 个测试用例来覆盖。
OAT 优势
- 保证对所有选定变量的成对组合进行测试。
- 减少测试用例的数量
- 创建更少的测试用例来涵盖所有变量的所有组合的测试。
- 可以对变量进行复杂的组合。
- 与手动创建的测试集相比,生成更简单且更不容易出错。
- 它对于 整合测试.
- 由于缩短了测试周期和测试时间,它提高了生产率。
OAT的缺点
- 随着数据输入的增加,测试用例的复杂性也随之增加。因此,手动工作量和时间花费也会增加。因此,测试人员必须 自动化测试.
- 对于软件组件的集成测试有用。
执行 OAT 时的错误或失误
- 测试工作不应该集中在应用程序的错误区域。
- 避免选择错误的参数进行组合
- 避免使用正交阵列测试来减少测试工作量。
- 手动应用正交阵列测试
- 对高风险应用进行正交阵列测试
结语
这里我们看到了如何使用OAT(正交阵列测试)来减少测试工作量以及如何实现测试用例优化。