实验一 单元测试(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]+")))
&&(prefix.length()==3&&prefix.charAt(0)!='0'&&prefix.charAt(0)!='1'&&prefix.matches("[0-9]+"))
&&(suffix.length()==4&&suffix.matches("[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 |