软件测试:等价类划分举例

article/2025/10/3 4:47:57
等价类的设计思路:
  • 根据输入条件,确定等价类,包括有效等价类和无效等价类,建立等价类列表
  • 为每个等价类规定一个唯一的编号
  • 设计一个测试用例,使其尽可能多地覆盖尚未被覆盖的有效等价类,重复这一步,直到所有的有效等价类被覆盖完为止
  • 设计一个测试用例,使其尽可能多的覆盖尚未被覆盖的无效等价类,重复这一步,直到所有的无效等价类被覆盖完为止
1、三角形--等价类测试的例子

某程序规定:"输入三个整数 a  b  c 分别作为三边的边长构成三角形。通过程序判定所构成的三角形的类型,当此三角形为一般三角形、等腰三角形及等边三角形时,分别作计算 … "。用等价类划分方法为该程序进行测试用例设计。(三角形问题的复杂之处在于输入与输出之间的关系比较复杂。)
  
分析题目中给出和隐含的对输入条件的要求: 
  
1)整数    2)三个数    3)非零数   4)正数   
  
5)两边之和大于第三边     6)等腰     7)等边 
   
如果 a  b  c 满足条件( 1  ~  4 ),则输出下列四种情况之一:
   1)
如果不满足条件(5),则程序输出为 " 非三角形 " 
   2)
如果三条边相等即满足条件(7),则程序输出为 " 等边三角形 " 
   3)
如果只有两条边相等、即满足条件(6),则程序输出为 " 等腰三角形 " 
   4)
如果三条边都不相等,则程序输出为 " 一般三角形 "  
   
列出等价类表并编号


覆盖有效等价类的测试用例:
    a      b      c              
覆盖等价类号码
    3      4      5             
1--7
    4      4      5             
1--7),(8
    4      5      5             
1--7),(9    
    5      4      5             
1--7),(10
    4      4      4             
1--7),(11
   
覆盖无效等价类的测试用例:


2、档案管理系统--等价类的例子

设有一个档案管理系统,要求用户输入以年月表示的日期。假设日期限定在19901~204912月,并规定日期由6位数字字符组成,前4位表示年,后2位表示月。现用等价类划分法设计测试用例,来测试程序的"日期检查功能"

输入判断
有效等价类
编号
无效等价类
编号
输入字符长度
6位
大于6位数字字符
小于6位数字字符
输入字符类型
数字
6位非纯数字字符
输入年份约束
1990-2049
大于2049
小于1990
输入月份约束
01-12
大于12
等于00

3、佣金问题--等价类的例子
佣金问题等价类测试用例,它是根据佣金函数的输出值域定义等价类,来改进测试用例集合。
输出销售额≤1000     佣金10
1000<
销售额≤1800     佣金=100+(销售额-1000)*15%
销售额>1800              佣金=220+(销售额-1800)*20%
测试用例         枪机(45)    枪托(30)      枪管(25)          销售额     佣金
    1               5             5                5                  500        50
    2              15           15              15                 1500       175
    3              25           25              25                 2500       360
根据输出域选择输入值,使落在输出域等价类内,可以结合弱健壮测试用例结合。
佣金问题分三个部分:输入数据部分,用来处理数据有效性(与三角形和档案系统管理中的一样);销售额计算;佣金计算。由于题目要求,根据佣金函数的输出值定义等价类,所以可以省略输入数据有效性部分。测试用例设计如下:
测试用例
枪机(45)
枪托(30)
枪管(25)
销售额
佣金
备注
1
1
1
1
100
10
最小值
2
1
1
2
125
12.5
略大于最小值
3
1
2
1
130
13
略大于最小值
4
2
1
1
145
14.5
略大于最小值
5
5
5
5
500
50
中点
6
10
10 
9
975
97.5
略小于边界值
7
10
10
10
1000
100
边界值
8
10
10
11
1025
103.75
略高于边界值
9
14
14
14
1400
160
中点
10
18
18
17
1775
216.25
略低于边界值
11
18
18
18
1800
220
边界值
12
18
18
19
1825
225
略高于边界值
13
48
48
48
4800
820
中点
14
69
80
90
7755
1411
略低于边界值
15
70
80
89
7775
1415
略低于边界值
16
70
80
90
7800
1420
输出最大值
此外还可以选取更接近于边界值得测试用例,比如:
测试用例
枪机
枪托
枪管
销售额
佣金
备注
1
10
11
9
1005
100.75
略高于边界值
2
18
17
19
1795
219.25
略低于边界值
3
18
19
17
1805
221
略高于边界值
4、找零问题--等价类的例子
假 设 商 店 货 品 价 格 (R) 皆 不 大 於 100 元 ( 且 为 整 数 ) , 若 顾 客 付 款 在 100 元 内 (P) , 求 找 给 顾 客 之 最 少 货币 个(张) 数 ? ( 货 币 面 值 50 元 (N50) , 10 元 (N10) , 5 元 (N5) , 1 元 (N1) 四 种 ) 正确功能:找零的组合为1/10/50面值组合的最小个(张)数

 找零数额=P-R  假设计算正确
 一、 分 析 输 入 的 情 形 。
 1.R无效: R > 100 R<=0 
 2.R有效: 0 < R < = 100 此种情况下再考虑P: 
    2_1. P无效:P > 100 (钱给多) 
    2_2. P无效:P < R (钱给少) 
    2_3. P有效:R<= P <= 100 //无效输出: 多找钱 少找钱 
 二、 分 析 输 出 情 形 。
 考虑输出——找零个数 这里是有效数据,关于“ 找 给 顾 客 之 最 少 货币 个(张) 数”的有效取值 
50:找钱面值为50元的有两种情况: 0张或/1张 
10:找钱面值为10元的有五种情况: 0/1/2/3/4 
5 :找钱面值为5元的有两种情况: 0/1 
1 :找钱面值为1元的有五种情况:0/1/2/3/4 
 三、 分 析 规 格 中 每 一 决 策 点 之 情 形 考虑输出——找零数额(RR表示找零数额) 
 1、无效输入(不找零): R > 100 R <= 0 0 < R < = 100 P > 100 0 < R < = 100 P < R 输出为相应错误提示信息。
 2、有效输入(找零):  0 < R < = 100    &&  R<= P <= 100 
      此时考虑的输出:(RR=P-R 假设计算正确 不考虑此种情况无效输出) 
      0<=RR<5 5<=RR<10 10<=RR<50 50<=RR<100  
      用边界值分析法,取RR的有代表性的值,
五、为 满 足 以 上 之 各 种 情 形 , 测 试 用 例 设 计 如 下 : 
1. 货品价格 = 101       无效货品价格 
2. 货品价格 = 0         无效货品价格 
3.货品价格 = -1          无效货品价格 
4. 货品价格 = 100, 付款金额 = 101     无效付款 
5. 货品价格 = 100, 付款金额 = 99      无效付款 
6. 货品价格 = 100, 付款金额 = 100   不找零 
7. 货品价格 = 99, 付款金额 = 100    N1=1 
8. 货品价格 = 96, 付款金额 = 100    N1=4 
9. 货品价格 = 95, 付款金额 = 100    N5=1 
10. 货品价格 = 91, 付款金额 = 100   N5=1, N1=4 
11. 货品价格 = 90, 付款金额 = 100   N10=1 
12. 货品价格 = 51, 付款金额 = 100   N10=4, N5=1,N1=4 
13. 货品价格 = 50, 付款金额 = 100   N50=1 
14. 货品价格 = 1, 付款金额 = 100    N50=1,N10=4,N5=1,N1=4
 
5手机号录入 例子

http://chatgpt.dhexx.cn/article/9uYEj9im.shtml

相关文章

等价类划分法-案例剖析-设计测试用例

目录 等价类划分法概念 有效等价类和无效等价类 等价类设计测试用例步骤 案例1 案例2 案例3 等价类划分法概念 等价类划分法是把所有可能的输入数据&#xff0c;即程序的输入数据集合划分成若干个子集即等价类&#xff0c;然后从每个等价类中选取少量具有代表性的数据作为…

15.3-等价类划分

目录 一、等价类划分的概念 二、使用等价类划分的原因 三、等价类划分的价值 四、相关概念 1、等价类 2、有效等价类 3、无效等价类 五、等价类划分法使用步骤 六、等价类的划分原则 1、原则1 2、原则2 3、原则3 4、原则4 5、原则5 6、原则6 七、测试用例的设计步骤 八、等价类…

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

软件测试对于软件的重要性不言而喻&#xff0c;是计算机类学生毕业后的一个重要从业方向之一。 如果要从事软件测试&#xff0c;那么有些必备的技能还是要有的。比如&#xff0c;测试理论、测试工具、测试文档的编制。 今天我们就来看看最最最重要的测试理论&#xff1a;黑盒…

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

多线程中守护线程的使用

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

python守护线程

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

多线程-守护线程

守护线程&#xff08;daemon&#xff09;&#xff1a; 线程分为用户线程&#xff08;如main线程&#xff09;和守护线程&#xff1b; 虚拟机必须确保用户线程执行完毕&#xff0c;而不会等待守护线程执行完毕&#xff1b; 守护线程有&#xff1a;记录操作日志的线程、监控内存的…

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

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

JAVA多线程——守护线程

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