ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# 什么是正交阵列测试(OATS)? 工具,技术&示例 > 原文: [https://www.guru99.com/orthogonal-array-testing.html](https://www.guru99.com/orthogonal-array-testing.html) ## 什么是正交阵列测试? **正交阵列测试(OAT)**是一种使用正交数组创建测试用例的测试技术。 当要测试的系统具有大量数据输入时,它特别有用。 例如,当必须验证火车票时,必须测试诸如-乘客数量,票号,座位号和火车号之类的因素。 对每个因素/输入进行逐一测试很麻烦。 当质量检查工程师将更多的输入组合在一起并进行测试时,效率会更高。 在这种情况下,我们可以使用正交阵列测试方法。 输入的配对或组合以及测试系统以节省时间的这种类型称为成对测试。 OATS 技术用于成对测试。 在本教程中,您将学习- * [什么是 OAT(正交阵列测试)?](#1) * [为什么要使用 OAT(正交阵列测试)?](#2) * [OAT 的表示方式](#3) * [如何进行正交阵列测试:示例](#4) * [OAT 的优势](#5) * [OAT 的缺点](#6) * [执行 OAT 时出错或出错](#7) ## 为什么要使用 OAT(正交阵列测试)? 在当前情况下,由于代码的复杂性,向客户交付高质量的软件产品已成为一项挑战。 在传统方法中,测试套件包括从输入值和前提条件的所有组合中得出的测试用例。 结果,必须覆盖 n 个测试用例。 但是在实际情况下,测试人员将无暇执行所有测试用例以发现缺陷,因为在此过程中还必须考虑其他流程,例如文档,建议和来自客户的反馈。 测试阶段。 因此,测试经理希望优化测试用例的数量和质量,以最小的努力确保最大的[测试覆盖率](/test-coverage-in-software-testing.html)。 此工作称为[测试用例](/test-case.html)优化。 1. 测试配对互动的系统和统计方式 2. 交互和集成点是缺陷的主要来源。 3. 执行定义明确,简洁的测试用例,这些测试用例可能会发现大多数(不是全部)错误。 4. 正交方法保证了所有变量的成对覆盖。 ## OAT 的表示方式 计算 OAT 的公式 ![Orthogonal Array Testing (OAT)formula to calculate ](https://img.kancloud.cn/77/8d/778dbdd14dec290bf6d024ee58d9dca2_502x127.png) * 运行次数(N)–数组中的行数,转换为将要生成的多个测试用例。 * 因子(K)–数组中的列数,转换为可以处理的最大变量数。 * 级别(V)–可以在任何单个因子上获取的最大值数。 一个因素有 2 到 3 个要测试的输入。 输入的最大数量决定了级别。 ## 如何进行正交阵列测试:示例 1. 确定方案的自变量。 2. 查找具有运行次数的最小阵列。 3. 将因子映射到数组。 4. 选择任何“剩余”级别的值。 5. 将“运行”转录为测试用例,添加未生成的任何特别可疑的组合。 ### 例子 1 网页具有三个不同的部分(顶部,中间,底部),可以分别向用户显示或隐藏 * 因素数= 3(上,中,下) * 级别数(可见性)= 2(隐藏或显示) * 数组类型= L4(23) (4 是创建 OAT 阵列后到达的运行次数) 如果我们采用常规测试技术,则需要 2 X 3 = 6 个测试用例 | **测试用例** | **场景** | **要测试的值** | | 测试#1 | 隐 | 最佳 | | 测试#2 | 显示 | Top | | 测试#3 | HIDDEN | 底部 | | 测试#4 | SHOWN | Bottom | | 测试#5 | HIDDEN | 中间 | | 测试#6 | SHOWN | Middle | 如果我们要进行 OAT 测试,则需要 4 个测试用例,如下所示: | **Test Cases** | **返回顶部** | **中** | **底部** | | Test #1 | 隐 | Hidden | Hidden | | Test #2 | Hidden | 可见 | Visible | | Test #3 | Visible | Hidden | Visible | | Test #4 | Visible | Visible | Hidden | ### 范例 2: 必须测试微处理器的功能: 1. 温度:100℃,150℃和 200℃。 2. 压力:2 psi,5psi 和 8psi 3. 掺杂量:4%,6%和 8% 4. 沉积速率:0.1mg / s,0.2mg / s 和 0.3mg / s 通过使用常规方法,我们需要= 81 个测试用例来覆盖所有输入。 让我们使用 OATS 方法: 因素数= 4(温度,压力,掺杂量和沉积速率) 级别=每个因子 3 个级别(温度具有 3 个级别,分别为 100C,150C 和 200C,同样,其他因子也具有级别) 创建一个如下数组: **1.具有因子号**的列 | **测试案例#** | **温度** | **压力** | **掺杂量** | **沉积速率** | **2.输入的行数等于每个因子的水平。 即温度有 3 个等级。 因此,为温度的每个级别插入 3 行** | **Test case #** | **Temperature** | **Pressure** | **Doping amount** | **Deposition rate** | | 1 | 100 度 |   |   |   | | 2 | 100C |   |   |   | | 3 | 100C |   |   |   | | 4 | 150 度 |   |   |   | | 5 | 150C |   |   |   | | 6 | 150C |   |   |   | | 7 | 200 度 |   |   |   | | 8 | 200C |   |   |   | | 9 | 200C |   |   |   | **3.现在,在色谱柱中分配压力,掺杂量和沉积速率。** 例如:在 100C,150C 和 200C 的温度范围内输入 2 psi,对于 100C,150C 和 200C,同样输入 4%的掺杂量,依此类推。 | **Test case #** | **Temperature** | **Pressure** | **Doping amount** | **Deposition rate** | | 1 | 100C | 2 磅/平方英寸 | 4% | 0.1 毫克/秒 | | 2 | 100C | 5 磅/平方英寸 | 6% | 0.2 毫克/秒 | | 3 | 100C | 8 磅/平方英寸 | 8% | 0.3 毫克/秒 | | 4 | 150C | 2 psi | 4% | 0.1 mg/s | | 5 | 150C | 5 psi | 6% | 0.2 mg/s | | 6 | 150C | 8 psi | 8% | 0.3 mg/s | | 7 | 200C | 2 psi | 4% | 0.1 mg/s | | 8 | 200C | 5 psi | 6% | 0.2 mg/s | | 9 | 200C | 8 psi | 8% | 0.3 mg/s | 因此,在 OA 中,我们需要涵盖 9 个测试用例。 ## OAT 的优势 * 保证测试所有选定变量的成对组合。 * 减少测试用例的数量 * 创建较少的测试用例,以涵盖所有变量的所有组合的测试。 * 可以完成变量的复杂组合。 * 与手工创建的测试集相比,它更易于生成且不易出错。 * 对于[集成测试](/integration-testing.html)很有用。 * 由于减少了测试周期和测试时间,因此提高了生产率。 ## OAT 的缺点 * 随着数据输入的增加,测试用例的复杂性也随之增加。 结果,增加了人工和花费的时间。 因此,测试人员必须进行[自动化测试](/automation-testing.html)。 * 对于软件组件的集成测试很有用。 ## 执行 OAT 时出错或出错 1. 测试工作不应集中在应用程序的错误区域。 2. 避免选择错误的参数进行组合 3. 避免使用正交阵列测试以减少测试工作量。 4. 手动应用正交阵列测试 5. 将正交阵列测试应用于高风险应用 **结论:** 在这里,我们看到了如何使用 OAT(正交阵列测试)来减少测试工作以及如何实现测试用例优化。 ***本文由 Madhumitha 提供。***