实验一  单元测试(4学时)  

实验类别:基本实验

验目的:

1、     掌握黑盒测试技术,并能应用黑盒测试技术设计测试用例。

2、     掌握白盒测试技术,并能应用白盒测试技术设计测试用例。

3、     掌握对测试用例进行优化设计方法。

4、     掌握单元测试技术,并按单元测试的要求设计测试用例。

5、     掌握一种单元测试工具的使用。

实验内容:

1.题目一:电话号码问题

某城市电话号码由三部分组成。它们的名称和内容分别是:

(1)地区码:空白或三位数字;

(2)前 缀:非'0'或'1'的三位数字;

(3)后 缀:4位数字。

假定被测程序能接受一切符合上述规定的电话号码,拒绝所有不符合规定的电话号码。根据该程序的规格说明,作等价类的划分,并设计测试方案。

实验内容:

等价类划分:

电话号码等价类

地区码

有效等价类

编号

无效等价类

编号

 

空白

1

有非数字字符的三位数

5

 

 

三位数字

2

少于三位数字

6

 

 

多余三位数字

7

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

前缀

200到999之间的数

3

有非数字字符的三位数

8

 

 

小于三位数

 

 

 

9

 

 

大于三位数

 

 

 

10

 

 

以0开头的三位数

 

 

11

 

 

以1开头的三位数

 

 

12

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

后缀

四位数字

4

有非数字字符的四位

13

 

 

 

 

 

 

 

 

 

 

 

 

 

少于四位数字

 

 

 

14

 

 

 

 

 

 

 

 

 

 

 

 

 

多余四位的数字

 

 

15

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 



实验内容对应源程序:

package phone;
 
public  class PhoNumber {        
    public  boolean checkPhoneNumber(String local,String prefix,Stringsuffix){       
       boolean result=true; 
       if((local.equals("")||(local.length()==3&&local.matches("[0-9]+")))   
'0'&&prefix.charAt(0)!='1'&&prefix.matches("[0-9]+"))
"[0-9]+")))
           return result;
       else{  
           result=false;
           return result; 
       }   
    }      
}

 

测试程序源码:

package phone;
 
import junit.framework.Assert;            
import junit.framework.TestCase;              
 
public  class TestPhoNumber extends TestCase{            
 
    public  void testCheckPhoneNumber1(){          
       PhoNumber pn=new PhoNumber();
       Assert.assertEquals("电话号码合法",true, pn.checkPhoneNumber("","879", "1234"));
    }   
    public  void testCheckPhoneNumber2(){          
       PhoNumber pn=new PhoNumber();
       Assert.assertEquals("电话号码合法",true, pn.checkPhoneNumber("333","555", "6666"));
    }   
    public  void testCheckPhoneNumber3(){          
       PhoNumber pn=new PhoNumber();
       Assert.assertEquals("电话号码不正确",false, pn.checkPhoneNumber("33a","555", "6666"));
    }   
    public  void testCheckPhoneNumber4(){          
       PhoNumber pn=new PhoNumber();
       Assert.assertEquals("电话号码不正确",false, pn.checkPhoneNumber("33","555", "6666"));
    }   
    public  void testCheckPhoneNumber5(){          
       PhoNumber pn=new PhoNumber();
       Assert.assertEquals("电话号码不正确",false, pn.checkPhoneNumber("3333","555", "6666"));
    }   
    public  void testCheckPhoneNumber6(){          
       PhoNumber pn=new PhoNumber();
       Assert.assertEquals("电话号码不正确",false, pn.checkPhoneNumber("333","55a", "6666"));
    }   
    public  void testCheckPhoneNumber7(){          
       PhoNumber pn=new PhoNumber();
       Assert.assertEquals("电话号码不正确",false, pn.checkPhoneNumber("333","55", "6666"));
    }   
    public  void testCheckPhoneNumber8(){          
       PhoNumber pn=new PhoNumber();
       Assert.assertEquals("电话号码不正确",false, pn.checkPhoneNumber("333","5555", "6666"));
    }   
    public  void testCheckPhoneNumber9(){          
       PhoNumber pn=new PhoNumber();
       Assert.assertEquals("电话号码不正确",false, pn.checkPhoneNumber("333","055", "6666"));
    }   
    public  void testCheckPhoneNumber10(){         
       PhoNumber pn=new PhoNumber();
       Assert.assertEquals("电话号码不正确",false, pn.checkPhoneNumber("333","155", "6666"));
    }   
    public  void testCheckPhoneNumber11(){         
       PhoNumber pn=new PhoNumber();
       Assert.assertEquals("电话号码不正确",false, pn.checkPhoneNumber("333","555", "a666"));
    }   
    public  void testCheckPhoneNumber12(){         
       PhoNumber pn=new PhoNumber();
 
       Assert.assertEquals("电话号码不正确",false, pn.checkPhoneNumber("333","555", "666"));
    }   
    public  void testCheckPhoneNumber13(){         
       PhoNumber pn=new PhoNumber();
       Assert.assertEquals("电话号码不正确",false, pn.checkPhoneNumber("333","555", "66666"));
    }   
}

 


测试报告:

用例ID

地区码

前缀

后缀

预期输出

实际输出

测试结果

1

空白

879

1234

合法

合法

OK

2

333

555

6666

合法

合法

OK

3

33a

555

6666

不正确

合法

OK

4

33

555

6666

不正确

合法

OK

5

3333

555

6666

不正确

合法

OK

6

333

55a

6666

不正确

合法

OK

7

333

55

6666

不正确

合法

OK

8

333

5555

6666

不正确

合法

OK

9

333

55

6666

不正确

合法

OK

10

333

155

6666

不正确

合法

OK

11

333

555

a666

不正确

合法

OK

12

333

555

666

不正确

合法

OK

13

333

555

6666

不正确

合法

OK