三角形白盒测试(5页).doc
-三角形白盒测试-第 4 页南华大学计算机学院实 验 报 告 ( 2018秋季学期 )课程名称 软件验证与确认A实验名称白盒测试设计与实现姓名 学号专业 软件工程班级 2班地点8-606教师楚燕婷1 编写目的输入三角形的三条边,判断三角形的类型,并返回三角形的详细类型。2 软件单元功能需求描述设计判定三角形程序以及单元测试,完成对输入三个数值能否组成三角形的判定。3 单元结构列出核心部分源代码,并画出本单元的组织结构,分析包括本单元包括的属性、方法、输入/输出等。流程图:测试代码:package timu;importpublic class TestUnit public void calculator(double a, double b, double c)if (a<0|b<0|c<0) System.out.println("三角形边数不能为负数!");/能计算成三角形else if(a+b)>c&&(b+c)>a&&(c+a)>b) if(a=b|b=c|a=c) if(a=b&&b=c&&a=c) System.out.println("构成等边三角形!");else System.out.println("构成等腰三角形!");if(a*a+b*b=c*c)|(a*a+c*c=b*b)|(c*c+b*b=a*a) if(a=b|b=c|a=c) System.out.println("构成等腰直角三角形!");elseSystem.out.println("构成直角三角形!");else System.out.print("能构成一般三角形!"); else System.out.println("边数分别为:"+a+","+b+","+c+"不能构成三角形!");Testpublic void Test01Unit() TestUnit t=new TestUnit();t.calculator(-3, 4, 5);t.calculator(2, 3, 3);t.calculator(3, 3, 3);t.calculator(3, 4, 5);t.calculator(2, 6, 7);t.calculator(1, 1, 2);4 测试设计该单元测试使用了判定覆盖以及条件判定覆盖,基本覆盖率为100%。使用的是JAVA自带的Junit,列举部分测试用例结果图。结果图:5 测试结果5.1 测试用例测试用例执行结果统计表测试项测试用例号输入预计输出测试结果判定覆盖Test01a=-3,b=4,c=5三角形边数不能为负数!三角形边数不能为负数!Test02a=2,b=3,c=3构成等腰三角形!构成等腰三角形!Test03a=3,b=3,c=3能构成一般三角形!构成等边三角形!能构成一般三角形!构成直角三角形!Test04a=2,b=6,c=7能构成一般三角形!能构成一般三角形!Test05a=1,b=1,c=2边数分别为:1.0,1.0,2.0不能构成三角形!边数分别为:1.0,1.0,2.0不能构成三角形!Test06a=3,b=-4,c=5三角形边数不能为负数!三角形边数不能为负数!Test07a=-3,b=4,c=5三角形边数不能为负数!三角形边数不能为负数!条件覆盖Test08a=3,b=3,c=3能构成一般三角形!构成等边三角形!能构成一般三角形!构成等边三角形!Test09a= b=1 c=1等腰直角三角形能构成一般三角形!构成等腰直角三角形Test10a=1,b=1,c=2边数分别为:1.0,1.0,2.0不能构成三角形!边数分别为:1.0,1.0,2.0不能构成三角形!Test11a=3,b=1,c=1边数分别为:3.0,1.0,1.0不能构成三角形!边数分别为:3.0,1.0,1.0不能构成三角形!Test12a=1,b=3,c=1边数分别为:1.0,1.0,2.0不能构成三角形!边数分别为:1.0,3.0,1.0不能构成三角形!Test13a=-3,b=4,c=5三角形边数不能为负数!三角形边数不能为负数!Test14a=3,b=6,c=7能构成一般三角形!能构成一般三角形!Test15a=95533,b=2,c=95533能构成一般三角形!构成等腰三角形边数分别为:98833.0,2.0,95533.0不能构成三角形!基本路径的判定:(ProcessOn 线条没法弯折,见谅)如图所示。注:测试用例已经完全覆盖(对于该测试)。因用例可能过多,列举一部分。6 错误统计Bug编号错误描述对应的用例编号备注BUG-1不能构成三角形Test-15此处本应构成一般三角形7 质量评估该单元测试完好的完成了目标需求,并能判定三角形的具体类型,质量较好,但可以设计更好的单元结构使判断锐、钝等普通三角形,可以继续改进。8 总结本次实验良好的完成了目标单元测试功能,对于白盒测试有了更加确切的认知,有时不细心可能会误漏判定覆盖测试用例,需谨慎注意,力求100%覆盖,对于条件判定覆盖用例过多列举了部分。需要更加详尽的改善对普通三角形的判定,会继续改进。