软件测试学习随笔(2) 等价类划分

      黑盒测试是软件测试中的一类方法。在进行黑盒测试时,测试员并不知道程序是如何编写的,而是在规格说明指导下,输入一些测试用例,来检测程序的功能是否正确和完善。因而黑盒测试也被称为功能测试或基于规格说明的测试。理论上,如果我们可以输入大量的、足够的测试用例,就可以完美的测试软件的功能。这种近乎纸上谈兵的方法叫做穷举输入测试。而在真正的黑盒测试中,常用的方法有等价类划分边界值分析决策表测试等。接下来我讲谈论一下等价类划分的方法:

      所谓的等价类是指输入域中的某个互不相交的子集集合。其目的是测试用例的无冗余性。等价类划分为有效等价类(满足规格说明)和无效等价类(不满足规格说明)。常用的等价类划分方法有:

    ▶ 按区间划分

    ▶ 按数值划分

    ▶ 按数值集合划分

    ▶ 按限制条件或规则划分

    ▶ 细分等价类

具体的内容不在这里陈述。

      等价类的用例设计的步骤如下:  

    1.在确立等价类之后,可列出所有划分出的等价类表;

    2.为每一个等价类规定一个唯一的符号;

    3.设计一个新的测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类。重复这一步,指导测试用例覆盖了所有的有效等价类;

           4.设计一个新的测试用例。使其覆盖且只覆盖一个尚未覆盖的无效等价类。重复这一步,直到测试用例覆盖了所有的无效等价类

 

     接下来,我将使用一个实例对上述方法进行演练:

     下面是我用JS编写的一个输入框,它允许输入1-6个英文字符或数字,按“提交”按钮结束:

              

      这个简单的程序的等价类划分为:

  有效等价类 无效等价类
长度 1-6 0,>6
字符 英文字符或数字

英文,数字以外的控制字符,标点符号

  测试用例为:

编号 输入 预期输出
1   length short
2 dafddfdf length long
3 dekajkd+ length long
4 de+d4 character false
5 dede right

    程序实际输出截图如下:

       1.

        

   2.

      

   3.

      

 

   4.

      

   5.

      

     检验后,尚未发现程序中的bug。

  

     这就是我所理解的等价类划分的测试方法。

 

     下面是测试程序的代码:

 1 <html>
 2 <head>
 3     <title>Software Testing</title>
 4 </head>
 5 <body>
 6     <p>NAME: </p>
 7     <form>
 8         <input type="text"  value = "" id = "input1"/>
 9         <input type="submit" onclick="getText();"/>        
10     </form>
11 
12     <script language="JavaScript" Type="text/javascript">
13         function getText(){
14             var a = document.getElementById("input1").value;
15             var len = a.length;
16             if(len > 6){
17                  alert(a +" :  length long");
18             }
19             else if(len <= 0){
20                  alert(a +" :  length short");
21             }
22             else{
23                 var t = 1;
24                 for(var i = 0;i<len;i++){
25                     if((a.charCodeAt(i)>='48'&&a.charCodeAt(i)<='57')||
26                        (a.charCodeAt(i)>='97'&&a.charCodeAt(i)<='122')||
27                        (a.charCodeAt(i)>='65'&&a.charCodeAt(i)<='90')){
28                            
29                     }
30                     else{
31                         t = 0;
32                         
33                     }    
34                 }
35                 
36                 if(t==1){
37                         alert(a +" :  right");
38                     }
39                     else{
40                         alert(a +" :  character false");
41                     }                
42             }
43                   
44         }
45     </script>
46 </body>
47 </html>

 

posted @ 2015-03-22 10:56  一班&潘进凯  阅读(291)  评论(1编辑  收藏  举报