软件测试方法-等价类

发布时间 2023-06-15 05:45:05作者: 天才九少

等价类,就是输入值划分为几个部分,再从每个部分中选取少数代表性数据作为测试用例,即 该部分的少数用例 对于发现软件的BUG和 该部分全部用例效果一样

等价类划分方法:

  • 按类型
  • 按用例范围

按类型:

等价类划分按类型可以划分为:有效等价类和无效等价类。

有效等价类:

是指对于程序的需求规格说明来说是合理的,有意义的输入数据构成的集合。

无效等价类:

是指对于程序的需求规格说明来说是不合理的,无意义的输入数据构成的集合。

总结:设计用例时一定要考虑有或无,空或非空,正常或异常,正面或反面等情况

按用例范围:

弱一般、弱健壮、强一般、强健壮

弱一般:单缺陷假设,不讨论异常区域

弱健壮:单缺陷假设,要考虑异常区域

强一般:多缺陷假设,不考虑异常区域

强健壮:多缺陷假设,要考虑异常区域

弱:单缺陷假设,每一类取一个有效值(范围较小,取典型用例)

强:多缺陷假设,每一类下每一种取一个有效值(范围更大,代表性更具体)

一般:一般指的就是正常值,即不需要考虑异常者

健壮:要考虑异常区域或无效区域

例子:

NextDate 函数包含三个变量:month 、 day 和 year ,函数的输出为输入日期后一天的日期。

例如,输入为 2006年3月 7日,则函数的输出为 2006年3月8日 。要求输入变量 month 、 day 和 year 均为整数值,并且满足下列条件:

(1)1≤month≤12

(2)1≤day≤31

(3)1812≤year≤2012 

有效等价类为:

M1={月份:1≤月份≤12}

D1={日期:1≤日期≤31}

Y1={年:1812≤年≤2012}

无效等价类为:

M2={月份:月份<1}

M3={月份:月份>12}

D2={日期:日期<1}

D3={日期:日期>31}

Y2={年:年<1812}

Y3={年:年>2012}

弱一般等价类测试用例

弱健壮等价类测试用例

强一般等价类测试用例

强健壮等价类测试用例

根据输入条件的划分等价类

  • 单个区间范围
  • 多个区间范围
  • 必填项
  • 布尔量

总原则:无论是按区间范围还是数量又或者其他等,都可以用 有效和无效 等价类来进行覆盖。

(1)单个区间范围,即输入条件规定了某个取值范围或个数的情况下,可以划分一个有效等价类和两个无效等价类,

例:输入值是学生成绩,范围是0~100:

         成绩<0           0<=成绩<=100         100<成绩

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

(2)多个区间范围,输入条件允许n个取值范围,那么一般可以划分n个有效等价类和一个无效等价类

例:输入条件说明输入字符为:中文、英文、阿拉伯文三种之一,则分别取这三种这三个值作为三个有效等价类,另外把三种字符之外的任何字符作为无效等价类。

(3)必填项,单个必填项可以划分一个有效等价类一个无效等价类

(4)布尔量,即输入条件只有True或False两种情况,那么可以划分一个有效等价类和一个无效等价类