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

article/2025/10/3 5:26:08

前言:

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

一、设计黑盒测试用例的常用方法 之 【等价类划分法】:

  • 实际应用程度:★ ★ ★ ★ ☆
  • 应用场景:界面中有数据输入的控件,如:输入框、选择框等
  • 关键词:【范围】
  •  思想:将输入的数据,根据数据各自的特性,划分成若干个范围,再从每个范围内挑选出个别数据,来做代表数据进行测试。若代表数据通过了测试,则认为所在的整个数据范围都通过了测试。
  •  生活中的例子:某食品仓库中存有3个批次的面包,质检人员从每个批次中抽取两包代表样品,进行抽样测试,若抽样的面包质检合格,则认为该批次的面包都是合格的,允许进行销售。
  •  应用于实际需求当中:

        假设需求原型如下(图看不清,可放大看):

这是一个典型的表单页面,主功能是“创建活动”。如图可见,界面中只有【选择控件】和【输入控件】,外加一个【提交按钮】,产品经理将每个控件的输入条件、报错提示 均进行了详细描述,因此我们可以轻松地使用等价类划分的方法来一个个控件分解需求:

  • 例如,针对【活动图片】文件选择:

根据需求描述,可以将需求的等价类部分进行分解,分解如下:

 该需求的注意点

        ①图片格式:需求中说允许传jpg图片格式,但没说JPE、JPEG这两种图片格式。但从技术角度上来说,这三种图片格式都是互通的。一般情况下,只要说了其中一种允许上传,也默认其他两种互通的格式也是允许上传的,不要为了这个与开发扯皮。

        ②图片大小:需求说明“最上限”是500kb,但是没说“最下限”多少kb,又因为文件字节单位在kb之下的,还有B单位(即byte),因此在未说明“最下限”的情况下,只要说明是大于0即可,不要较真非要找到一个最小值

        ③图片大小:测试数据选取的是300kb的数据,但是真实在执行测试时,不用非要找到一个刚好300kb整的图片,只要在300kb左右即可,稍大一点 或 少小一点 都无伤大雅。

        ④无效等价类的非图片格式:非图片格式有常规的文档格式、压缩包格式、多媒体格式等。同时,你也需要非文件格式的情况,如:aaa、bbb、ccc这种瞎编的格式,当然这条用例的优先级会降低,属于延伸测试。

编写成测试用例:

实例1(正向用例-有效等价类):

以上是一条正向的测试用例,标绿色的部分为【活动图片】控件经过“等价类划分”方法分析得来的数据范围。此处要注意,若你已提前准备好满足条件的数据,可以直接将此处改成如下用例:

 实例2(反向用例-无效等价类):

像这类型的异常数据,可以使用一条用例写完,既不会降低覆盖率,也节约了编写资源。但是,缺点是:①需要有测试经验的人才能快速理解;②预期结果的可读性不高。

当然,你也可以把它拆解成4条测试用例,只是即增加了用例数量,又未增加覆盖率,但优点是:①用例独立性高;②对测试新人更加友好。如下图: 

 

结语:等价类划分应用率较高,但往往需要配合“边界值法”一起使用,才会减少用例冗余度。下篇文章再分享如何运用“边界值法”编写测试用例


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

相关文章

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

一、基本概念 等价类是指程序输入域的子集。 等价类划分(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语言中无论是线程还是线程池,默认都是用户线程,因此用户线程也被称为普通线程。守护线程也被称之为后台线程、服务线程或精灵…

面试官: 谈谈什么是守护线程以及作用 ?

文章首发自微信公众号: 小哈学Java 个人网站: https://www.exception.site/java-concurrency/java-concurrency-daemon-thread 目录 一、什么是守护线程 二、守护线程的作用及应用场景 三、总结 一、什么是守护线程 守护线程相对于正常线程来说,是比较特殊的一…

入门oracleDBA面试题

1.默认情况下管理员创建了一个用户,就会在 /home 下创建一个用户的主目录 2.当用mount进行设备或文件挂载时,需要用的设备名称位于 /dev 位置。 3.列出目录所有目录里的所有文件ls -l 4.Su 可以讲普通用户转换为超级用户,但是需要密码 5.…

oracle面试题答案,Oracle面试题笔试题及参考答案

一套Oracle面试题笔试题及参考答案 Oracle, 笔试, 面试 完成下列操作,写出相应的SQL语句 1.创建表空间neuspace,数据文件命名为neudata.dbf,存放在d:\data 目录下,文件大小为200MB,设为自动增长,增量5MB&am…