《软件测试》课堂笔记02

(关于等价类这部分有自己的理解,如有错误,请勿见怪)

等价类

等价类划分:等价类划分就是解决如何选择适当的数据子集来代表整个数据集的问题,通过降低测试的数目去实现“合理的”覆盖,覆盖了更多的可能数据,以发现更多的软件缺陷。----百度百科

  等价类划分:有效等价类,无效等价类。

  等价类划分方法:按区间划分,按数值划分,按数值集合划分,按限制条件或规划划分,细分。

  等价类表:

    1)在分析需求规格说明的基础上划分等价类,列出等价类表,为每一个等价类规定一个唯一的编号。
    2)将程序可能的输入数据分成若干个子集,并从中选取一个有代表性的数据作为测试用例。等价类是某个输入域的子集,在该子集中的每个输入数据的作用都是等效的。
    3)设计新的测试用例,使其尽可能多地覆盖未覆盖的有效等价类,按照这一步骤重复进行,直到所有的有效等价类都被覆盖为止。
    4)设计新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,按照这一步骤重复进行,直到所有的无效等价类都被覆盖为止。
 
(1)按区间划分:可以确定一个有效等价类、两个无效等价类。

  例:学生允许选修4到7门课程.

  划分:有效:4到7; 无效:不足4门;超过7门。

(2)按数值划分
  如果输入条件规定了输入数据的一组可能的值,而且程序是用不同的方式处理每一种值,则可为每一种值划分一个有效等价类,并划分一个无效等价类。
(3)按数值集合划分

  规格说明中规定了输入值的集合,则可以确定一个有效等价类,并划分一个无效等价类。

  例:程序要求输入为TOM,DICK,HARRY的名字之一。

  划分:有效:三个有效名字之一。无效:有效名之外的名字,如:JOE。

(4)按限制条件或规则划分

   规格说明中规定了输入数据必须遵守的规则和限制条件,则可以确立一个有效等价类(符合规则)和若干个(≥ 1)无效等价类(不同角度的违反规则)。

(5)细分等价类

  如果我们确知,已划分的某等价类中的各元素(例子)在程序中的处理方式是不同的,则应据此将此等价类进一步划分成更小的等价类。

下面是一些例子:

  例1:“每类科技书应该有50到100册”可以分出下面的5个等价类。
 

有效类

无效类

类型

科技书

非科技书

册数

50到100册

小于50册

   

大于100册

  从“每类科技书应该有50到100册”这句话中可以看出,主体是“科技书"和”50到100册“。因此可以由此划分等价类为:“科技书"和”50到100册“。二无效等价类也就是上述句子中除了有效等价类以外的部分,也就是“非科技书"和”小于50和大于100册“。

   在我看来,如果按照概念去理解等价类划分是一件很难的事。上述句子就属于一个输入域,输入域中包含的主体就是等价类子集。而非等价类就是等价类以外的部分,但又包含在输入域中。

  例2:三角形问题:输入三个整数a、b和c分别作为三角形的3条边,通过程序判断由这3条边构成的三角形类型是:等边三角形、等腰三角形、一般三角形或非三角形。

  等价类表如下:(等价类表就是将所有的等价类找出并加以区分)

  等价类表:

  

  例3:EditBox

  允许1到6个英文字符或数字,按OK结束
  有效等价类:长度:1到6;字符:a-z,A-Z,0-9。
  无效等价类:长度:0,7;字符:英文/数字以外字符,控制字符,标点符号。

  等价类划分: 

  等价类表:

  测试用例:

原文地址:https://www.cnblogs.com/HCS1995/p/4357935.html