编写测试用例方法之正交表分析法

article/2025/8/20 11:47:02

今天我们再来介绍另外一个编写测试用例的方法:正交表分析法,这个方法是一种比较方便的方法。话不多说,开始整干货,老规矩,首先全图镇楼

之前我们在对产品进行测试用例设计的时候,都是针对单个输入框。如果多个输入框的情况下,那么这种情况就比较复杂一点。比如说我们有一个个人信息的输入框,有姓名、账号,还有手机号码。它有三个输入框。

如果未使用正交法的情况下,按照我们通常的惯例可能对第一个输入框填写,第二个输入框不填写,第三个输入框填写或者是第一个不填写,第二个填写第三个填写或者全填写或者全不填写。那这样的话,我们把所有的可能性都罗列出来的话,就有一个问题。

就是比如说第一个输入框我们填写了,第二个输入框也填写了,第三个输入框没填写,这时候第一个输入框出现了错误,它就不会被第二个输入框进行验证。还有其他的一种可能性,就是第一个输入框填写与第二个输入框不填写,而这两种情况是重合的,所以就产生多余的一些测试用例。所以为了避免产生多余的测试用例,所以我们就要使用正交表分析法。

使用正交分析法的时候,最好的方式是使用一个正交设计助手来使用。我们也可以靠手填写,针对一些输入框比较少的情况下,用手填写和设计哪个框填写,哪个框不填写。如果这个输入框达到几十或者二三十个的时候,手填的话就会变得眼花缭乱,很有可能会导致一些重复的设计用例出现。

使用正交设计助手的话,就按照软件的逻辑,来给你生成需要测试的正交表的测试用例。正交设计助手打开的时候,首先要去新建一个实验,并取一个实验的名称,然后填写一个设计向导。所谓的设计向导就是实验说明,它有两种,首先选择的就是正交表。

比如 L4_2_3,这个就是一个表的名字,2代表是水平,3 代表是因数。对于这个 2 水平 3 因数,接下来再点击因素和水平的时候,会有一个表上面写着水平 1 和水平 2 就是两水平。而这个因数的名称有 123 就对应了输入框。第一个输入框是表示姓名的,就在因数名称上面写姓名。第二个输入框代表是身份证号码,就在第二个输入框上面写身份证号码,它就是因数名称。

第三个输入框是手机号码,对应的因素名称也就是手机号码。至于水平,其实水平 1 它有两个水平,水平 1 和水平 2 都是互为相反的。水平 1 所有的对应的值都是一样的,都是填写,水平 2 因为和水平 1 相反,所以水平 2 都是不填写。点击确定之后,就会生成一个正交表。

 这时候就会得到四个测试,四个实验。实验一就是姓名填写,就是第一个输入框填写,第二个输入框填写,第三个输入框填写。实验二就是第一个输入框填写,其余不填写。实验 3 就是第二个输入框填写,其余不填写。第四个实验就是第最后一个输入框填写,其余不填写。

这样的话把之前的各种各样纷繁重复的一些测试用例就给去掉了,仅仅得到这种比较经典的测试用例,就不会产生一些重复或者做一些无用功的情况,这就是正交表的神奇使用之处。归根结底,凡是碰到了有多个输入框的情况下,首先第一件事就要做正交表的使用。对于每一个输入框,进行等价类划分或者是边界值分析,编写详细的测试用例,再分开。

所以正交测试法通常会配合着其他的一些测试用例的方法来使用。但是它的一个好处就是能把多个输入框,分成不同的组,然后每个组里面再添进有效等价类或边界值分析。这样得出的测试用例是比较核心和精准的,也能得到大量的测试用例。而不是说面对一个测试产品,只能简简单单写几条测试用例,这样就达不到一种穷尽测试的目的了。

所以正交设计的这种正交法恰恰就是能为达到穷尽设计,提供了一种可能性,因为它分的每一组都会包含大量的测试用例。你比如这里,这里它分成了四个实验,然后每个实验都能根据这一个输入框,比如说名称,比如说可能是有效等价类或无效等价类,各个可能的取值,然后作为一个个的测试用例。

第二个实验,也可以对第二个输入框,进行有效等价类或无效等价类各个取值,然后设计测试用例。每个实验都包含了一组很多的测试用例,这样的话就能对测试用例达到一个饱和的状态,达到穷尽测试的目的。


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

相关文章

测试用例的编写方法

测试用例 买手机、买电脑,要试用一下:开机、屏幕、运行速度、内存大小;这就是生活中的测试用例! 测试用例(Test Case)是为特定的目的而设计的一组测试输入、执行条件和预期的结果,以便测试是否满足某个特定需求。通过大量的测试用例来检验软件的运行效果,它是指导测试工…

编写测试用例的方法,这个是真的很好用

大家测试过程中经常用的等价类划分、边界值分析、场景法等,并不能覆盖所有的需求,我们之前讲过很少用到的因果图法,下面就来讲另一种不经常用到但又非常重要的测试用例编写方法——测试大纲法。 测试大纲法适用于有多个窗口,每个…

亲测快捷高效的编写测试用例方法

目录 一、什么是测试用例? 二、设计用例是否有必要? 三、设计用例的益处? 四、一定要写测试用例吗? 五、测试用例怎么写? 六、用例必备4个方面? 七、用例设计理念? 八、没有需求文档&am…

测试用例的特性以及编写测试用例的方法

测试用例的特性以及编写测试用例的方法 测试用例的定义:什么是测试用例?测试用例的特征: 编写测试用例的好处:测试用例的作用: 测试用例的4个特性测试用例通常包括以下几个组成元素:编写测试用例的基本方法…

【软件测试】编写测试用例的方法,这个是真的很好用

大家测试过程中经常用的等价类划分、边界值分析、场景法等,并不能覆盖所有的需求,我们之前讲过很少用到的因果图法,下面就来讲另一种不经常用到但又非常重要的测试用例编写方法——测试大纲法。 测试大纲法适用于有多个窗口,每个…

编写测试用例常用的七大方法

测试用例格式包括十大特点 用例编号 测试项 测试标题 用例属性 重要级别:高中低 预置条件 测试输入 操作步骤 预期结果 实际结果 第一:等价类 1,等价类定义 2,等价类划分 3,等价类划分规则 4,进行…

【测试】编写测试用例的思路和方法

文章目录 1)什么是测试用例?1.1 测试用例的定义测试用例的内容: *为什么需要测试用例?测试用例的作用: 1.2 测试用例的元素测试目标(Why):测试对象(What)&…

编写测试用例常用方法

一、等价类划分法 1.概念:等价类划分法是将所有程序的输入域划分成若干个子集合(等价类),然后从每一个子集合中选取少数具有代表性的数据作为测试的输入数据。在该子集合中,所有的输入数据对于揭露软件中的错误都是等效的。等价类划分有效等…

Java-高级技术(二)

9、多线程 什么是线程&#xff1f; 线程(thread)是一个程序内部的一条执行路径。 我们之前启动程序执行后&#xff0c;main方法的执行其实就是一条单独的执行路径。 public static void main(String[] args) {// 代码...for (int i 0; i < 10; i) {System.out.println(i);…

想面中高级java工程师,要怎么写简历?(附图)

大家好~ 小仙女又回来啦~ 经过了N天的面试&#xff0c;最终选择了一家最中意的~ 过几天就要入职啦~ 现在把经验分享给大家~ 想跳槽的小哥哥小姐姐们可以参考一下~ 写简历要遵循的原则&#xff1a;整齐、简洁、多从阅读者的角度考虑。 文档属性与命名 写完简历生成pdf版的这个…

如何才能更快速的成为一名高级Java开发人员?

对于从事Java开发的小伙伴来说&#xff0c;成为一名高级Java开发工程师是他们的职业目标。高级Java开发工程师除了有更高的薪资和待遇&#xff0c;还代表着他们在行业的实际技能、经验和能力。但如何才能更快速的成为一名高级Java开发人员&#xff1f;下面&#xff0c;小编就给…

2022高级JAVA开发面试题精选

面试过程是一个由浅入深的过程&#xff0c;面试官先给求职者抛出一个相对简单的问题&#xff0c;然后通过一环套一环的追问深入考察求职者对知识点的理解掌握程度。 如下是一个实际的关于redis知识点的面试场景&#xff1a; 面试官&#xff1a;你用过redis吗&#xff1f; 你&a…

如何成为高级Java工程师?Java怎么进阶?

所谓的Java高级程序员往往是经验和能力的结合&#xff0c;并不是说掌握了哪几个技术就是高级程序员了&#xff0c;能否把掌握的知识运用到实际的项目中&#xff0c;并且解决了具体的问题&#xff0c;这个才是衡量一个Java程序员的标准&#xff0c;如何成为高级Java工程师&#…

java高级编程

&#xff08;一&#xff09;课程描述 Java高级编程是一门面向计算机专业的专业任选课&#xff0c;其具有实践性强、应用广泛、功能强大等特点&#xff0c;对于学生职业发展和提高社会信息化水平&#xff0c;具有重要意义。Java Web开发是Java 开发技术中的一个重要的组成部分&…

面试题总结 —— JAVA高级工程师

面试题总结——JAVA高级工程师 近期考虑换工作的问题&#xff0c;于是投简历面试&#xff0c;面试5家公司的高级Java工程师&#xff0c;有4家给了我offer&#xff0c;想着总结一下面试经验&#xff0c;方便最近正在寻求机会的你们 一、无笔试题 不知道是不是职位原因还是没遇到…

中高级Java程序员,你不得不掌握的基本功,挑战20k+

文章目录 1 前言2 自我介绍3 Java SE3.1 Java访问控制修饰符3.2 Java中抽象类与接口有何区别&#xff1f;3.3 Java中super关键字与final关键字3.4 final修饰的对象&#xff0c;有几种初始化方式3.5 Java中方法的重载&#xff08;Overload&#xff09;与方法的覆盖&#xff08;O…

高级JAVA程序员必备:必看书籍清单

前言 经常有粉丝私聊我&#xff0c;有没有JAVA的好书推荐&#xff0c;今天特意就写一篇&#xff0c;有需要自取。 PC端左侧加我微信&#xff0c;进社群&#xff0c;有送书等更多活动&#xff01; 《Java核心技术&#xff08;Core Java&#xff09;》 这本书就像一张高精地图…

Java-高级技术(一)

1、Stream 流 1.1、Stream 流的概述 在Java 8中&#xff0c;得益于Lambda所带来的函数式编程&#xff0c; 引入了一个全新的Stream流概念。目的&#xff1a;用于简化集合和数组操作的API。 代码演示 import java.util.ArrayList; import java.util.Collections; import java.…

JAVA高级知识点整理

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言String字符串类String可变字符串StringBuilder可变字符串与String之间的转换 RunTime类概述特点使用 Data类方法 SimpleDateFormat类方法 包装类特点字符串与原…

java高级(javaAdv)

一、String字符串 String 是一个类&#xff0c;属于引用类型。 Java 程序中一切使用 "" 引起来的内容&#xff0c;都是这个类的实例&#xff0c;称为字符串对象。 字符串定义后是一个常量 &#xff0c;值不可更改。字符串 实际是一个字符数组 。 二、 String 类使…