三角形白盒测试
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
南华大学
计算机学院
实验报告
(2018秋季学期)
课程名称软件验证与确认A 实验名称白盒测试设计与实现
姓名学号
专业软件工程班级2班
地点8-606 教师楚燕婷
1编写目的
输入三角形的三条边,判断三角形的类型,并返回三角形的详细类型。
2软件单元功能需求描述
设计判定三角形程序以及单元测试,完成对输入三个数值能否组成三角形的判定。
3单元结构
列出核心部分源代码,并画出本单元的组织结构,分析包括本单元包括的属性、方法、输入/输出等。
流程图:
测试代码:
package timu;
import org.junit.Test; public 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("构成等腰直角三角形!");
}
else
System.out.println("构成直角三角形!");
}
else {
System.out.print("能构成一般三角形!");
}
}
else
System.out.println("边数分别为:"+a+","+b+","+c+"不能构成三角形!");
}
@Test
public 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 测试用例
测试用例执行结果统计表
基本路径的判定:(ProcessOn 线条没法弯折,见谅) 如图所示。
角形!
Test13 a=-3,b=4,c =5
三角形边数不能为负数! 三角形边数不能为负数!
Test14
a=3,b=6,c=7 能构成一般三角形!
能构成一般三角形!
Test15
a=95533,b=2,c=95533
能构成一般
三角形!构成等腰三角形
边数分别为:98833.0,2.0,95533.0不能构成三角形!
注:测试用例已经完全覆盖(对于该测试)。因用例可能过多,列举一部分。
6错误统计
7质量评估
该单元测试完好的完成了目标需求,并能判定三角形的具体类型,质量较好,但可以设计更好的单元结构使判断锐、钝等普通三角形,可以继续改进。
8总结
本次实验良好的完成了目标单元测试功能,对于白盒测试有了更加确切的认知,有时不细心可能会误漏判定覆盖测试用例,需谨慎注意,力求100%覆盖,对于条件判定覆盖用例过多列举了部分。需要更加详尽的改善对普通三角形的判定,会继续改进。