1、武汉工程大学计算机学院实验报告课程名称 软件测试技术基础实验项目 单元测试实验地点 机电大楼 503实验时间 实验及实验报告评价评价项目 得分按时参加实验课程(10%) 认真完成实验任务(20%) 实验报告填写完整(10%) 实验过程清晰,记录完整(30%) 实验报告文字通顺,代码、图表规范(20%) 实验结论真实,总结全面(10%) 总分 指导教师:胡宏银 2012 年 月 日学号 0905100119姓名 万佳彦实验一 单元测试(6 学时)实验类别:基本实验实验目的:1、掌握黑盒测试技术,并能应用黑盒测试技术设计测试用例。2、掌握白盒测试技术,并能应用白盒测试技术设计测试用例。3、掌握对测
2、试用例进行优化设计方法。4、掌握单元测试技术,并按单元测试的要求设计测试用例。5、掌握一种单元测试工具的使用。实验内容:一、黑盒测试题目:1题目一:电话号码问题某城市电话号码由三部分组成。它们的名称和内容分别是:(1)地区码:空白或三位数字;(2)前 缀:非0或1 的三位数字;(3)后 缀:4 位数字。假定被测程序能接受一切符合上述规定的电话号码,拒绝所有不符合规定的电话号码。根据该程序的规格说明,作等价类的划分,并设计测试方案。2题目二:三角形问题根据下面给出的规格说明,利用边界值测试的方法,给出足够的测试用例。“一个程序读入三个整数。把此三个数值看成是一个三角形的三个边。这个程序要打印出信
3、息,说明这个三角形是三边不等的、是等腰的、还是等边的。 ”二、白盒测试题目: 1题目一:使用逻辑覆盖测试方法测试以下程序段void DoWork (int x,int y,int z)1 int k=0, j=0;2 if ( (x3)9 j=j%3;10 说明:程序段中每行开头的数字(110)是对每条语句的编号。(1)画出程序的控制流图(用题中给出的语句编号表示) 。(2)分别以语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖和路径覆盖方法设计测试用例,并写出每个测试用例的执行路径(用题中给出的语句编号表示) 。2题目二:三角形问题在三角形计算中,要求输入三角型的三个边长:A 、B 和
4、 C。当三边不可能构成三角形时提示错误,可构成三角形时计算三角形周长。若是等腰三角形打印“等腰三角形”,若是等边三角形,则提示“等边三角形”。画出程序流程图、控制流程图、计算圈复杂度 V(g),找出基本测试路径。实验内容对应源程序:电话号码问题的源代码为:TelNumber.javapackage Tel;import java.util.*;public class TelNumber String AreaCode;String Prefix;String Suffix;int Select;Scanner sc = new Scanner(System.in);public void P
5、art1()System.out.println(“输入地区码, 它为三位数字“);AreaCode = sc.next();if(AreaCode.length()!=3)System.out.println(“输入地区码信息错误,地区码位数不为三 “);Part1();else if(AreaCode.length()=3)for(int i=0;i57)System.out.println(“输入地区码信息错误,地区码不为数字 “);Part1();public void Part2()System.out.println(“输入前缀, 它为非0或1 的三位数字“);Prefix = s
6、c.next();if(Prefix.length()!=3)System.out.println(“输入前缀信息错误,前缀位数不为三 “);Part2();else if(Prefix.length()=3)for(int i=0;i57)System.out.println(“输入前缀信息错误,前缀不为数字 “);Part2();elseif(Prefix.charAt(i)=0|Prefix.charAt(i)=1)System.out.println(“输入前缀信息错误,前缀不为 0或1“);Part2();public void Part3()System.out.println(“
7、输入后缀, 它为四位数字“);Suffix = sc.next();if(Suffix.length()!=4)System.out.println(“输入后缀信息错误,地区码位数不为四 “);Part3();else if(Suffix.length()=4)for(int i=0;i57)System.out.println(“输入后缀信息错误,地区码不为数字 “);Part3();TelNumber()System.out.println(“请输入某城市的电话号码 “);System.out.println(“请选择输入某城市的电话号码的地区码 “);System.out.println
8、(“1.地区码为空白“);System.out.println(“2.地区码为三位数字“);System.out.print(“请输入选择 :“);Select=sc.nextInt();if(Select=1)System.out.println(“电话号码为7 位数字“);Part2();Part3();System.out.println(“电话号码为:“ +Prefix+“-“+Suffix);System.out.println(“该电话号码输入合法! “);else if(Select=2)System.out.println(“电话号码为10 位数字“ );Part1();Par
9、t2();Part3();System.out.println(“电话号码为:“ +AreaCode+“-“+Prefix+“-“+Suffix);System.out.println(“该电话号码输入合法! “);Application.javapublic class Application public static void main(String args) / TODO Auto-generated method stubSystem.out.println(“*“);System.out.println(“*欢迎进入电话号码测试系统*“);System.out.println(“
10、*“);new TelNumber();三角形问题的源代码为:import java.util.*;public class Triangle int a;int b;int c;public Triangle()Scanner sc = new Scanner(System.in);System.out.println(“请输入三角形的三条边长 a,b,c“);a = sc.nextInt();b = sc.nextInt();c = sc.nextInt();if(a100 | b100 | c100)System.out.println(“不满足条件“ );else if(a+b3)j=
11、j%3;三角形问题:/* 判断三角形的类 */ public class TriangleTestMethod /* 判断三角形的种类。参数a, b, c分别为三角形的三边, * 返回的参数值为0,表示非三角形; * 为1 ,表示普通三角形; * 为2 ,表示等腰三角形; * 为3 ,表示等边三角形。 */ public static int comfirm(int a, int b, int c) if(a + b c) if(a = b) | (b = c) | (a = c) / 判断为等腰三角形 return 2; else / 判断为普通三角形 return 1; else / 为非
12、三角形 return 0; 控制流图:对于 DoWork 函数的控制流图:127104、58、9测试方法 x y z x3 z5 分支一 分支二 执行路径语句覆盖 4 6 5 T T T T T T 1、2、4、5、7、8、9、10分支覆盖 4 6 5 T T T T T T 1、2、4、5、7、8、9、10分支覆盖 2 4 5 F T F F F F 1、2、7、10条件覆盖 2 6 5 F T F T F T 1、2、7、8、9、10条件覆盖 4 4 10 T F T F F T 1、2、7、8、9、10分支条件覆盖4 6 5 T T T T T T 1、2、4、5、7、8、9、10分支条件覆盖2 4 10 F F F F F F 1、2、7、10组合条件覆盖4 6 5 T T T T T T 1、2、4、5、7、8、9、10组合条件覆盖4 5 10 T F T F F T 1、2、7、8、9、10组合条件覆盖2 6 5 F T F T F T 1、2、7、8、9、10组合条件覆盖2 5 10 F F F F F T 1、2、7、10组合条件覆盖5 5 5 T T F F T F 1、2、4、5、7、10三角形问题的控制流程图:a + b c非三角形b + c ac + c ba=bb=cb=ca=c等腰三角形等边三角形 等腰三角形一般三角形ACAB DEGH IKFH J