黑盒测试方法一(等价类划分)

来源:互联网 发布:少女前线ios数据清空 编辑:程序博客网 时间:2024/05/17 07:09

等价类划分

等价列划分设计方法是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少量具有代表性的数据作为测试用例。


等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的。并合理地假定:测试某等价类的代表值就等于对这一类其他值的测试。


等价类划分有两种不同的情况:有效等价类和无效等价类。设计时要同时考虑这两种等价类。


下面给出6条确定等价类的原则:

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

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

  3. 在输入条件是一个布尔量的情况下,可以确立一个有效等价类和一个无效等价类。

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

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

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


在确立了等价类后,可建立等价类表,列出所有划分出的等价类。然后从划分出的等价类中按以下的3个原则设计测试用例:

  1. 为每一个等价类规定一个唯一的编号

  2. 设计一个新的测试用例,使其尽可能多的覆盖尚未被覆盖的有效等价类,重复这一步,直到所有的有效等价类都被覆盖为止。

  3. 设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步,直到所有的无效等价类都被覆盖为止。


例子:

根据下面给出的规格说明,利用等价类划分的方法,给出足够的测试用例。

"一个程序读入3个整数,它们分别代表一个三角形的3个边长。该程序判断所输入的整数是否构成一个三角形,以及该三角形是一般的、等腰的或等边的,并将结果打印出来。"

要求:设三角形的3条边分别为A、B、C,并且

(1) 列出等价类表,格式如下:

输入条件有效等价类无效等价类
(注意:将等价类编号)(注意:将等价类编号)

(2) 设计测试用例,格式如下:

  用例n:输入【A,B,C】覆盖等价类……(列出等价类序号),输出结果为……。

 

答:设三角形的3条边分别为A,B,C。如果它们能够构成三角形的3条边,必须满足:

A>0,B>0,C>0,且A+B>C,B+C>A,A+C>B。

如果是等腰的,还要判断A=B,或B=C,或A=C。

如果是等边的,则需判断是否A=B,且B=C,且A=C。


输入条件有效等价类无效等价类是否三角形的三条边(A>0),     (1)(A≤0),      (7)(B>0),     (2)(B≤0),      (8)(C>0),     (3)(C≤0),      (9)(A+B>C),   (4)(A+B≤C),   (10)(B+C>A),   (5)(B+C≤A),   (11)(A+C>B),   (6)(A+C≤B),    (12)是否等腰三角形(A=B),     (13)(A≠B)and(B≠C)and(C≠A)     (16)(B=C),     (14)(C=A),     (15)是否等边三角形(A=B)and(B=C)and(C=A)(A≠B),     (18)            (17)(B≠C),     (19)
(C≠A),      (20)



举例


序号【A,B,C】覆盖等价类输出1【3,4,5】(1),(2),(3),(4),(5),(6)一般三角形2【0,1,2】-7不能构成三角形3【1,0,2】-84【1,2,0】-95【1,2,3】-106【1,3,2】-117【3,1,2】-128【3,3,4】(1),(2),(3),(4),(5),(6),(13)等腰三角形9【3,4,4】(1),(2),(3),(4),(5),(6),(14)10【3,4,3】(1),(2),(3),(4),(5),(6),(15)11【3,4,5】(1),(2),(3),(4),(5),(6),(16)非等腰三角形12【3,3,3】(1),(2),(3),(4),(5),(6),(17)是等边三角形13【3,4,4】(1),(2),(3),(4),(5),(6),(14),(18)非等边三角形14【3,4,3】(1),(2),(3),(4),(5),(6),(15),(19)15【3,3,4】(1),(2),(3),(4),(5),(6),(13),(20)

阅读全文
0 0
原创粉丝点击