一、实验目的
(1)巩固白盒测试技术,能熟练应用控制流覆盖方法设计测试用例; (2)学习测试用例的书写。
二、实验内容
判断三角形类型
输入三个整数a、b、c,分别作为三角形的三条边,通过程序判断这三条边是否能构成三角形如果能构成三角形,则判断三角形的类型(等边三角形、等腰三角形、一般三角形)。要求输入三个整数a、b、c,必须满足以下条件:1≤a≤200;1≤b≤200;1≤c≤200。
要求:
为测试该程序的方便,请将三角形判断的算法尽量放入一个函数中。
(1)画出程序的流图;
(2)分别以语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖设计测试用例,并写出每个测试用例的执行路径
要求:设计测试用例时,每种覆盖方法的覆盖率应尽可能达到100%
(3)请采用基本路径测试方法对程序进行测试,并给出具体测试用例信息。
(4)通过你的测试,请总结你所使用测试方法发现的Bug。
三、实验要求
(1)根据题目要求编写测试用例 (2)撰写实验报告
(3)有关的实现程序请附到实验报告中
(4)实验报告命名规则:学号后两位+姓名_白盒实验
四、实验报告
(1)程序代码:
1.
import .*; public class sanjiaoxing { private static int x; private static int y; private static int z; 2.
public static void main(String arg[]) { int v=0; \"请输入三角形第一条边的长!\"); x=getside(v); y=getside(v); \"请输入三角形第二条边的长!\"); \"请输入三角形第三条边的长!\"); z=getside(v); ifzhijiaotriangle(); } 3.
public static int getside(int v) { BufferedReader input=new BufferedReader(new InputStreamReader); try{ } catch(IOException e){} return v; } 4
public static void ifzhijiaotriangle() { { 5
if(x+y<=z||x+z<=y||z+y<=x) { \"您输入的三边不能构成三角形\"); } if((x>0&&x<200)&&(y>0&&y<200)&&(z>0&&z<200)) v=()); 7.
else{ \"一般三角形\"); }
8.
else if(x==y||x==z||y==z) { 9 } 11. else{ } } } \"超出\"); if(x==y&&y==z) 10. \"您输入的三角形是等边三角形\"); \"您输入的三角形是等腰三角形\"); } (2)程序的流图:
1,2,3ab4c511eg67h8j9dmk1012fil13n(3)语句覆盖; 编号 1 2 3 测试用例 (0,10,20) (10,20,35) (3,3,5) 执行路径 a,c,d a,b,e,f a,b,g,j,k,l 4 (3,3,3) a,b,g,j,m,n 5 编号 1 (10,20,25) 测试用例 (0,10,20) d (4)判定覆盖;
执行路径 a,c,覆盖判定 F1 预输出结果 超出 覆盖语句 1,2,3,4,11,13 1,2,3,4,5,6,13 1,2,3,4,5,7,9,10,13 1,2,3,4,5,7,9,12,13 一般三角形 等边三角形 预输出结果 超出 不能构成三角形 等腰三角形 a,b,g,h,i 1,2,3,4,5,7,8,13 2 3 4 (10,20,35) a,b,e,f T1,F2 不能构成三角形 一般三角形 等腰三角形 (10,20,25) a,b,g,h,i T1,T2,F3 (3,3,5) a,b,g,j,k,l T1,T2,T3,F4 5 (3,3,3) a,b,g,j,m,n T1,T2,T3,T4 等边三角形 (5)条件覆盖: 条件 a>=1&& a<=200 b>=1&& b<=200 c>=1&& c<=200 a+b>c a+c>b b+c>a a==b b==c a==c 编号 测试用例 执行路径 覆盖条件 预输出结果 符号 1T 2T 3T 4T 5T 6T 7T 8T 9T 1 2 (0,10,20) (10,20,35) a,c,d a,b,e,f -1T,2T,3T 超出 1T,2T,3T,-4T,不是三角形 5T,6T 3 (10,35,20) a,b,e,f 1T,2T,3T,4T,不是三角形 -5T,6T 4 (35,10,20) a,b,e,f 1T,2T,3T,4T,不是三角形 5T,-6T 5 (10,20,25) a,b,g,h,i 1T,2T,3T,4T,一般三角形 5T,6T,-7T,-8T,-9T 6 (3,3,3) a,b,g,j,m,n 1T,2T,3T,4T,等边三角形 5T,6T,7T,8T,9T 7 (3,3,5) a,b,g,j,k,l 1T,2T,3T,4T,5T,6T,7T,-8T,-9T 等腰三角形
(6)判定/条件覆盖; 编号 1 2 测试用例 (0,10,20) 执行路径 a,c,d 覆盖条件 -1T,2T,3T 覆盖判定 F1 预输出结果 超出 不能构成三角形 (10,20,35) a,b,e,f 1T,2T,3T,T1,F2 -4T,5T,6T 3 (10,35,20) a,b,e,f 1T,2T,3T,T1,F2 4T,-5T,6T 不能构成三角形 4 (35,10,20) a,b,e,f 1T,2T,3T,4T,5T,-6T T1,F2 不能构成三角形 5 (10,20,25) a,b,g,h,i 1T,2T,3T,T1,T2,F3 4T,5T,6T,-7T,-8T,-9T 一般三角形 6 (3,3,3) a,b,g,j,m,n 1T,2T,3T,T1,T2,T3,T4 4T,5T,6T,7T,8T,9T 等边三角形 7 (3,3,5) a,b,g,j,k,l 1T,2T,3T,4T,5T,6T,7T,-8T,-9T T1,T2,T3,F4 等腰三角形
(7)组合覆盖; 编号 测试用例 执行路径 1 2 3 4 5 6 7 8 (0,201,201) (201,201,1) (201,2,201) (2,201,202) (1,2,201) (1,201,2) (201,1,2) (10,20,35) a,c,d a,c,d a,c,d a,c,d a,c,d a,c,d a,c,d a,b,e-1T,-2T,-3T -1T,-1T,3T -1T,2T,-3T 1T,-2T,-3T 1T,2T,-3T 1T,-2T,3T -1T,2T,-3T 超出 超出 超出 超出 超出 超出 超出 覆盖条件 预输出结果 1T,2T,3T,-4T,不能构成三,f 9 (10,35,20) a,b,e,f 10 (35,10,20) a,b,e,f 5T,6T 角形 1T,2T,3T,4T,不能构成三-5T,6T 角形 1T,2T,3T,4T,不能构成三5T,-6T 角形 11 (3,4,5) a,b,g,h,i 1T,2T,3T,4T,一般三角形 5T,6T,-7T,-8T,-9T 12 (3,3,5) a,b,g,j,k,l 1T,2T,3T,4T,等腰三角形 5T,6T,7T,-8T,-9T 1T,2T,3T,4T,等腰三角形 5T,6T,-7T,8T,-9T 1T,2T,3T,4T,等腰三角形 5T,6T,-7T,-8T,9T 1T,2T,3T,4T,等边三角形 5T,6T,7T,8T,9T 13 (5,3,3) a,b,g,j,k,l 14 (3,5,3) a,b,g,j,k,l 15 (3,3,3) a,b,g,j,m,n
(8)基本路径覆盖;
经过计算,程序流图的环复杂度为5,因此基本路径有5条 编号 1 2 测试用例 (10,20,35) (3,4,5) 基本路径 a,b,c,f a,b,g,h,i 3 (3,3,5) a,b,g,j,k,l 4 (3,3,3) a,b,g,j,m,n 5
(0,201,201) a,c,d 超出 等边三角形 等腰三角形 预输出结果 不能构成三角形 一般三角形 附录:测试用例书写格式(语句覆盖为例)
测试用例表
编号 1 2
测试用例 执行路径 覆盖条件 覆盖语句 预输出结果 (0,10,20)
因篇幅问题不能全部显示,请点此查看更多更全内容