2016-09-26 09:22:27 JohnLee_chun 阅读数 794
  • 软件测试入门视频教程

    软件测试入门视频培训教程:该课程将带你走进“软件测试”的大门,具体内容包括软件测试环境搭建、软件开发模型、产品模型、CMM模型、测试用例、等价类划分、边界值划分、白盒测试、单元测试、bugfree搭建、系统测试、回归测试、验收测试等。本课程以接地气的语言来讲解,让你听的懂,学的会!本课程以全新的方式为你呈现教学内容,清新脱俗独具特色的授课方式将带给你新的体验。

    2158188 人正在学习 去看看 李晓鹏

软件测试用例方法——等价类划分法

一.等价类划分方法简介

1.定义
 是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。该方法是一种重要的,常用的黑盒测试用例设计方法。
   
2.划分等价类:
 等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试,因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件就可以用少量代表性的测试数据取得较好的测试结果。等价类划分可有两种不同的情况:有效等价类和无效等价类。
  1)有效等价类
   是指对于程序的规格说明来说是合理的、有意义的输入数据构成的集合。利用有效等价类可检验程序是否实现了规格说明中所规定的功能性能
  2)无效等价类
   与有效等价类的定义恰巧相反。无效等价类指对程序的规格说明是不合理的或无意义的输入数据所构成的集合。对于具体的问题,无效等价类至少应有一个,也可能有多个。
 设计测试用例时,要同时考虑这两种等价类。因为软件不仅要能接收合理的数据,也要能经受意外的考验,这样的测试才能确保软件具有更高的可靠性。
  
3.划分等价类的标准:
  1)完备测试、避免冗余;
  2)划分等价类重要的是:集合的划分,划分为互不相交的一组子集,而子集的并是整个集合;
  3)并是整个集合:完备性;
  4)子集互不相交:保证一种形式的无冗余性;
  5)同一类中标识(选择)一个测试用例,同一等价类中,往往处理相同,相同处理映射到"相同的执行路径"。

4.划分等价类的方法
  1)在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类。如:输入值是学生成绩,范围是0~100;

2)在输入条件规定了输入值的集合或者规定了"必须如何"的条件的情况下,可确立一个有效等价类和一个无效等价类;
  3)在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类。
  4)在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类。
   例:输入条件说明学历可为:专科、本科、硕士、博士四种之一,则分别取这四种这四个值作为四个有效等价类,另外把四种学历之外的任何学历作为无效等价类。
  5)在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则);
  6)在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类。
 
5.设计测试用例
 在确立了等价类后,可建立等价类表,列出所有划分出的等价类输入条件:有效等价类、无效等价类,然后从划分出的等价类中按以下三个原则设计测试用例:
  1)为每一个等价类规定一个唯一的编号;
  2)设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖地有效等价类,重复这一步,直到所有的有效等价类都被覆盖为止;
  3)设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步,直到所有的无效等价类都被覆盖为止。

2019-06-10 18:49:53 xiadanying 阅读数 1120
  • 软件测试入门视频教程

    软件测试入门视频培训教程:该课程将带你走进“软件测试”的大门,具体内容包括软件测试环境搭建、软件开发模型、产品模型、CMM模型、测试用例、等价类划分、边界值划分、白盒测试、单元测试、bugfree搭建、系统测试、回归测试、验收测试等。本课程以接地气的语言来讲解,让你听的懂,学的会!本课程以全新的方式为你呈现教学内容,清新脱俗独具特色的授课方式将带给你新的体验。

    2158188 人正在学习 去看看 李晓鹏

等价类测试基础

  • 等价类测试的作用
    • 等价类方法可在有限测试的情况下,用少量有代表性的数据,得到比较好的测试结果。
  • 等价类测试的思想
    • 把所有可能输入的数据,划分为若干个子集,然后从每一个子集中选取少数有代表性的数据作为测试用例。
    • 划分对于测试的作用
      完备性:各个子集的并是整个集合。
      无冗余性:各个子集的交是空。
  • 等价类测试的假设
    • 测试某等价类的代表值,就等效于对这个等价类中其他值的测试。

等价类划分

  • 等价类划分的定义
    • 给定集合B,以及B的一组子集A1、A2……、An,这些子集是B的一个划分,当且仅当:A1∪A2∪…∪An=B,且 i≠j Ai∩Aj=Φ(并为整,交为空)。
  • 有效等价类
    • 对于程序的规格说明来说,是合理的、有意义的输入数据所构成的集合。
  • 无效等价类
    • 对于程序的规格说明来说,是不合理的、没有意义的输入数据所构成的集合。
    • 分别拒绝每一个有效条件。
      • 自然数–拒绝–负数、小数、有字母、有特殊字符、有中文、空格。
      • 注意非数字、空格、空白等。

确定等价类的方法

  • 如果输入条件规定了取值范围或值的个数就可确定一个有效等价类和两个无效等价类。
    按照数值划分。如果规定了输入数据的n个值,且程序要对每一个输入值分别进行处理,可确定n个有效等价类和一个无效等价类。
  • 输入条件规定了输入值的集合或是规定了“必须如何 ”的条件,则可确定一个有效等价类和一个无效等价类。
  • 规定了输入数据必须遵守规则或是限制条件的情况下,可以确定一个有效等价类和若干个无效等价类。
  • 如果输入条件是一个布尔量,则可以确立一个有效等价类和一个无效等价类。
  • 如果已划分的等价类各元素在程序中的处理方式不同,这应将此等价类进一步划分成更小的等价类。
  • 特别注意默认值、空值、null、零值的情况。
  • 注意隐含条件。

等价类测试的分类

在这里插入图片描述

  • 弱一般等价类测试(定其他变一)
    • 基于单缺陷假设,不考虑无效等价类
    • 测试用例设计
      • 选取的测试用例覆盖所用的有效等价类。
  • 强一般等价类测试(所有组合都取)
    • 基于多缺陷假设,不考虑无效等价类
    • 测试用例设计
      • 将每一个变量的有效等价类做笛卡尔积,设计测试用例覆盖笛卡尔积的每一个元素。
  • 弱健壮等价类测试用例
    • 单缺陷、考虑无效等价类
    • 测试用例设计
      • 对有效输入,使用每个有效等价类的一个值
      • 对无效输入,测试用例将拥有一个无效值,并保持其余的值都是有效的
  • 强健壮等价类测试
    • 多缺陷、考虑无效等价类
    • 测试用例设计
      • 从所有等价类的笛卡尔积的每一个元素中获得测试用例。

用等价类设计测试用例

  • 先划分等价类
  • 再建立等价类表
    在这里插入图片描述
  • 最后设计测试用例
    • 为每一个等价类规定一个唯一的编号。
    • 设计一个测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类。重复这一过程直至多有的有效等价类全部被覆盖。
    • 设计一个测试用例,使其仅覆盖一个尚未覆盖的无效等价类,重复这一过程,直至所有的无效等价类全部被覆盖。
      在这里插入图片描述
  • 举例
    在这里插入图片描述
    在这里插入图片描述
2019-06-02 13:39:35 dickdick111 阅读数 265
  • 软件测试入门视频教程

    软件测试入门视频培训教程:该课程将带你走进“软件测试”的大门,具体内容包括软件测试环境搭建、软件开发模型、产品模型、CMM模型、测试用例、等价类划分、边界值划分、白盒测试、单元测试、bugfree搭建、系统测试、回归测试、验收测试等。本课程以接地气的语言来讲解,让你听的懂,学的会!本课程以全新的方式为你呈现教学内容,清新脱俗独具特色的授课方式将带给你新的体验。

    2158188 人正在学习 去看看 李晓鹏

软件测试——构造等价类测试用例

16340132 梁颖霖 软件工程(计算机应用方向)


问题

构造下述三角形问题的弱健壮的等价类测试用例。
三角形问题:输入三个不超过100的正整数作为三角形的三条边,判断三角形是等边三角形等腰不等边三角形完全不等边三角形还是不能构成三角形

解答

弱健壮等价类测试用例覆盖——针对单缺陷,覆盖有效等价类和无效等价类

根据题目意思,我们可以划分成以下四个等价类表示

  • R1 = {<a, b, c> : 三角形三边a, b, c 都相等}
  • R2 = {<a, b, c>:三角形三边a, b, c有两边相等}
  • R3 = {<a, b, c>:三角形三边a, b, c都不相等}
  • R4 = {<a, b, c>:三边a, b, c不能组成一个三角形}

弱一般等价测试用例

测试用例 a b c 期待输出
WN1 7 7 7 等边三角形
WN2 7 7 10 等腰不等边三角形
WN3 7 8 9 完全不等边三角形
WN4 1 1 7 不能构成三角形

软健壮性等价测试用例

考虑a, b, c的非法值输入,要增加额外的软健壮性等价测试用例

测试用例 a b c 期待输出
WR1 -7 7 7 a 取值不在所允许的取值范围内
WR2 7 -7 7 b 取值不在所允许的取值范围内
WR3 7 7 -7 c 取值不在所允许的取值范围内
WR4 101 7 7 a 取值不在所允许的取值范围内
WR5 7 101 7 b 取值不在所允许的取值范围内
WR6 7 7 101 c 取值不在所允许的取值范围内
2019-11-15 19:18:45 XU_MAN_ 阅读数 22
  • 软件测试入门视频教程

    软件测试入门视频培训教程:该课程将带你走进“软件测试”的大门,具体内容包括软件测试环境搭建、软件开发模型、产品模型、CMM模型、测试用例、等价类划分、边界值划分、白盒测试、单元测试、bugfree搭建、系统测试、回归测试、验收测试等。本课程以接地气的语言来讲解,让你听的懂,学的会!本课程以全新的方式为你呈现教学内容,清新脱俗独具特色的授课方式将带给你新的体验。

    2158188 人正在学习 去看看 李晓鹏

一,等价类划分原则

1,按照区间划分

如果输入条件规定了取值范围,可定义一个有效等价类和两个无效等价类。

2,按数值划分

如果规定了输入数据的个数,则类似地可以划分出一个有效等价类和两个无效等价类

3,按数值集合来划分

如果输入数据的一组值,且程序对不同输入值做不同处理,则每一个允许的输入值都是一个有效等价类,并有一个无效等价类

4,按限制条件和规则划分

如果规定输入数据必须遵循的规则,可以确定一个有效等价类(符合条件的)和若干个无效等价类(从不同角度违反规则)

例题如下:

 

2017-04-29 10:40:25 weixin_38582466 阅读数 11293
  • 软件测试入门视频教程

    软件测试入门视频培训教程:该课程将带你走进“软件测试”的大门,具体内容包括软件测试环境搭建、软件开发模型、产品模型、CMM模型、测试用例、等价类划分、边界值划分、白盒测试、单元测试、bugfree搭建、系统测试、回归测试、验收测试等。本课程以接地气的语言来讲解,让你听的懂,学的会!本课程以全新的方式为你呈现教学内容,清新脱俗独具特色的授课方式将带给你新的体验。

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

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 

6
6
没有更多推荐了,返回首页