实验一 单元测试(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 |