黑盒测试方法



黑盒测试又称功能测试或数据驱动测试

–       把测试对象当作看不见内部的黑盒,在完全不考虑程序内部结构和处理过程的情况下,测试者仅依据程序功能的需求规范考虑,确定测试用例和推断测试结果的正确性.

–       站在使用软件或程序的角度,从输入数据与输出数据的对应关系进行的测试

–       在软件的接口处进行测试

–       通过导出执行程序所有功能需求的输入条件集,实现功能覆盖,需求覆盖


1)等价类划分法

  (1) 划分等价类的考虑因素

  1. 输入数据
  2. 输出数据

有效等价类:对于程序规格说明来说,是合理的,有意义的输入数据构成的集合

无效等价类:对于程序规格说明来说,是不合理的,无意义的输入数据构成的集合

    (2)划分等价类的标准

       1) 完备测试、避免冗余

       2) 划分等价类重要的是:集合的划分、划分为互不相交的一组子集,而子集的并是整个集合

       3) 并是整个集合:备性

       4) 子集互不相交:保证一种形式的无冗余性

       5) 同一类中标识(选择)一个测试用例,同一等价类中,往往处理相同,相同处理映射到“相同的执行路径”。

 

    (3)设计测试用例

  在确立了等价类后,可建立等价类表,列出所有划分出的等价类输入条件:有效等价类、无效等价类,然后从划分出的等价类中按以下三个原则设计测试用例:

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

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

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

 

(4)等价类案例分析:

新浪邮箱名,其输入要求如下:

1.  4~16个字符

2.  支持英文小写、数字、下划线

3.  不支持全部为数字或下划线

 

                                

解析:

表1-2

输入条件

有效等价类

无效等价类

用户名字符数

4~16(1)

0(2)、0<个数<4(3)、>16(4)

用户名组成

英文小写(5)、数字(6)、下划线(7)

非英文小写、数字、下划线(8)

用户名支持格式

不全为数字(9)、不全为下划线(10)

全为数字(11)、全为下划线(12)

邮箱名有效输入集合:

(1) (5) (6) (7) (9)(10)   32jing_qfda

无效集合:

(2)   邮箱名为空

(3)   jby

(4)   jby_2015_12_22

(8)   王迪

(11)  1234567890

(12)  __________

最终测试用例:  

表1-3

序号

输入及操作说明

期望的测试结果

1

32jing_qfda

符合要求

2

邮件名为空

用户名字符数

不符合要求

3

jby

4

jby_2015_12_22

5

王迪

用户名组成

不符合要求

6

@#%……

7

FDAY

8

1234567890

用户名支持格式

不符合要求

9

__________

 

 

2)边界值分析

(1)一般来说,大量的错误是发生在输入或输出范围的边界上,而不是在输入范围的内部

–       针对各种边界情况设计测试用例,可以查出更多的错误

         比如,在做三角形计算时,要输入三角形的三个边长:A、B和C。 我们应注意到这三个数值应当满足:

          A>0、B>0、C>0、A+B>C、A+C>B、B+C>A,才能构成三角形。

但如果把六个不等式中的任何一个大于号“>”错写成大于等于号“≥”,那就不能构成三角形。

          问题恰出现在容易被疏忽的边界附近

   (2) 边界值分析原则

  1)如果输入条件规定了值的范围,则应取刚达到这个范围的边界值,以及刚刚      超越这个范围的边界值作为测试的输入数据。

    例如:输入值的范围是“1~9”,则可以选取“1”、“9”、“0.9”、“9.1”作为测试输入数据。

2)如果输入条件规定了值的个数,则用最大个数,最小个数,比最小个数少一,比最大个数多一的数作为册数数据。

    例如:一个输入文件应包括1~255个记录,则测试用例可取1和255,还应取0及256等。

3)根据规格说明的每个输出条件,使用原则 1)

例如:某程序的功能是计算折扣量,最低折扣是0元,最高折扣是1000元。则设计一些测试用例,使他们刚好产生0元和1000元的结果。

4)如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例。

5)分析规格说明,找出其他可能的边界条件。

(3)编写测试用例的步骤:

1) 根据被测对象的输入(或输出)要求确定边界值。

2) 选取等于、刚刚大于、刚刚小于边界的值作为测试数据。

注:基本思想是在最小值(min)、略高于最小值(min+)、正常值(nom)、略低于最大值(max-)和最大值(max)等处取值。

(4)案例分析:

有函数f(x,y,z),其中x∈[1900,2100],y∈[1,12],z∈[1,31]的。请写出该函数采用基本边界值分析法设计的测试用例?

 

解:

对于包含3个变量的程序,采用边界值分析法,至少要产生4*3+1=13个用例

表1-4

<2000,6,1>

<2000,6,2>

 

<2000,6,30>

<2000,6,31>

<2000,1,15>

<2000,2,15>

 

<2000,11,15>

<2000,12,15>

<1900,6,15>

<1901,6,15>

 

<2099,6,15>

<2100,6,15>

<2100,6,15>

 

 

 

 

 

3)因果图

(1)利用图解法分析输入的各种组合情况,从而设计测试用例的方法,该方法充分考虑了输入情况的各种组合及输入条件之间的相互制约关系。

(2)适用范围

适合检查程序输入条件的各种组合情况

 等价类法、边界值法分析着重考虑输入条件,未考虑输入条件之间的关系

(3)


①恒等:若C1是1,则E1也是1;否则E1为0。

②非:若C1是1,则E1是0;否则E1是1。

③或:若c1或c2是1,则E1是1;否则E1为0,或”可有任意个输入。

④与:若c1和c2都是1,则E1为1;否则E1为0, 与”也可有任意个输入。

                   

(4)因果图生成测试用例的基本步骤:


 

(5)案例分析

以中国象棋中马的走法为例子,具体说明:

 1、如果落点在棋盘外,则不移动棋子;

 2、如果落点与起点不构成日字型,则不移动棋子;

 3、如果落点处有自己方棋子,则不移动棋子;

 4、如果在落点方向的邻近交叉点有棋子(绊马腿),则不移动棋子;

 5、如果不属于1-4条,且落点处无棋子,则移动棋子;

 6、如果不属于1-4条,且落点处为对方棋子 (非老将),则移动棋子并除去对方棋子;

 7、如果不属于1-4条,且落点处为对方老将,则移动棋子,并提示战胜对方,游戏结束。

   解析:

 原因:1、落点在棋盘外; 2、不构成日字; 3、落点有自方棋子; 4、绊马腿; 5、落点无棋子; 6、落点为对方棋子; 7、落点为对方老将。

结果: 1、不移动; 22、移动; 23、移动己方棋子消除对方棋子; 24、移动并战胜对方。

阅读更多
个人分类: 软件测试
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭