等价类划分法_等价类划分法测试用例 - CSDN
精华内容
参与话题
  • 一、分析问题 如果我们需要对下面的这个两位数加法器设计测试用例,在测试了1+1,1+2,(-1)+1和(-1)+2之后,是否有必要测试1+3,1+4 ,1+(-3)和1+(-4)呢? 如果不对两位数加法器程序进行穷举测试,...

    一、分析问题
    如果我们需要对下面的这个两位数加法器设计测试用例,在测试了1+1,1+2,(-1)+1和(-1)+2之后,是否有必要测试1+3,1+4 ,1+(-3)和1+(-4)呢?
    如果不对两位数加法器程序进行穷举测试,我们能否放心的认为其他所有的参数组合都是正确的呢?
    在这里插入图片描述
    可想而知,我们不可能输入这么多的组合进行测试。那么,如果不可能输入这些组合进行测试,是否会担心会遗漏测试中会存在bug呢?

    等价类是建立在这种思想之上——即我们不可能进行穷举测试,那么我们就必须对输入进行分类。我们知道程序是通过数据结构和算法来实现的,计算机按照算法来运行程序,这种运行是稳定的,不会因为我们的输入而导致计算机处理不稳定,即我们输入某种组合,即使输入成千上万次,也是得到同一结果。输入用同一数据结构表示的数据是稳定的,在某值域范围内,程序处理方法是相同的。如果输入不在同一值域,则不能称为同一类。实践证明,这种假设是成立的,所以等价类划分法也是有效的。

    等价类划分法是一种最常用、也是最重要的黑盒测试方法,它将不能穷举的测试过程进行合理分类,从而保证设计出来的测试用例具有完整性和代表性。

    二、等价类划分
    等价类划分是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。测试某等价类的代表值就等于对这一类其它值的测试。因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据,取得较好的测试结果。

    如何划分?——先从程序的规格说明书中找出各个输入条件,再为每个输入条件划分两个或多个等价类,形成若干个互不相交的子集。

    三、等价类划分步骤
    以两位数加法器为例:
    1、划分等价类(依据是需求)
    有效数据等价类:由那些对程序的需求说明中有意义的、合理的输入数据所构成的集合
    无效数据等价类:有那些不合理的或无意义的输入数据所构成的集合
    在这里插入图片描述
    2、建立等价类表
    在这里插入图片描述
    3、设计测试用例
    在设计测试用例时,应同时考虑有效等价类和无效等价类测试用例的设计。
    根据已列出的等价类表可确定测试用例,具体过程如下:
    (1)首先为等价类表中的每一个等价类分别规定一个唯一的编号。
    (2)设计一个新的测试用例,使它能够尽量覆盖尚未覆盖的有效等价类。重复这个步骤,直到所有的有效等价类均被测试用例所覆盖。
    (3)设计一个新的测试用例,使它仅覆盖一个尚未覆盖的无效等价类。重复这一步骤,直到所有的无效等价类均被测试用例所覆盖。
    在这里插入图片描述
    四、实例
    某工厂2019年公开招工,规定报名者年龄应在16周岁至36周岁之间,出生年月规定日期由6位数字组成,前4位表示年份,后2位表示月份。出生年月不在上述范围内,将拒绝接受,并显示“年龄不合格”等出错信息。

    1、根据程序要求划分等价类

    出生年份:4位整数,值的有效范围是1983-2003
    出生月份:2位整数,值的有效范围是1-12

    2、建立等价类表
    在这里插入图片描述
    3、设计测试用例
    在这里插入图片描述

    展开全文
  • 等价类划分法

    2020-07-29 14:20:45
    黑盒测试中关于利用等价类划分法进行软件测试的讲解
  • 等价类划分法测试用例设计举例

    万次阅读 多人点赞 2018-02-27 00:24:20
    等价类划分(Equivalance Partitioning)测试的思想:将程序的输入域划分为若干个区域(等价类),并在每个等价类中选择一个具有代表性的元素生成测试用例。该方法是常用的黑盒(Blackbox Testing)测试用例...

    一、基本概念
    等价类是指程序输入域的子集。
    等价类划分(Equivalance Partitioning)测试的思想:将程序的输入域划分为若干个区域(等价类),并在每个等价类中选择一个具有代表性的元素生成测试用例。该方法是常用的黑盒(Blackbox Testing)测试用例(Testcase)设计方法。
    一)划分等价类
    1.有效等价类与无效等价类
    等价类划分可有两种不同的情况:有效等价类和无效等价类。有效等价类是指对于程序的规格说明来说是合理的、有意义的输入数据构成的集合,它能检验程序是否可以实现规格说明中所规定的功能需求无效等价类是指对程序的规格说明是不合理的或无意义的输入数据所构成的集合,它能检验程序在不符合规则的数据输入下,是否会有异常;无效等价类至少应有一个,也可能有多个,视具体情况而定。因此,设计测试用例时,要同时考虑这两种等价类。因为软件不仅要能接收合理的数据,也要能经受意外的考验,这样的测试才能确保软件具有更高的可靠性。
    2.划分等价类的标准
    完备测试、避免冗余。这就要求:集合(程序输入域)应划分为互不相交的一组子集,而这些子集的并集是整个集合(整个程序输入域)。
    3.等价类的划分原则
    (1) 若输入条件规定了取值范围或值的个数的情况下,可划分为一个有效等价类和两个无效等价类;
    Eg.设置风控指标,其中权重设置范围在[-1000,1000]
    这里写图片描述
    (2) 若输入条件为布尔表达式,可划分为一真一假的有效等价类与无效等价类;
    Eg.设置产品信息,其中产品份额必填
    这里写图片描述
    (3) 若规定了输入数据必须要遵循的原则,可划分为一个有效等价类(符合规则)和若干个无效等价类;
    Eg.系统的初始资金只可输入数字
    这里写图片描述
    (4)若只要求输入数据符合某几个原则,这时可能存在多个有效类和若干个无效等价类;
    Eg. 交易用户登录密码只可输入数字、字母及部分特殊符号,不能输入单/双引号及汉字
    这里写图片描述
    注:每个有效等价类所对应的无效等价类的并集是不符合输入原则的数据集合。
    (5)若规定了输入数据的一组值(假定n个),且程序对不同输入值做不同处理,则可划分为n个有效等价类(每个允许的输入值为一个有效等价类)和一个无效等价类(所有不允许的输入值的集合)。
    Eg. 设置资金账户时,必须选择是否检查自成交
    这里写图片描述
    Eg.输入条件规定学历可为:专科、本科、硕士、博士四种之一
    这里写图片描述
    (6)在确知已划分的等价类中各元素在程序中的处理方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类。
    二)测试用例设计步骤
    (1) 划分等价类后,建立等价类表,并为每一个等价类规定一个唯一的编号;
    (2) 设计一个测试用例,使其尽可能多地覆盖尚未被覆盖地有效等价类,重复这一步骤,直到所有的有效等价类都被覆盖为止;
    (3)设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步骤,直到所有的无效等价类都被覆盖为止。(因为用单个测试用例覆盖无效等价类,是因为某些特定的输入错误会屏蔽或取代其他输入错误检查)

    二、习题练习
    一)三角形问题的等价测试用例
    【问题描述】程序要求:输入三个整数 a 、 b 、 c 分别作为三角形的三边长度,通过程序判定所构成的三角形的类型;当三角形为一般三角形、等腰三角形或等边三角形时,分别作 …处理 。
    <问题分析>
    (1) 输入值域的显/隐式要求:A 整数、B 三个、C 正数、D 两边之和大于第三边、E 三边均不相等、F 两边相等但不等于第三边、G 三边相等;(D~G由输出值域的等价类隐性确定)
    (2) 输出值域的等价类:R1={不构成三角形}、R2={一般三角形}、R3={等腰三角形}、R4={等边三角形};
    <问题解答>
    (1) 列出等价类表并编号
    这里写图片描述
    (2) 设计覆盖有效等价类的测试用例
    这里写图片描述
    (3) 设计覆盖无效等价类的测试用例
    这里写图片描述
    二)NextDate函数的等价测试用例
    【问题描述】NextDate 函数包含三个变量:month 、 day 和 year ,函数的输出为输入日期后一天的日期。 例如,输入为 2006年3月 7日,则函数的输出为 2006年3月8日 。要求输入变量 month 、 day 和 year 均为整数值,并且满足下列条件: ①1≤month≤12
    ②1≤day≤31
    ③1912≤year≤2050
    <问题分析>该函数的主要特点是输入变量之间的逻辑关系比较复杂,具体体现在:输入域的复杂性;闰年规则。如,变量year和变量mouth取不同值时,对应的变量day会有不同的取值范围,或1~30或1~31或1~28或1~29。
    <问题解答>
    (1)划分法一
    (1.1)划分等价类
    A. 有效等价类
    M1={mouth:1≤mouth≤12}; D1={day:1≤day≤31};Y1={year:1912≤year≤2050}
    B. 无效等价类
    M2={mouth:mouth<1}、M2={mouth:mouth>12};
    D2={day:day<1}、D3={day:day>31};
    Y2={year:year<1912}、Y2={year:year>2050};
    (1.2) 一般等价类测试
    由于有效类的数量等于独立变量的个数,因此只有弱一般等价类测试用例出现,且与强一般等价类测试用例相同。
    这里写图片描述
    【注】“弱”是指含单缺陷假设(失效极少是由两个或两个以上的缺陷同时引起的),“强”是指含多缺陷假设(失效是由两个或两个以上的缺陷同时引起的);“一般”是指不考虑无效值。弱一般等价类测试用例通过使用一个测试用例中的每个有效等价类(区间)的代表值来实现(常以对称方式来标识这些测试用例,且注意单边假设作用);强一般等价类测试用例通过每个独立变量的有效等价类的笛卡尔积来实现。
    (1.3) 健壮等价类测试
    (1.3.1) 弱健壮等价类测试
    弱健壮等价类测试中的无效测试用例只含一个无效值,其他都是有效值,即含有单缺陷假设。【注:“弱”是指含单缺陷假设,“强”是指含多缺陷假设;“健壮”是指考虑无效值】
    这里写图片描述
    (1.3.2) 强健壮等价类测试
    强健壮等价类测试考虑了更多的无效值情况。强健壮等价类测试中的无效测试用例可以包含多个无效值,即含有多个缺陷假设。NextDate函数有三个变量,故相应地强健壮等价类测试用例可包含一个无效值、两个无效值或三个无效值。【注:“强”是指含多缺陷假设,“强”是指含多缺陷假设;“健壮”是指考虑无效值】
    这里写图片描述
    (2)划分法二
    显然地,在用划分法一测试NextDate函数时,既没有考虑2月份的天数问题,又没有考虑闰年的问题。因此,应作进一步地改善。
    (2.1)划分等价类
    等价关系的要点是:等价类中的元素要被“同样处理”,即要么都在有效层次上进行,要么都在无效层次上进行。因此,更详细地有效等价类为:
    √变量mouth:M1={mouth: mouth有30天}、M2={mouth: mouth有31天,除去12月}、M3={mouth: mouth是2月}、M4={mouth: mouth是12月};
    √变量day:D1={day: 1≤day≤28}、D2={day: day=29}、D3={day: day=30}、D4={day: day=31};
    √变量day:Y1={year: year是闰年}、Y2={year: year是平年};
    (2.2) 一般等价类测试
    A. 弱一般等价类测试
    考虑到单边假设,机械地以对称方式来选择对应类的有效输入:
    这里写图片描述
    B. 强一般等价类测试
    从弱等价类测试到强等价类测试,不管是一般类还是健壮类,都做要独立性假设,都要以等价类的笛卡尔积表示。
    在本问题中,变量mouth等价类数量为4、变量day等价类数量为4、变量year等价类数量为2,故强一般等价类测试用例数量为4*4*2=32。
    这里写图片描述
    (2.3) 健壮等价类测试
    A. 弱健壮等价类测试

         B. 强健壮等价类测试
    
        **三)佣金问题的等价测试用例** 
    

    待更新……

    展开全文
  • (一)等价类划分法

    万次阅读 2015-04-14 13:49:20
     等价类划分法是把程序的输入域划分成若干部分(子集),然后从每个部分中选取少数代表性数据作为测试用例。每一类的代表性数据在测试中的作用等价于这一类中的其他值。因此,可以把全部输入数据合理划分为若干等价...

    1.定义:

           等价类划分法是把程序的输入域划分成若干部分(子集),然后从每个部分中选取少数代表性数据作为测试用例。每一类的代表性数据在测试中的作用等价于这一类中的其他值。因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据.取得较好的测试结果.等价类划分可有两种不同的情况:有效等价类和无效等价类。

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

    · 无效等价类:与有效等价类的定义恰巧相反。

           设计测试用例时,要同时考虑这两种等价类.因为,软件不仅要能接收合理的数据,也要能经受意外的考验.这样的测试才能确保软件具有更高的可靠性。

    • 按照[输入条件][有效等价类][无效等价类] 建立等价类表,列出所有划分出的等价类,为每一个等价类规定一个唯一的编号。
    • 设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖地有效等价类,重复这一步.直到所有的有效等价类都被覆盖为止。
    • 设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步.直到所有的无效等价类都被覆盖为止。


    2. 划分等价类的六大原则:

    1) 在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类。

    例:手机号码

    2) 在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可确立一个有效等价类和一个无效等价类。

    3) 在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类. 布尔量是一个二值枚举类型, 一个布尔量具有两种状态: true 和 false 。

    4) 在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类。 

    例:

    输入条件说明输入字符为:中文、英文、数字三种之一,则分别取这三种这三个值作为三个有效等价类,另外把三种字符之外的任何字符作为无效等价类(特殊字符等,html标签等)。

    5) 在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。

    例:身份证号码

    6) 在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类。


    3.用例说明:

    在规定的范围内为有效值,超过规定的范围为无效值。

    如:

    1.快捷方式的添加快捷项一共不能超过11项

     


    在设计测试用例时,就把添加的快捷方式的项数做为测试用例来设计。

    可以设计成如下的测试用例:

    1)快捷项>=0且快捷项=<11时,点击保存—有效值(该用例又得分情况,这里只是简单说明,原因请看特别说明)

    2)快捷项<0时,点击保存—无效值

    3)快捷项>11时,点击保存---无效值

    特别说明:

    快捷项在用户没有操作的情况下,默认是没有任何一项的,但是只要是从“管理我的快捷方式”中添加的快捷项,不过是添加还是修改,都需至少要有一项快捷方式时选中,才能操作成功;如果在“最近常用功能”选项中添加,可以不用选择任何一项,就可以保持。

     

    2.目前身份证号码的位数是15位或是18位

     

    可以这样设计测试用例:

    1)身份证号码的位数=15—有效值

    2)身份证号码的位数=18—有效值

    3)身份证号码的位数<15—无效值

    4)身份证号码的位数>18—无效值

    5)15<身份证号码的位数>18—无效值

     


    展开全文
  • 黑盒测试之等价类划分法

    万次阅读 2014-04-10 22:04:44
    等价类划分法是黑盒测试用例设计中一种重要常用的设计方法,它的基本思想是用一组有限的数据去代表近似无限的数据,达到能覆盖所有情况的目的。 定义: 等价类是指某个输入域的一个特定的子集合,在该子集合中...

    等价类划分法是黑盒测试用例设计中一种重要常用的设计方法,它的基本思想是用一组有限的数据去代表近似无限的数据,达到能覆盖所有情况的目的。


    定义:

    等价类是指某个输入域的一个特定的子集合,在该子集合中各个输入数据对于揭露程序中的错误都是等效的,也就是说,如果用这个等价类中的代表值作为测试用例未发现程序错误,那么该类中其他数据(测试用例)也不会发现程序中的错误[1]。

    有效等价类:输入满足程序输入的要求(来自规格说明书),通俗的说就是正确的输入。

    无效等价类:输入不满足程序输入的要求,即异常输入,需要系统对此有一定的容错性。


    示例:

    问题:针对国内18位身份证号码验证,通过等价类划分法设计测试用例。

    先了解一下18位身份证,拿370686199211204618来说:

    37——所在省

    06——所在地级市

    86——所在县级市

    19921120——出生年月日

    461——顺序码,表示你在该地区与你同年同月同日生的人群中的序号,奇数表示男,偶数表示女

    8——对前17进行加权求和并mod11,如果结果为10,用‘X’表示




    等价类划分方法:

    1)规定了输入要满足的条件,可划分一个满足条件的有效等价类和若干不满足其中任何一个条件的无效等价类,如上面的例子。

    2)输入为枚举类型,如输入a要求取值{1,2,3},这时可划分3个有效等价类和一个a不是{1,2,3}的无效等价类。

    3)对于输入条件为满足小于10大于5的整数a,有效等价类为5<a<10,无效等价类为a>=10和a<=5。

    4)输入要求a=10,则有效等价类为a=10,无效等价类为a不等于10。


    总结:

    其实等价类划分法经常出现在我们的程序调bug中,如我们做一个用户登录,就要充分考虑可能的输入情况,并根据这些情况设计异常处理。可是要覆盖所有的情况并不是一件容易的事,我们往往还要借助于大量的特殊用例测试。等价类的划分并非只有一个答案,每个人的理解不同,只要能覆盖测试对象即可。


    参考文献

    [1] 朱少民. 软件测试方法和技术[M]. 第二版. 北京:清华大学出版社,2010:39


    展开全文
  • 【STMT】等价类划分法

    2019-06-12 00:59:35
    文章目录等价类划分法题目解答 等价类划分法 等价类划分法是一种典型的黑盒测试方法,通过划分输入数据集来减少测试所需的用例,包括划分等价类和构造测试用例两个步骤: 划分等价类 划分等价类就是将输入数据集...
  • 等价类划分是指分步骤把海量(无限)的测试用例集减得很小,但过程同样有效。也就是说,选取足够小测试用例,发现更多软件缺陷。 2.类型划分 等价类划分有两种不同情况:有效等价类和无效等价类。 有效等价类: ...
  • 等价类划分方法

    万次阅读 2017-03-09 21:29:19
    测试用例设计白皮书--等价类划分方法 Author: Vince 来源:http://blog.csdn.net/vincetest  一.方法简介 1.定义  是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取...
  • 测试工程方法:等价类划分法

    千次阅读 2018-12-22 22:19:47
     等价类划分法将程序所有可能的输入数据(有效的和无效的)划分成若干个等价类。然后从每个部分中选取具有代表性的数据当做测试用例进行合理的分类,测试用例由有效等价类和无效等价类的代表组成,从而保证测试用例...
  • 等价类划分法 边界值分析法 错误推测法 因果图法 判定表驱动法 正交试验设计法 功能图法等` ` 等价类划分法概念 等价类划分法是把程序的输入域划分成若干部分(子集),然后从每个部分中选取少数代表性数据...
  • 【黑盒测试用例设计方法1】等价类划分法及其示例 等价类划分法是将输入域分成若干个部分,从每个部分选取几个有代表性的数据进行测试,假定测试代表性数据等价于这一部分其他值的测试,从而避免穷举 等价类是输入...
  • 等价类划分法设计测试用例

    千次阅读 2017-08-28 11:08:31
    等价类划分法是常用的黑盒测试用例设计方法,测试用例设计时的唯一依据是产品需求文档。 一、定义  所谓等价类,是把所有可能的输入数据,即程序的输入域划分为若干子集,然后从每一个子集中,选取少数具有...
  • (1) 等价类划分法 等价类划分就是把所有输入数据划分为若干部分,从每一部分选取少数有代表性的数据作为测试用例,代表性数据等同于该类中的其他值。 通过考虑输入和输出数据可以把等价类划分为有效等价类和无效...
  • 等价类划分法测试用例设计

    千次阅读 2019-10-10 11:36:51
    试用等价类划分法为该程序的输入部分设计测试用例 1、 分析输入数据形式(数据类型、数据长度、约束条件) 数据1:邮件地址 数据2:密码 数据3:确认密码 数据4:手机号码 2、 划分输入数据(有效等价类【对于...
  • 黑盒测试用例设计方法包括等价类划分法、边界值分析法、错误推测法、因果图法、判定表驱动法、正交试验设计法、功能图法、场景图法等。(一)等价类划分法定义:等价类划分法是把所有可能输入的数据,即程序的输入域...
  • 文章目录等价类划分法等价类划分概念:等价类的分类等价类思考步骤例子等价类划分的总结 等价类划分法 计算器:到底输入几组数据才算测试完毕? 答案:一个一个测试效率低下,所以一定要分类测试。 1、整数(在范围...
  • 本程序是软件测试中三角形问题等价类划分法程序范例,有较强的指导作用,希望大家能从中学到东西。
  • 黑盒测试之------等价类划分法一、 定义二、等价类的划分三、等价类划分的意义四、等价类测试用例生成步骤五、根据等价划分方法设计测试用例的原则六、常见的可以划分等价类的地方七、使用等价划分类的原因八、实例...
  • 案例:如下图所示的一个两位整数加法器,...基于上述需求,使用等价类划分法编写测试用例的步骤如下: 1.根据需求分析,建立等价类表 (1)有效等价类表 编号 数据要求 1 -99——0之间的整...
1 2 3 4 5 ... 20
收藏数 21,980
精华内容 8,792
关键字:

等价类划分法