正交实验法设计测试用例

article/2025/9/16 7:54:16

文章目录

  • 一 正交实验法的由来
    • 1 正交表的由来
      • 1.1 拉丁方名称的由来
      • 1.2 什么是n阶拉丁方?
      • 1.3 什么是正交拉丁方?
    • 2 正交实验法
    • 3 利用正交实验设计测试用例的步骤:
      • 3.1 提取功能说明,构造因子--状态表
      • 3.2 加权筛选,生成因素分析表
      • 3.3 利用正交表构造测试数据集
    • 4 正交表的构成
    • 5 正交表的正交性
      • 5.1 整齐可比性
      • 5.2 均衡分散性
  • 二 用正交实验法设计测试用例
    • 1 用正交表设计测试用例的步骤
    • 2 如何选择正交表
    • 3 设计测试用例时的三种情况
      • 3.1 因素数与水平数刚好符合正交表
      • 3.2 因素数不相同
      • 3.3 水平数不相同
    • 4 正交法设计测试用例举例

一 正交实验法的由来

1 正交表的由来

1.1 拉丁方名称的由来

  古希腊是一个多民族的国家,国王在检阅臣民时要求每个方队中每行有一个民族代表,每列也要有一个民族的代表。
数学家在设计方阵时,以每一个拉丁字母表示一个民族,所以设计的方阵称为拉丁方。

1.2 什么是n阶拉丁方?

  用n个不同的拉丁字母排成一个n阶方阵(n<26 ),如果每行的n个字母均不相同,每列的n个字母均不相同,则称这种方阵为n*n拉丁方或n阶拉丁方。每个字母在任一行、任一列中只出现一次。

1.3 什么是正交拉丁方?

  设有两个n阶的拉丁方,如果将它们叠合在一起,恰好出现n2个不同的有序数对,则称为这两个拉丁方为互相正交的拉丁方,简称正交拉丁方。
例如:3阶拉丁方
  


在这里插入图片描述
图1 三阶拉丁方

用数字代替拉丁方
在这里插入图片描述

2 正交实验法

  正交试验设计(Orthogonal experimental design)是研究多因素多水平的又一种设计方法,它是根据正交性从全面试验中挑选出部分有代表性的点进行试验,这些有代表性的点具备了“均匀分散,齐整可比”的特点,正交试验设计是分式析因设计的主要方法。是一种高效率、快速、经济的实验设计方法。
  日本著名的统计学家田口玄一将正交试验选择的水平组合列成表格,称为正交表。例如作一个三因素三水平的实验,按全面实验要求,须进行33=27种组合的实验,且尚未考虑每一组合的重复数。若按L9(33) 正交表按排实验,只需作9次,按L18(37) 正交表进行18次实验,显然大大减少了工作量。因而正交实验设计在很多领域的研究中已经得到广泛应用。
  利用因果图来设计测试用例时, 作为输入条件的原因与输出结果之间的因果关系,有时很难从软件需求规格说明中得到。往往因果关系非常庞大,以至于据此因果图而得到的测试用例数目多的惊人,给软件测试带来沉重的负担,为了有效地,合理地减少测试的工时与费用,可利用正交实验设计方法进行测试用例的设计。
  正交实验设计方法:依据Galois理论,从大量的(实验)数据(测试例)中挑选适量的、有代表性的点(例),从而合理地安排实验(测试)的一种科学实验设计方法。类似的方法有:聚类分析方法、因子方法方法等。

3 利用正交实验设计测试用例的步骤:

3.1 提取功能说明,构造因子–状态表

  把影响实验指标的条件称为因子,而影响实验因子的条件叫因子的状态。
  利用正交实验设计方法来设计测试用例时,首先要根据被测试软件的规格说明书找出影响其功能实现的操作对象和外部因素,把他们当作因子;而把各个因子的取值当作状态。对软件需求规格说明中的功能要求进行划分,把整体的、概要性的功能要求进行层层分解与展开,分解成具体的有相对独立性的、基本的功能要求。这样就可以把被测试软件中所有的因子都确定下来,并为确定每个因子的权值提供参考的依据。确定因子与状态是设计测试用例的关键。因此要求尽可能全面的、正确的确定取值,以确保测试用例的设计作到完整与有效。

3.2 加权筛选,生成因素分析表

  对因子与状态的选择可按其重要程度分别加权。可根据各个因子及状态的作用大小、出现频率的大小以及测试的需要,确定权值的大小。

3.3 利用正交表构造测试数据集

  利用正交实验设计方法设计测试用例,比使用等价类划分、边界值分析、因果图等方法有以下优点:节省测试工作工时;可控制生成的测试用例数量;测试用例具有一定的覆盖率。
  在使用正交实验法时,要考虑到被测系统中要准备测试的功能点,而这些功能点就是要获取的因子或因素,但每个功能点要输入的数据按等价类划分有多个,也就是每个因素的输入条件,即状态或水平值。

4 正交表的构成

  • 行数(Runs):正交表中的行的个数,即试验的次数,也是我们通过正交实验法设计的测试用例的个数。
  • 因素数(Factors) :正交表中列的个数,即我们要测试的功能点。
  • 水平数(Levels):任何单个因素能够取得的值的最大个数。正交表中的包含的值为从0到数“水平数-1”或从1到“水平数” 。即要测试功能点的输入条件。

正交表的形式: L 行 数 ( 水 平 数 因 素 数 ) L_{行数}(水平数^{因素数}) L(),如 L 8 ( 2 7 ) L_8(2^7) L8(27)
  


在这里插入图片描述
图2 正交表示例图

5 正交表的正交性

5.1 整齐可比性

  在同一张正交表中,每个因素的每个水平出现的次数是完全相同的。由于在试验中每个因素的每个水平与其它因素的每个水平参与试验的机率是完全相同的,这就保证在各个水平中最大程度的排除了其它因素水平的干扰。因而,能最有效地进行比较和作出展望,容易找到好的试验条件。

5.2 均衡分散性

  在同一张正交表中,任意两列(两个因素)的水平搭配(横向形成的数字对)是完全相同的。这样就保证了试验条件均衡地分散在因素水平的完全组合之中,,因而具有很强的代表性,容易得到好的试验条件。

二 用正交实验法设计测试用例

以上介绍了正交实验法的由来。怎么用正交实验法进行用例的设计呢?

1 用正交表设计测试用例的步骤

  • (1) 有哪些因素(变量)
  • (2) 每个因素有哪几个水平(变量的取值)
  • (3) 选择一个合适的正交表
  • (4) 把变量的值映射到表中
  • (5) 把每一行的各因素水平的组合做为一个测试用例
  • (6) 加上你认为可疑且没有在表中出现的组合

2 如何选择正交表

  • 考虑因素(变量)的个数
  • 考虑因素水平(变量的取值)的个数
  • 考虑正交表的行数
  • 取行数最少的一个

3 设计测试用例时的三种情况

  • (1)因素数(变量)、水平数(变量值)相符
  • (2)因素数不相同
  • (3)水平数不相同

3.1 因素数与水平数刚好符合正交表

我们举个例子
  


在这里插入图片描述
图3 个人信息查询系统

  这是个人信息查询系统中的一个窗口。我们可以看到要测试的控件有3个:姓名、身份证号码、手机号码,也就是要考虑的因素有三个;而每个因素里的状态有两个:填与不填。
选择正交表时分析一下

  • 1.表中的因素数>=3;
  • 2.表中至少有3个因素数的水平数>=2;
  • 3.行数取最少的一个。
    从正交表公式中开始查找,结果为: L 4 ( 2 3 ) L_4(2^3) L4(23)
    变量映射:
      

    在这里插入图片描述
    图4 L 4 ( 2 3 ) L_4(2^3) L4(23) 正交表

测试用例如下:

  1. 填写姓名、填写身份证号、填写手机号
  2. 填写姓名、不填身份证号、不填手机号
  3. 不填姓名、填写身份证号、不填手机号
  4. 不填姓名、不填身份证号、填写手机号

增补测试用例
5. 不填姓名、不填身份证号、不填手机号
  从测试用例可以看出:如果按每个因素两个水平数来考虑的话,需要8个测试用例,而通过正交实验法进行的测试用例只有5个,大大减少了测试用例数。用最小的测试用例集合去获取最大的测试覆盖率。

3.2 因素数不相同

  如果因素数不同的话,可以采用包含的方法,在正交表公式中找到包含该情况的公式,如果有N个符合条件的公式,那么选取行数最少的公式。

3.3 水平数不相同

  采用包含和组合的方法选取合适的正交表公式。

4 正交法设计测试用例举例

  上面就正交实验法进行了讲解,现在再拿PowerPoint软件打印功能作为例子,希望能为大家更好地理解给方法的具体应用。
假设功能描述如下:

  • 打印范围分:全部、当前幻灯片、给定范围 共三种情况;
  • 打印内容分:幻灯片、讲义、备注页、大纲视图 共四种方式;
  • 打印颜色/灰度分: 颜色、灰度、黑白 共三种设置;
  • 打印效果分:幻灯片加框和幻灯片不加框两种方式。

因素状态表:

状态/因素A打印范围B打印内容C打印颜色/灰度D打印效果
0全部幻灯片颜色幻灯片加框
1当前幻灯片讲义灰度幻灯片不加框
2给定范围备注页黑白
3大纲视图

我们先将中文字转换成字母,便于设计。得到:
因素状态表:

状态/因素A打印范围B打印内容C打印颜色/灰度D打印效果
0A1B1C1D1
1A2B2C2D2
2A3B3C3
3B4

我们分析一下:
被测项目中一共有四个被测对象,每个被测对象的状态都不一样。
选择正交表:

  • 1 表中的因素数>=4
  • 2 表中至少有4个因素的水平数>=2
  • 3 行数取最少的一个
    最后选中正交表公式: L 16 ( 4 5 ) L_{16}(4^5) L16(45)
ABCDE
1A1B1C1D10
2A1B2C2D21
3A1B3C322
4A1B4333
5A2B1C223
6A2B2C132
7A2B33D11
8A2B4C3D20
9A3B1C331
10A3B2320
11A3B3C1D23
12A3B4C2D12
133B13D22
143B2C3D13
153B3C230
163B4C121

我们看到:
第一列水平值为3、第三列水平值为3、第四列水平值3、2都需要由各自的字母替代。

ABCDE
1A1B1C1D10
2A1B2C2D21
3A1B3C3D12
4A1B4C1D23
5A2B1C2D13
6A2B2C1D22
7A2B3C2D11
8A2B4C3D20
9A3B1C3D11
10A3B2C3D20
11A3B3C1D23
12A3B4C2D12
13A1B1C1D22
14A2B2C3D13
15A3B3C2D20
16A1B4C1D11

第五列去掉没有意义。通过分析,由于四个因素里有三个的水平值小于3,所以从第13行到16行的测试用例可以忽略。
那么这样的话,就可以有12个测试用例了。

测试用例编号PPT—ST—FUNCTION—PRINT—001
测试项目测试powerpoint打印功能
测试标题打印PowerPoint文件A全部的幻灯片,有颜色,加框
重要级别
预置条件PowerPoint文件A已被打开,电脑主机已连接有效打印机
输入文件A:D:\系统测试.ppt
操作步骤1、打开打印界面;
2、打印范围选择“全部”;
3、打印内容选择“幻灯片”;
4、颜色/灰度选择“颜色”;
5、在“幻灯片加框”前打勾;
6、点击“确定”。
预期输出打印出全部幻灯片,有颜色且已加框。
测试用例编号PPT—ST—FUNCTION—PRINT—002
测试项目测试powerpoint打印功能
测试标题打印PowerPoint文件A全部的幻灯片为讲义,灰度,不加框
重要级别
预置条件PowerPoint文件A已被打开,电脑主机已连接有效打印机
输入文件A:D:\系统测试.ppt
操作步骤1、打开打印界面;
2、打印范围选择“全部”;
3、打印内容选择“讲义”;
4、颜色/灰度选择“灰度”;
5、点击“确定”。
预期输出打印出全部幻灯片为讲义,灰度且不加框。
测试用例编号PPT—ST—FUNCTION—PRINT—003
测试项目测试powerpoint打印功能
测试标题打印PowerPoint文件A全部的备注页,黑白,加框
重要级别
预置条件PowerPoint文件A已被打开,电脑主机已连接有效打印机
输入文件A:D:\系统测试.ppt
操作步骤1、打开打印界面;
2、打印范围选择“全部”;
3、打印内容选择“备注页”;
4、颜色/灰度选择“黑白”;
5、在“幻灯片加框”前打勾;
6、点击“确定”。
预期输出打印出全部备注页,黑白且已加框。

其他测试用例参考上述测试用例来设计。


http://chatgpt.dhexx.cn/article/1LB8is4t.shtml

相关文章

正交实验法实战

一、正交实验法概述 正交实验法是研究多因素多水平的一种方法&#xff0c;它是通过正交表挑选部分有代表性的水平组合试验替代全面试验。这些有代表性的组合试验具备了“均匀分散&#xff0c;整齐可比”的特点。正交表一般用Ln​(mk)表示&#xff0c;L 代表是正交表&#xff0…

功能测试---正交实验法

首先我们先看一下案例 案例: PPT打印功能 PowerPoint软件打印功能描述如下&#xff1a; 打印范围分&#xff1a;全部、当前幻灯片、 给定范围 共三种情况&#xff1b; 打印内容分&#xff1a;幻灯片、讲义、备注页、大纲视图 共四种方式&#xff1b; 打印颜色/灰度分: 颜色…

软件测试之正交法

正交法 通过分析我们发现,对于图中的程序而言,我们要设计81条测试用例,那么有没有一种方法能够使用最小的测试过程集合获得最大的测试覆盖率呢? 1. 概述 1.1 定义 正交法,也叫正交实验法或者正交排列法, 就是使用最小的测试过程集合获得最大的测试覆盖率。 “正交实验”是…

正交试验法

正交实验法 正交试验设计法&#xff08;Orthogonal experimental design&#xff09;&#xff0c;是从大量的试验点中挑选出适量的、有代表性的点&#xff0c;应用依据伽罗卡瓦理论导出的 "正交表"&#xff0c;合理的安排试验的一种科学的试验设计方法 正交实验法 …

正交实验法

1.定义&#xff08;What&#xff09; 正交实验法是研究多因素、多水平组合的一种实验法&#xff0c;它是利用正交表来对实验进行设计&#xff0c;通过少数的实验替代全面实验&#xff0c;根据正交表的正交性从全面实验中挑选适量的、有代表性的点进行实验&#xff0c;这些有代…

正交试验法及其示例

正交试验法及其示例 正交实验法是一种测试组合的方法。把影响实验指标的条件称为因子&#xff0c;而影响实验因子的条件叫因子的状态。 利用正交实验设计方法来设计测试用例时&#xff0c;首先要根据被测试软件的规格说明书找出影响其功能实现的操作对象和外部因素(输入??)…

JavaWeb期末大作业 Javaweb项目 Javaweb Servlet html

1.前端效果展示 1.进入之后是一个分页查询所有数据的内容 该页面有基础的增删改查 还有分页查询 批量删除 进行条件查询 有什么不对的地方欢迎提出 谢谢 2.增删改查 1.添加 添加成功 2.删除 将刚才添加的OPPO删除 3.修改 4.查询的话就是主页查询所有 页面所用的是分…

初识javaweb

javaweb&#xff0c;顾名思义&#xff0c;分为java和web&#xff0c;而web又包括前端和数据库 1.基本概念 1.1前言 web开发&#xff1a; -----web,网页的意思&#xff0c;表示我们可以从互联网上拿到一定的资源。 例如打开网址www.baidu.com所链接的页面是一个web页面,如下…

JavaWeb期末题库

JavaWeb期末题库 提示&#xff1a;如果您需要更多题库和编程知识&#xff0c;请微信搜索&#xff1a;口袋Code&#xff0c;获取更多得题库&#xff0c;包含C&#xff0c;C&#xff0c;C#&#xff0c;java&#xff0c;python&#xff0c;javaweb&#xff0c;Go语言&#xff0c;…

JavaWeb概述

目录 1.JavaWeb概念 2.常用软件体系结构 3.为什么学习JavaWeb技术&#xff1f; 4.web 应用程序的工作原理 5.web应用程序的资源分类 6.web 服务器软件 7.思维导图总结 本人对JavaWeb的理解 从百科全说中了解到是用Java技术来解决相关web互联网领域的技术栈。 可以先了解…

JavaWeb:JavaWeb技术架构演进

Java Web&#xff0c;是用 Java 技术来解决相关web互联网领域的技术栈。web 包括&#xff1a;web 服务端和 web 客户端两部分。Java 在客户端的应用有 Java Applet&#xff0c;不过使用得很少&#xff0c;Java 在服务器端的应用非常的丰富&#xff0c;比如 Servlet&#xff0c;…

什么是JAVAweb?

文章目录 JAVAweb一、基本概念1、web开发&#xff1a;2、web应用程序3、静态web4、动态web JAVAweb 一、基本概念 1、web开发&#xff1a; web&#xff1a;网页的意思&#xff0c;它用于表示Internet主机上供外界访问的资源&#xff0c;例如&#xff1a;www.jd.com; 静态web …

Eclipse 创建JavaWeb工程

Eclipse 创建JavaWeb工程 配置环境&#xff1a; ​ Eclipse&#xff1a;Version: 2022-06 ​ tomcat&#xff1a;9.0.65 创建Web工程流程 1.先在Eclipse上配置tomcat&#xff0c;打开Eclipse&#xff0c;选择菜单栏上的Window–>Preferences–>在下拉菜单中找到Serv…

什么是javaWeb

什么是JavaWeb 简单理解&#xff1a; javaWeb是指&#xff0c;我们通过java语言编写的所有程序&#xff0c;这些程序是得可以通过浏览器来访问的。 web不就是网的意思嘛&#xff0c;所以javaweb可以简单理解就是我通过发送请求的方式来访问我编写的Java程序。 浏览器如何访…

JavaWeb详解

JavaWeb动态Web资源开发 静态Web: 用户看到的数据始终不变;动态Web:各人看到的信息不同动态Web:1.页面动态展示,淘宝"千人千面";2.和数据库交互 Web应用程序:给浏览器访问的程序 静态Web动态Web 浏览器访问网络资源流程图 客户端通过网络协议(如Http),请求进入服…

JavaWeb是什么?简单的理解!

终于考试周结束了 紧接着的就是一顿迷茫,我学的啥?我自己怎么不知道??? 好吧,这里整理一份JavaWeb的笔记吧! 不知道大家怎么想的,对于不同的人会有不一样的理解,在这里我想总结一下我的个人看法: 很多高手都会告诉你JavaWeb是一个技术的总和,或者说是一种技术体系,都是…

一、什么是JavaWeb?

1、基本概念 1.1、什么是JavaWeb&#xff1f; Java Web是用Java技术来解决相关web互联网领域的技术栈。web包括&#xff1a;web服务端和web客户端两部分。Java在客户端的应用有Java Applet&#xff0c;不过使用得很少&#xff0c;Java在服务器端的应用非常的丰富&#xff0c;…

JavaWeb是什么?总结一下JavaWeb的体系

JavaWeb是什么&#xff1f;通过最近在尚硅谷上学习&#xff0c;分享一下 Java WEB前言JavaWeb的技术体系登录页面的开发涉及的技术知识点HTML是什么? 登录功能实现-环境的搭建涉及的技术知识点Web服务器Tomcat服务器的安装及配置在eclipse中配置tomcat创建动态的web工程 登录功…

JavaWeb是什么?如何学习JavaWeb的体系

java语言是当前最流行的开发语言之一。它的风格十分接近C语言&#xff0c;是一个纯粹的面向对象的程序设计语言。Java继承了C语言面向对象技术的核心&#xff0c;舍弃了C语言中复杂和一些容易出错的特性&#xff0c;并在内存管理方面得到了增强。 web是指Internet 的图形、多媒…

javaweb基本概念

文章目录 什么是javawebweb资源的分类常用的web服务器 什么是javaweb 什么是javaweb Javaweb是指&#xff0c;所有通过java语言编写的可以通过浏览器访问的程序的总称&#xff0c;叫javaweb。 javaweb是基于请求和响应来开发的。 什么是请求 请求是指客户端给服务器发送数据&a…