• 软件测试学习随笔(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>
  • 相关阅读:
    C#:字符串(转载9)
    C# 数组(转载8)
    C#:可空类型(转载7)
    XD 05
    eclipse 快捷键 干货
    XD 04
    XD 03
    model, mapper, xml
    02 MyBatis & Druid
    注解 用到
  • 原文地址:https://www.cnblogs.com/pjk2015/p/4356863.html
Copyright © 2020-2023  润新知