1.    白盒测试:对程序内部代码结构的测试

       黑盒测试:对程序外部表现出来的行为的测试

           用于检查代码的功能,不关心内部实现细节。

           即检查程序是否符合规约。

           下面介绍用例设计的两种方法:

            等价类划分与边界值分析。

2.    等价类划分

定义:基于等价类划分的测试,将被测函数的输入域划分为等价类,从等价类中导出测试用例。

针对每个输入数据需要满足的约束条件,划分等价类 

每个等价类代表着对输入约束加以满足/违反的有效/无效数据的集合 。

基于的假设:相似的输入,将会展示相似的行为,故从每个等价类中选一个代表作为测试用例即可。

实例:

对BigInteger.multiply()进行等价类划分测试:

每个BigInteger可划分为七部分:

黑盒测试用例的设计:等价类划分与边界值分析

从7部分中自由选择a,b,出现的等价类有49个

黑盒测试用例的设计:等价类划分与边界值分析

对max()进行等价类划分测试:

max:int X int ->int

而划分只有三种:

黑盒测试用例的设计:等价类划分与边界值分析

因此划分如下:

黑盒测试用例的设计:等价类划分与边界值分析

只需每个等价类中选取一个用例:

黑盒测试用例的设计:等价类划分与边界值分析

3.    边界值分析

大量的错误发生在输入域的“边界”而非中央,

而边界值分析方法是对等价类划分方法的补充。

边界可能发现:

程序员经常犯一些大小差1的错误 

某些边界值是“特殊情况”,需要特殊处理

程序的行为在边界的地方可能发生“突变”。

在进行边界值分析时,不仅要考虑边界,还要考虑边界的两侧。

黑盒测试用例的设计:等价类划分与边界值分析

等价类划分与边界值分析的差异:

黑盒测试用例的设计:等价类划分与边界值分析

例如上面的max(),进行边界值划分:

黑盒测试用例的设计:等价类划分与边界值分析

若全覆盖,就要在多个划分维度上多个取值进行组合,每个组合都要有一个用例。

需要3X5X5=75个用例。

若覆盖每个取值,至少覆盖一次即可,我们就可以选取5个用例:

黑盒测试用例的设计:等价类划分与边界值分析






相关文章: