软件测试之正交法

article/2025/9/16 7:58:59

正交法

在这里插入图片描述

通过分析我们发现,对于图中的程序而言,我们要设计81条测试用例,那么有没有一种方法能够使用最小的测试过程集合获得最大的测试覆盖率呢?

1. 概述

1.1 定义

正交法,也叫正交实验法或者正交排列法, 就是使用最小的测试过程集合获得最大的测试覆盖率

“正交实验”是研究多因素、多水平的一种实验方法,它利用正交表来对实验进行设计,通过少数实验代替全面的实验.

在一项实验中,把影响试验结果的量称为试验因素(因子),简称因素。因素可以理解为试验过程中的自变量,试验结果可以看成因素的函数。在试验过程中,每一个因素可以处于不同的状态或状况,把因素所处的状态或状况,称为因素的水平简称水平

1992年AT&T公司,针对某一个软件做了一个回归测试:

在18个周(4个半月)的时间范围内测试1500条测试用例。后来开发时间推迟了,测试时间被压缩了。测试经理想了一个办法,两个人在8个周(2个月)测试1000条测试用例。但是测试经理不能保证该软件就是完全没有问题的。后来他决定用正交表去重新设计一下测试用例,422条测试用例,42个bug。测试完毕后,软件上线了。在上线的两年时间内。凡事被测试到的领域,都没有发现任何问题。后来呢,他从头到尾有总结了一番:有可能只会测试出32条bug。

前后对比:

  • 测试用例的条数少了

  • 测试出来bug的数量多了

1.2 正交表的构成

˙正交表时一种特制的表, 一般记为 L n ( m k ) Ln(m^k) Ln(mk)

  • n是表的行数,也就是需要测试组合的次数
  • k是表的行数, 表示控件个数(因素的个数,或因子的个数)
  • m是每个控件包含的取值个数(各因素的水平数,即各因素的状态数)

**例如: ** L 9 ( 3 4 ) L9(3^4) L9(34) 正交表如下

在这里插入图片描述

2. 使用正交法设计测试用例

2.1 步骤

  1. 根据需求把空间即其取值列举出来
  2. 根据空间和空间的取值个数,选择一个合适的正交表
    • 根据控件的个数,选择正交表的次幂,也就是正交表中包含的最大值, 例如,4个控件,选择4次幂
    • 根据控件取值个数,选择正交表的底,也就是正交表包含的最大值, 例如, 每个控件有3个取值,底是3
  3. 把控件及其取值映射到正交表中
    • 把控件名字分别映射到正交表的列名位置
    • 把正交表中每一列的数字分别用对应的控件取值替代
  4. 根据正交表,编写测试用例

2.2 案例

实现“字符属性设置”的测试用例编写

(1). 列举因子表

字体字符样式字体颜色字号
仿宋粗体红色20号
楷体斜体绿色30号
华文彩云下划线蓝色40号

(2) 确定使用的正交表

确定采用的正交表
L 9 ( 3 4 ) L9(3^4) L9(34)

(3). 把控件及其取值映射到正交表中

在这里插入图片描述

(4). 编写测试用例

上图正交表每一行都是一条测试用例, 此处仅列出2条

用例编号输入预期结果实际结果是否是bug
UT-设置字符子项测-01字体:仿宋; 字符样式: 粗体; 颜色:红色; 字号:20仿宋、 粗体、 红色、20号
UT-设置字符子项测-02字体:仿宋; 字符样式: 粗体; 颜色:红色; 字号:30仿宋、 粗体、 红色、20号

3. 小结

3.1 使用场景

  • 需求中条件的组合量比较大的时候
  • 需求两个两个相互组合的时候

3.2 局限性

正交表的个数有限,一般要求每个控件的取值相等,但是这在实际中很难应用,所以在实际使用时要进行取舍

  • 对于控件个数,如果没有,就选择一个接近的
  • 对于控制的取值,应该少数服从多数, 有更多空间的取值一样

边界值测试法

1. 介绍

边界值分析法就是对输入或输出边界值进行测试的,也是一种黑盒测试.

边界值分析法通常作为等价类划分法的补充,其测试用例来自等价类的边界;长期的经验得知,大量的错误是发现在输入或输出范围的边界上,而不是发生再输入输出范围的内部,因此针对各种边界情况设计测试用例,可以查出更多错误.

和等价类划分法的区别:

  • 是等价类划分法的补充
  • 等价类划分法可以挑选等价范围内任意一个数据作为代表,边界值分析法要求每个边界值都要作为测试条件
  • 边界值分析法不仅考虑输入条件,同样考虑输出产生的测试情况

常见的边界值:

  • **边界点(上点)😗*输入范围的边界点
  • 离点: 离边界点最近的点
  • 内点: 输入范围内的任意一个点

对于边界值的说明:

边界值数据本质上属于等价类的范畴,测试时确实是一种冗余(重复),但是为了更好的测试质量(边界值特别容易出bug),边界值必须要单独测,适当必要的冗余是可以接受的.

举例: 0-100内的整数

上点0, 100
离点1, 99; -1,101; 1,101; 0, 99;
内点34

2. 使用边界值设计测试用用例

2.1 步骤:

  • 明确需求
  • 确定有效和无效等价类
  • 明确输入条件中的边界值
  • 编写测试用例

注意: 边界值法应用时,如果测试时间紧张,应该优先测试最大值和最小值

2.2 案例

要求:测试qq账号是否符合规范

  1. 需求: qq号是6-10位的整数
  2. 确定边界值
上点6个, 10个
离点5个, 9个, 7个,11个
内点8个
  1. 编写测试用例
用例编号等价类划分输入预期结果实际结果
UT-QQ是否符合规范-01有效等价类6个正确
UT-QQ是否符合规范-02有效等价类10个正确
UT-QQ是否符合规范-03无效等价类5个错误
UT-QQ是否符合规范-04有效等价类7个正确
UT-QQ是否符合规范-05无效等价类11个错误
UT-QQ是否符合规范-06有效等价类9个正确
UT-QQ是否符合规范-07有效等价类8个正确
UT-QQ是否符合规范-08无效等价类特殊符号,例如: #,¥ *、空格等错误
UT-QQ是否符合规范-09无效等价类数字+特殊符号错误

3. 小结

边界值分析法作为等价类划分法的补充,经常和等价类划分一起使用.

使用的场景是:有输入并且存在边界值的位置.


http://chatgpt.dhexx.cn/article/MtjSZme9.shtml

相关文章

正交试验法

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

正交实验法

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

正交试验法及其示例

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

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

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

初识javaweb

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

JavaWeb期末题库

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

JavaWeb概述

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

JavaWeb:JavaWeb技术架构演进

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

什么是JAVAweb?

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

Eclipse 创建JavaWeb工程

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

什么是javaWeb

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

JavaWeb详解

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

JavaWeb是什么?简单的理解!

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

一、什么是JavaWeb?

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

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

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

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

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

javaweb基本概念

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

“在禁用 UAC 时,无法激活此应用”问题解决

微信推送消息的脚本运行时报这个错误 打开cmd窗口,输入以下命令: 如图所示位置找到EnableLUA,双击 重启!!!

彻底关闭Windows操作系统的UAC功能

前言 新装的Windows操作系统默认开启了UAC(User Account Control,用户账户控制),每当用户、程序对计算机进行修改时,都会弹出繁琐的提示框。即使通过控制面板进行UAC级别调整,也无法避免某些情况下依旧被弹…

Win11如何关闭UAC?

小伙伴们都知道UAC的功能通常是指用户账户控,该功能会在我们修改系统设置的时候弹出各种提示框,但有不少使用Win11系统的小伙伴想要关闭却不知道如何操作,下面就和小编一起来看看Win11是如何关闭UCA的吧。 Win11关闭UAC的方法 1、首先我点击底…