软件测试用例设计 (一)等价类划分法

article/2025/10/3 5:03:11

软件测试对于软件的重要性不言而喻,是计算机类学生毕业后的一个重要从业方向之一。

如果要从事软件测试,那么有些必备的技能还是要有的。比如,测试理论、测试工具、测试文档的编制。

今天我们就来看看最最最重要的测试理论:黑盒测试用例设计方法——等价类,可以说,这个不会,你的软件测试理论约等于0、

目录

1.为什么要掌握等价类用例设计方法

2.等价类划分法是什么

3.等价类划分法的设计步骤

4.等价类划分实例走起

步骤1:划分等价类

步骤2:设计用例覆盖有效等价类

步骤3:设计用例覆盖无效等价类

步骤4:确定用例


1.为什么要掌握等价类用例设计方法

先让我们问号三连击

  1. 为什么要设计用例:   

       如果没有用例,那么测试过程不可控,测试质量不可控

    2.为什么要使用用例设计方法 

         因为测试用例不可穷举,所以必须采用有效的方法设计用例,用较少的用例有效的发现问题

    3.为什么必须掌握等价类划分法

      因为等价类法师最常用的黑盒测试方法,难道不应该掌握一个最常用的方法吗?

2.等价类划分法是什么

等价类法把程序的所有可能的输入数据划分为为若干子集。每一子集的代表性数据在测试中的作用等价于这一子集的其他值。
每一个子集就是一个等价类。所谓等价类就是一类中所有数据的测试效果等价、

如下图所示[0,60) 内的数据就是一个等价类,等价类中的任何一个数据能够代表等价类的所有数据,如果它通过测试,则认为整个等价类可以通过测试。

例如,如果我用 45去测试,如果等级是“”,则说明整个等价类都正确处理了,
等价类需要考虑有效等价类和无效等价类。

       

3.等价类划分法的设计步骤

  1. 划分等价类,为每个等价类分配一个编号;
  2. 设计用例应覆盖尽可能多的尚未覆盖的有效等价类,直到所有有效等价类被覆盖;
  3. 设计用例覆盖一个无效等价类,直到所有无效等价类被覆盖。
  4. 确定测试用例,覆盖所有等价类;

4.等价类划分实例走起

下面是传智播客的注册页面,我们可以看到页面上有多个数据项,我们先分析每个数据项的等价类,然后综合起来形成页面的等价类划分的用例。

在 http://tch.ityxb.com/ 该页面点击【注册】,就打开了如下界面。

步骤1:划分等价类

1) 注册类别:

    有效等价类:①教师注册、②学生注册 ;  

    无效等价类:无

2)手机号:

   有效等价类:①有效的手机号

                         ②未注册过

   无效等价类:③无效手机号

                        ④手机号注册过

2)计算值:

   有效等价类:①正确的计算值、

   无效等价类:②错误的计算值

                        ③计算值不填写

3)验证码:

   有效等价类:①正确验证码、

   无效等价类:②点击过【获取验证码】,但输入的验证码不正确

                        ③未点击过【获取验证码】,输入了验证码

4)密码:

   有效等价类:①密码长度6~18位

                        ②密码由字母和数字组成

   无效等价类:③密码长度小于6

                        ④密码长度大于16  

                       ⑤密码只包含了字母

                       ⑥密码只包含了数字

                         ⑦密码中包含了英文标点符号

                      ⑧密码中包含了中文字符

                      ⑨密码中包含了特殊字符

步骤2:设计用例覆盖有效等价类

尽可能让一个用例覆盖较多的尚未覆盖的有效等价类,以减少用例数量。

步骤3:设计用例覆盖无效等价类

这里需要注意的是,只让一个数据项覆盖一个未覆盖的无效等级等价类,其他数据项均使用有效等价类的取值.

 

步骤4:确定用例

汇总有效和无效情况下的用例

这里的用例还是不齐全的,我们往往会使用边界值法法作为等价类的补充,后面我们再和大家分享。

5,推荐相关资料

可以参考   注册功能用例设计  


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

相关文章

测试用例设计——等价类划分法

一、分析问题 如果我们需要对下面的这个两位数加法器设计测试用例,在测试了1+1,1+2,(-1)1和(-1)+2之后,是否有必要测试1+3&#xff0c…

等价类划分法设计用例(超详细)

等价类划分法 等价类: 1、解决了不能穷举测试的问题、控制成本、控制测试用例数量 2、数据值要明确,对文字敏感 3、依据需求将输入划分为若干个等价类,划分等价类(需求、数据特征) 等价类设计用例的难点:…

测试用例设计方法 之【等价类划分法】

前言: 在没有测试用例之前,团队里的成员进行测试时,完全“以人为本”,根据个人思路、需求理解度、发散性思想来完成测试系统,人无完人,弊端显而易见。衍生出【测试用例】后,测试工作的目标得到…

等价类划分法测试用例设计举例

一、基本概念 等价类是指程序输入域的子集。 等价类划分(Equivalance Partitioning)测试的思想:将程序的输入域划分为若干个区域(等价类),并在每个等价类中选择一个具有代表性的元素生成测试用例。该方法…

等价类划分测试用例设计方法

一.方法简介 1.定义 是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。该方法是一种重要的,常用的黑盒测试用例设计方法。 2.划分等价类 等价类是指某个输入域的子集合。在该子集合…

编写测试用例方法之等价类划分法

今天我们再来介绍另外一个编写测试用例的方法:等价类划分法,这个方法是最常用的写用例的方法。话不多说,开始整干货,首先,全图镇楼。 之前我们是如何测试一个商品的呢?产品就是要有它的测试点。测试点之前也…

等价类划分法设计测试用例

等价类划分法: 一、方法简介 1.定义 是把所有可能输入的数据,即程序的输入域划分策划国内若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。方法是一种重要的、常用的黑盒测试用例设计方法…

常用测试用例设计方法5-错误推算法

一,错误推算法的定义 基于测试人员的经验和直觉推测推测程序中所有可能存在的各种错误,有针对性的设计测试用例的方法。 二,错误推算法的基本思想 基于测试人员的经验和直觉推测推测程序中所有可能存在的各种错误,有针对性的设计…

测试用例设计--等价类的几个例子

等价类的设计思路: 根据输入条件,确定等价类,包括有效等价类和无效等价类,建立等价类列表为每个等价类规定一个唯一的编号设计一个测试用例,使其尽可能多地覆盖尚未被覆盖的有效等价类,重复这一步,直到所有的有效等价类被覆盖完为止设计一个测试用例,使其尽可能多的覆盖…

理解:守护线程---理解

定义:守护线程--也称“服务线程”,在没有用户线程可服务时会自动离开。 优先级:守护线程的优先级比较低,用于为系统中的其它对象和线程提供服务。 设置:通过setDaemon(true)来设置线程为“守护线程”;将一…

并发编程线程基础知识:守护线程

什么是守护线程 守护线程–也称“服务线程”,它是后台线程,在没有用户线程可服务时会自动离开。 守护线程优先级 守护线程的优先级比较低,用于为系统中的其它对象和线程提供服务。 如何设置守护线程 通过 setDaemon(true)来设置线程为“…

Java 守护线程的作用 Java 守护线程线程

Java 守护线程的作用 Java 守护线程线程 一、概述 在看java线程相关的内容时,有一个 daemon thread 守护线程的概念,看方法注释内容,大意是:将此线程标记为守护线程或用户线程。当运行的所有线程都是守护线程时,Java虚…

多线程中守护线程的使用

java中线程分为非守护线程(用户线程)和守护线程(后台线程) 一、setDaemon(boolean on) java线程中对于守护线程的使用主要是依靠setDaemon(boolean on)方法 方法作用: 将此线程设置为守护线程 守护线程使用上与普通线程没有区别, 但是在结束上有一点不同, 当一个进程中所有…

python守护线程

启用守护线程 守护线程,又称后台线程,它是在后台运行的,如果所有前台线程都死亡,那么后台线程就会自动死亡。 import threadingdef run(n):for i in range(n):print(threading.current_thread().name " " str(i)) …

多线程-守护线程

守护线程(daemon): 线程分为用户线程(如main线程)和守护线程; 虚拟机必须确保用户线程执行完毕,而不会等待守护线程执行完毕; 守护线程有:记录操作日志的线程、监控内存的…

守护线程是什么?守护线程和非守护线程的区别是?守护线程的作用是?

守护线程是区别于用户线程,用户线程即我们手动创建的线程,而守护线程是程序运行的时候在后台提供一种通用服务的线程。垃圾回收线程就是典型的守护线程。 守护线程和非守护线程的区别是 public static void main(String[] args) throws InterruptedExce…

JAVA多线程——守护线程

在Java中有两类线程:User Thread(用户线程)、Daemon Thread(守护线程) 用个比较通俗的比如,任何一个守护线程都是整个JVM中所有非守护线程的保姆: 只要当前JVM实例中尚存在任何一个非守护线程没有结束,守护线程就全部工作&#…

java守护线程 作用_Java中守护线程的总结

在Java中有两类线程:User Thread(用户线程)、Daemon Thread(守护线程) 用个比较通俗的比如,任何一个守护线程都是整个JVM中所有非守护线程的保姆: 只要当前JVM实例中尚存在任何一个非守护线程没有结束,守护线程就全部工作&#xf…

【线程】什么是守护线程?

Java提供了两种线程:守护线程和用户线程 守护线程,是指在程序运行时 在后台提供一种通用服务的线程,这种线程并不属于程序中不可或缺的部分。通俗点讲,任何一个守护线程都是整个JVM中所有非守护线程的"保姆"。 用户线…

JAVA多线程基础篇--守护线程(Daemon Thread)

1.概述 JAVA中的线程主要分为两类:用户线程(User Thread)和守护线程(Daemon Thread)。JAVA语言中无论是线程还是线程池,默认都是用户线程,因此用户线程也被称为普通线程。守护线程也被称之为后台线程、服务线程或精灵…