等价类 软件测试_软件测试的等价类划分需要把每个等价类都写一遍吗’ - CSDN
  • 等价类划分的办法是把程序的输入域划分为若干个部分,然后从每个部分中选取少数代表性的数据当做测试用例,每一类的代表性数据在测试中的作用等价于这一类的其他值。 代表性数据有错,则相同类也会有错,代表性数据...
    • 等价类划分的办法是把程序的输入域划分为若干个部分,然后从每个部分中选取少数代表性的数据当做测试用例,每一类的代表性数据在测试中的作用等价于这一类的其他值。
    • 代表性数据有错,则相同类也会有错,代表性数据没错,那么相同类数据也正确。
    • 通俗讲,就是划分归纳测试类别。
    • 编写测试用例之前,可以先列出一个等价类表,并为每一个等价类编号。在写测试用例时,可以根据不同的等价类写出相应的测试用例条目。比如等价类1:X>10;等价类2:X<2;等价类3:2<=X<=10等等。
    • 不但要考虑有效等价类,还要考虑无效等价类。
    展开全文
  • 等价类划分可有两种不同的情况:有效等价类和无效等价类。 1)有效等价类 是指对于程序的规格说明来说是合理的、有意义的输入数据构成的集合。利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。...

        方法定义:将所有可能输入数据的数据域进行划分,分成若干子集,再从其中选出少数具有代表性的的是用例测试程序,该方法是一种常用的黑盒测试方法。

    等价类划分可有两种不同的情况:有效等价类和无效等价类。

      1)有效等价类
            是指对于程序的规格说明来说是合理的、有意义的输入数据构成的集合。利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。
      2)无效等价类

            与有效等价类的定义恰巧相反。无效等价类指对程序的规格说明是不合理的或无意义的输入数据所构成的集合。对于具体的问题,无效等价类至少应有一个,也可能有多个。

    ▲划分等价类的标准:
      1)完备测试、避免冗余;
      2)划分等价类重要的是:集合的划分,划分为互不相交的一组子集,而子集的并是整个集合;
      3)并是整个集合:完备性;
      4)子集互不相交:保证一种形式的无冗余性;

      5)同一类中标识(选择)一个测试用例,同一等价类中,往往处理相同,相同处理映射到"相同的执行路径"。

    实例分析:首先是测试1600年至2100年的任意一天的下一天的日期情况,按照年、月、日的取值划分。划分情况如下:

    1600<= y <=2100平年 ②1600<= y <=2100闰年 ③y <1600 ④y >2100 ⑤m∈{1,3,5,7,8,10} ⑥m∈{4,6,9,11} ⑦m = 2 ⑧m = 12 ⑨ m <1 ⑩m >12 ⑪1<= d <=27 ⑫d = 28 ⑬d = 29  ⑭d = 30  ⑮d = 31 ⑯d > 31 ⑰d < 1

    按照等价类范围选出某些具有代表性的策划用例:

    ①2001.4.22  ②2000.2.29  ③1500.4.13  ④2101.5.10  ⑤2000.3.31 
    ⑥2100.12.30  ⑦2000.0.30  ⑧2000.13.2  ⑨2001.2.28  ⑩2000.1.32
    ⑪2000.1.0

    然后根据测试用例测试程序将情况按表列出

    测试实例
    编号
    日期(年/月/日) 预期结果 测试结果 备注 覆盖等价类
    Y M D
    2001 4 22 2001年4月23日 2001年4月23日 pass   ①⑥⑪
    2000 2 29 2000年3月1日 2000年3月1日 pass   ②⑦⑬
    1500 4 13 输入年份超出范围! 输入年份超出范围! pass  
    2101 5 10 输入年份超出范围! 输入年份超出范围! pass  
    2000 3 31 2000年4月1日 2000年4月1日 pass   ⑤⑮
    2100 12 30 2100年12月31日 2100年12月31日 pass   ⑧⑭
    2000 0 30 不存在0月 2000年1月1日 failed 备注一
    2000 13 2 输入数据非法 输入数据非法 pass  
    2001 2 28 2001年3月1日 2001年3月1日 pass  
    2000 1 32 不存在1月32日 2000年2月1日 failed 备注二
    2000 1 0 输入数据非法 2000年1月1日 failed 备注三
    备注一:        
               
               
               
               
               
               
               
               
               
               
               
    备注二:        
               
               
               
               
               
               
               
               
               
    备注三:        
               
               
               
               
               
               
               

    然后是测试三角形种类程序(感觉这个有错误)

    等价类划分: ①a<=0 ②a>200 ③b<=0 ④b>200 ⑤c<=0 ⑥c>200 ⑦0<a、b、c<200 ⑧(a+b)>c||(a+c)>b||(b+c)>a ⑨ (a+b)<c&&(a+c)<b&&(b+c)<a ⑩a=b||b=c||a=c ⑪a!=b&&a!=c&&b!=c ⑫a=b&&a=c&&b=c ⑬a!=b||a!=c||b!=c  ⑭a*a+b*b=c*c||a*a+c*c=b*b||b*b+c*c=a*a ⑮a*a+b*b!=c*c&&a*a+c*c!=b*b&&b*b+c*c!=a*a ⑯a*a+b*b=c*c&&(a=b||b=c||a=c)... ⑰a*a+b*b!=c*c||(a!=b&&b!=c&&a!=c)...
       
       
       
       
       
    测试实例: ①4,5,6  ②1,1,2  ③2,2,3  ④2,2,2  ⑤3,4,5 
    ⑥1,1,1.414214(
    2)  ⑦0,2,1  ⑧  ⑨201,100,150  ⑩20,201,190
    ⑪1,2,0  ⑫190,20,201
       
       
       
       
       
       
    测试实例
    编号
    边长 预期结果 测试结果 备注 覆盖等价类  
    a b c  
    4 5 6 一般三角形 一般三角形 pass   ⑦⑧⑪⑬⑮⑰
    1 1 2 非三角形 等腰三角形 failed 备注一  
    2 2 3 等腰三角形 等腰三角形 pass    
    2 2 2 等边三角形 等边三角形 pass    
    3 4 5 直角三角形 直角三角形 pass    
    1 1 1.414214 等腰直角三角形 等腰三角形 failed 备注二  
    0 2 1 输入数据非法 输入数据非法 pass    
    201 100 150 输入数据非法 输入数据非法 pass    
    2 0 1 输入数据非法 输入数据非法 pass    
    20 201 190 输入数据非法 输入数据非法 pass    
    1 2 0 输入数据非法 输入数据非法 pass    
    190 20 201 输入数据非法 输入数据非法 pass    

    备注一:          
               
               
               
               
               
               
               
    备注二:        
               
               
               
               
               
               
               
    划分等价类的方法用自己所理解的一句话来总结:即是每个等价类里面的所有情况只能通过一个方法或者说是算法来得到结果。

    这个条件所遇到的类似if else switch得到的结果都是一样。结果也就是属于一个类别

    以上。
    展开全文
  • 包括有效等价类和无效等价类,建立等价类列表为每个等价类规定一个唯一的编号设计一个测试用例,使其尽可能多地覆盖尚未被覆盖的有效等价类,重复这一步,直到所有的有效等价类被覆盖完为止设计一个测试用例,...
    等价类的设计思路:
    • 根据输入条件,确定等价类,包括有效等价类和无效等价类,建立等价类列表
    • 为每个等价类规定一个唯一的编号
    • 设计一个测试用例,使其尽可能多地覆盖尚未被覆盖的有效等价类,重复这一步,直到所有的有效等价类被覆盖完为止
    • 设计一个测试用例,使其尽可能多的覆盖尚未被覆盖的无效等价类,重复这一步,直到所有的无效等价类被覆盖完为止
    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手机号录入 例子
    展开全文
  • 软件测试专栏 上一篇 主目录 下一篇 目录1 简介2 等价类测试分类 【前言】 弱一般等价类测试是基于单缺陷假设,强一般等价类测试是基于多缺陷假设;说等价类健壮是因为考虑无效值(一般==不考虑无效...
    软件测试专栏
    上一篇 主目录 下一篇

    【前言】

    一般等价类测试是基于单缺陷假设,一般等价类测试是基于多缺陷假设;说等价类健壮是因为考虑无效值(一般==不考虑无效值,健壮==考虑无效值)。弱是取MAX,强是笛卡尔乘积
    边界值测试和等价类测试都是黑盒测试


    1 简介

    什么是等价类测试?
    等价类是指某个输入域的子集合中各个数据对于揭露程序的错误都是等效的,或者进行相同的处理。测试某等价类的一组数据就等价于对这一类其他值得测试,因此在等价类中只需要取一组测试用例即可。等价类集合的划分,提供完备性、保证无冗余性。

    确定等价类的原则

    1)输入条件规定取值范围,则卡定义一个有效等价类和两个无效等价类。例如学生成绩范围是0~100,则一个有效类:0<=成绩<=100,两个无效类:成绩<0,成绩>100
    2)如果规定了输入数据的个数,则可类似的划分出一个等价类和两个无效等价类。例如一个学生一个学期选修1~3门,则一个有效等价类:1 ~ 3门,两个无效等价类:不选,选修 超过3门
    3)如果规定数据的一组值,且程序对不同的输入做不同的处理,则每个允许的输入值是一个有效等价类,所有不允许的输入值的集合是一个无效等价类。例如输入条件说明学历可为:专科、本科、硕士、博士4种,则一个有效等价类:专科/本科/硕士/博士,一个无效等价类:其他任何学历
    4)如果规定了输入数据必须遵循的规则,可以确定一个有效类和若干个无效等价类。例如校内电话拨号为 9开头,则一个有效等价类:9+外线号码,若干个无效等价类:非9开头+外线号码,9+非外线号码,…
    5)如果确知已划分的等价类中个元素在程序中的处理方式不同,则应将此等价类进一步划分成更小的等价类

    2 等价类测试分类

    分类(两大类,根据规格说明书的功能)

    • 有效等价类
    • 无效等价类

    分类比较

    类别 单/多缺陷 考虑无效值 测试用例
    弱一般等价类测试 单缺陷 不考虑 通过变量的每个等价类中选择一个值
    强一般等价类测试 多缺陷 不考虑 笛卡尔积每个元素都选择一个值
    弱健壮等价类测试 单缺陷 考虑 对于有效输入,使用每个有效类的一个值;对于无效输入,测试用例取一个无效值,其余的值都是有效的。
    强健壮等价类测试 多缺陷 考虑 有效类+无效类的笛卡尔乘积,从每个元素中获得测试用例

    -【注】
    说等价类弱是因为是单缺陷(弱==单缺陷,强==多缺陷
    说等价类健壮是因为考虑无效值(一般==不考虑无效值,健壮==考虑无效值

    3 测试实例

    1 两变量函数
    X1有三个等价类[a,b]、(b,c]、(c,d],X2有两个等价类[e,f)、[f,g]

    1) 弱一般等价类测试:从变量的每个等价类中选择一个值即可,3个。(选择不唯一,下同)

    在这里插入图片描述

    2)强一般等价类测试:从笛卡尔积结果中每个元素取一个值,6个
    在这里插入图片描述
    3)弱健壮等价类测试:对于有效输入,使用每个有效类的一个值(同 弱一般等价类测试);对于无效输入,测试用例取一个无效值,其余的值都是有效的。x1<a,x1>d,x2<e,x2>g四个无效情况,无效输入的取值有四个,并保持其余有效。7个。
    在这里插入图片描述
    4)强健壮等价类测试:有效类+无效类的笛卡尔乘积,从每个元素中获得测试用例

    在这里插入图片描述
    2.1 三角形问题(输入域)
    划分等价类:在这里插入图片描述
    1)弱一般等价类测试&强一般等价类测试:
    在这里插入图片描述
    2)弱健壮等价类测试
    在这里插入图片描述
    3)强健壮等价类测试
    3X3X3=27个

    2.2 三角形问题(输出域)
    划分等价类:
    在这里插入图片描述
    在这里插入图片描述
    2.3 三角形问题(细致划分)
    划分有效等价类:
    在这里插入图片描述
    无效等价类:
    输入个数不对,输入类型不对,不在有效范围

    3.1 NextDate

    在这里插入图片描述
    在这里插入图片描述
    弱健壮:
    在这里插入图片描述
    强健壮:3X3X3=27

    3.2 NextDate
    另一种划分(无效等价类仍是3.1中的)
    在这里插入图片描述
    弱一般等价类测试
    在这里插入图片描述
    在这里插入图片描述
    4 佣金问题(输入域)
    等价类划分
    在这里插入图片描述
    在这里插入图片描述
    部分强健壮等价类测试用例
    在这里插入图片描述

    4 佣金问题(输出域)
    等价类划分
    在这里插入图片描述
    测试用例
    在这里插入图片描述

    展开全文
  • 软件测试——构造等价类测试用例 16340132 梁颖霖 软件工程(计算机应用方向) 问题 构造下述三角形问题的弱健壮的等价类测试用例。 三角形问题:输入三个不超过100的正整数作为三角形的三条边,判断三角形是等边...
  • 等价类划分(Equivalance Partitioning)测试的思想:将程序的输入域划分为若干个区域(等价类),并在每个等价类中选择一个具有代表性的元素生成测试用例。该方法是常用的黑盒(Blackbox Testing)测试用例...
  • 黑盒测试--等价类

    2019-06-10 18:50:34
    文章目录等价类测试基础等价类划分确定等价类的方法等价类测试的分类用等价类设计测试用例 等价类测试基础 等价类测试的作用 等价类方法可在有限测试的情况下,用少量有代表性的数据,得到比较好的测试结果。 ...
  • 包括有效等价类和无效等价类,建立等价类列表为每个等价类规定一个唯一的编号设计一个测试用例,使其尽可能多地覆盖尚未被覆盖的有效等价类,重复这一步,直到所有的有效等价类被覆盖完为止设计一个测试用例,使其尽...
  • 等价类划分测试方法0 目录1 等价类划分测试方法1.1 等价类划分测试方法1.1.1 实验目的1.1.2 实验预习1.1.3 实验内容及要求1.1.4 实验总结2 实验二 0 目录 1 等价类划分测试方法 1.1 等价类划分测试方法 1.1.1 实验...
  • 采用等价类划分法时,完全不用考虑程序内部结构,设计测试用例的唯一依据是软件需求规格说明书。 等价类 所谓等价类,是输入条件的一个子集合,该输入集合中的数据对于揭示程序中的错误是等价的。等价类又分为有效...
  • 1.等价类  在所有测试的数据中,具有某种... 分析需求,确定输入数据类型——使用规则划分有效和无效等价类——设计测试用例,覆盖有效等价类——设计用例,覆盖无效等价类  注意:一条用例尽可能多的覆盖有效...
  • 等价类划分测试方法 在很多情况下,很多人想到的测试方法是穷举测试,穷举测试是最全面的测试,但是数据量很大的情况下不太现实,测试效率太低 实现目标:用最少的测试数据,比较高的效率,以达到最好的测试质量 ...
  • 本篇文章,来分享大家比较熟悉的测试用例设计方法——等价类划分法。 首先,我们可以使用上一篇文章介绍的场景法来梳理业务流程。 其次,根据流程中的每个节点的需求说明,使用等价来划分来设计用例。 定义 等价类...
  • 等价类划分法是把程序的输入域划分成若干部分(子集),然后从每个部分中选取少数代表性数据作为测试用例。每一类的代表性数据在测试中的作用等价于这一类中的其他值。 等价类划分法的应用 1.等价类是指某个输入域...
  • 软件测试——构造 NextDate 问题的弱一般的等价类测试用例 问题 构造 NextDate 问题的弱一般的等价类测试用例。 NextDate 问题:NextDate() 是整型变量 month, day 和 year 的函数,输入 1812-2012 年期间的某一日...
  • 【黑盒测试用例设计方法1】等价类划分法及其示例 等价类划分法是将输入域分成若干个部分,从每个部分选取几个有代表性的数据进行测试,假定测试代表性数据等价于这一部分其他值的测试,从而避免穷举 等价类是输入...
  • 软件测试【一般等价类和边界值】 Overview 等价类划分化的作用就是避免无效的测试。 比如现在要对一个能够数组1-100之间的数组的文本框进行测试 那么 输入 20 和 输入 30 在本质上是没有区别的。 为了更好的测试程序...
  •  一般来说,软件测试设计方法分为5:传统的黑盒测试方法、基于质量的测试方法、基于风险的测试方法、基于经验的测试方法以及白盒测试方法。下面分篇介绍下传统的黑盒测试和白盒测试方法。  5种黑盒测试方法如下...
  • 等价类划分法:依据需求对输入的范围进行细分,然后再分出没一个区域内选取一个有代表性的数据开展测试等价类=有效等价类+无效等价类 有效等价类:符合需求说明,合理地输入数据集合。 无效等价类:不...
1 2 3 4 5 ... 20
收藏数 35,098
精华内容 14,039
关键字:

等价类 软件测试