黑盒测试常用的测试方法

时间:2024-02-26 10:34:59

一:说明

   1.1 等价类划方法

   1.2 边界值分析方法

   1.3 决策表方法

   1.4 错误推测方法

   1.4 因果图方法

 

 

二:详解

   2.1 等价类划分方法

      定义:是把所有可能的输入数据,即程序的输入域划分成若*分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例(子集中每个输入对发现软件错误都是等效的)。该方法是一种重要的,常用的黑盒测试用例设计方法。

    

     等价类分类

                      (a) 有效等价类-->指对于软件规格说明来说,是合理的、有意义的输入数据构成的集合。

                      (b) 无效等价类-->与有效等价类相反,指对于软件规格说明而言,没有意义的、不合理的输入数据集合。

   

    编写设计测试用例的步骤

                  (1) 根据被测对象的输入条件,确定等价类,包括有效等价类和无效等价类。

                          有效等价类:系统可以接受、认可的、正确的业务操作。

                          无效等价类:系统认为是非法的,不合理的输入。

                  (2) 将有效等价类、无效等价类进行编号。有效等价类取交集,无效等价类取并集。

                  (3) 为每个等价类设计具体测试数据。

      注:

          在实际测试过程中,不管是有效等价类,还是无效等价类,系统都要做出响应。

          如输入合法邮箱名,系统应该能够接受;

    如输入非法邮箱名,系统应给予“邮箱名输入不合法,请重新输入!”等类似的错误提示。

      

     案例:

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

     1.  4~16个字符

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

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

     

 

      案例解析:

输入条件

有效等价类

无效等价类

用户名字符数

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)   jiangboyang_1987_12_22

                 (8)   江渤洋

                (11)  1234567890

                (12)  __________

 

    最终测试用例:

序号

输入及操作说明

期望的测试结果

1

32jing_qfda

符合要求

2

邮件名为空

用户名字符数

不符合要求

3

jby

4

jiangboyang_1987_12_22

5

江渤洋

用户名组成

不符合要求

6

@#%……

7

FDAY

8

1234567890

用户名支持格式

不符合要求

9

__________

 

       

   2.2 边界值分析方法

       定义:边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。是对等价类划分方法的补充。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。

 

     与等价划分的区别:

          (1)边界值分析不是从某等价类中随便挑一个作为代表,而是使这个等价类的每个边界都要作为测试条件。
          (2)边界值分析不仅考虑输入条件,还要考虑输出空间产生的测试情况。
 
 

     编写测试用例的步骤

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

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

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

 

      单缺陷假设和多缺陷假设

          单缺陷假设 : 是指“失效极少是由两个或两个以上的缺陷同时发生引起的”。要求测试用例只使一个变量取极值,其他变量均取正常值;

          多缺陷假设 : 是指“失效是由两个或两个以上缺陷同时作用引起的”,要求测试用例时同时让多个变量取极值。

   

      边界值测试分类

  

   

      边界值附近的数据确定的几种方法

边界值

测试用例的设计思路

字符

起始-1个字符/结束+1个字符

假设一个文本输入区域允许输入1~255个字符,输入1个和255个字符作为有效等价类;输入0个和256个字符为无效等价类,这几个数值都属于边界条件值

数值

开始位-1/结束位+1

数据的输入域为1~999,其最小值为1,最大值为999,则0、1000为边界值

空间

小于空余空间一点/大于满空间一点

测试数据存储时,使用比最小剩余空间大一点(几千字节)的文件作为最大值检验的边界条件

方向

刚刚超过/刚刚低于

 

报表

第一行和最后一行

 

数组

第一个和最后一个下标元素

 

数据类型

16位整型数据,32767和-32768

 

循环结构

第2次和倒数第2次循环

 

    

    案例:XX博客图片上传,要求上传文件大小不超过5M

            

    案例解析:

           以健壮边界值的标准可选取5M(正好等于)、5.1M(刚刚大于)、3M(正常值)0.1M(略高于最小值)4.9M(略小于最大值)最为边界值来测试。

   

   最终测试用例:

           

 

 

  2.3 决策表方法

       定义:决策表又称判断表,是一种呈表格状的图形工具,适用于描述处理判断条件较多,各条件又相互组合、有多种决策方案的情况。精确而简洁描述复杂逻辑的方式,将多个条件与这些条件满足后要执行动作相对应。但不同于传统程序语言中的控制语句,决策表能将多个独立的条件和多个动作直接的联系清晰的表示出来。

 

      组成:    

          1)条件桩(Condition Stub):列出了问题的所有条件。通常认为列出的条件的次序无关紧要。
          2)动作桩(Action Stub):列出了问题规定可能采取的操作。这些操作的排列顺序没有约束。
          3)条件项(Condition Entry):列出针对它左列条件的取值。在所有可能情况下的真假值。
          4)动作项(Action Entry):列出在条件项的各种取值情况下应该采取的动作。

       

     优点:决策表能罗列出所有的可能情况,并清晰的指出相应的处理方式,用户不需要考虑其中的逻辑关系就能一眼看出其中什么样的动作对应什么样的情况,这比程序语言中层层嵌套的逻辑语句要强多了。而所有可能情况的平面罗列,也能避免在程序语言编写中,因为逻辑上的层层嵌套而产生遗漏,尤其在if-then-else结构中else部分是可选的情况下。

 

 

 

   2.4 错误推测方法

       定义:指在测试程序时,人们可以根据经验或直觉推测程序中可能存在的各种错误,从而有针对性地编写检查这些错误的测试用例的方法(列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例)。

 

     案例:测试一个对线性表(比如数组)进行排序的程序      

     案例解析:根据错误推测法可推测列出以下几项需要特别测试的情况

           1) 输入的线性表为空表;
           2) 表中只含有一个元素;
           3) 输入表中所有元素已排好序;
           4) 输入表已按逆序排好;
           5) 输入表中部分或全部元素相同。

         

 

 

   2.5 因果图方法

       定义:因果图法是一种适合于描述对于多种输入条件组合的测试方法,根据输入条件的组合、约束关系和输出条件的因果关系,分析输入条件的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件涉及的各种组合情况。利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。

 

      编写测试用例的步骤

    

 

 

             (1)  分析软件规格说明书中的输入输出条件并分析出等价类,将每个输入输出赋予一个标示符;分析规格说明中的语义,通过这些语义来找出相应的输入与输入之间,输入与输出之间的关系。

             (2)  将对应的输入与输入之间,输入与输出之间的关系关联起来,并将其中不可能的组合情况标注成约束或者限制条件,形成因果图。

            (3)  由因果图转化成判定表。

            (4)  将判定表的每一列拿出来作为依据,设计测试用例。

 

   

      适合使用因果图法设计测试的用例:

             因果图方法最终生成的就是判定表,它适合于检查程序输入条件的各种组合情况。

     

     案例:有一个处理单价为1元5角的盒装饮料的自动售货软件。若投入1元5角的硬币,按下“可乐”,“雪碧”或“红茶”按钮,相应的饮料就送处理。若投入的是2元硬币,在送出饮料的同时退还5角硬币。

        

     案例解析及最终测试用例