白盒测试实验报告_三角形(2)

  • 格式:doc
  • 大小:284.00 KB
  • 文档页数:7

.

'. 白盒测试实验报告——三角形

一、实验目的

(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 java.io.*;

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;

System.out.println("请输入三角形第一条边的长!");

x=getside(v);

System.out.println("请输入三角形第二条边的长!");

y=getside(v);

System.out.println("请输入三角形第三条边的长!");

z=getside(v);

ifzhijiaotriangle();

}

3.

public static int getside(int v)

{

BufferedReader input=new BufferedReader(new

InputStreamReader(System.in));

try{

v=Integer.parseInt(input.readLine());

}

catch(IOException e){}

return v;

}

4

public static void ifzhijiaotriangle()

{

if((x>0&&x<200)&&(y>0&&y<200)&&(z>0&&z<200))

{

5

if(x+y<=z||x+z<=y||z+y<=x)

{

6.System.out.println("您输入的三边不能构成三角形");

}

7.

else{ System.out.println("一般三角形"); }

.

'.

8.

else if(x==y||x==z||y==z)

{

9

if(x==y&&y==z)

10. System.out.println("您输入的三角形是等边三角形");

12.else System.out.println("您输入的三角形是等腰三角形");

}

}

11.

else{

System.out.println("超出");

}

}

}

(2)程序的流图: .

'. 41,2,3a5116781091213bceghjkmdnlif(3)语句覆盖;

编号 测试用例 执行路径 覆盖语句 预输出结果

1 (0,10,20) a,c,d 1,2,3,4,11,13 超出

2 (10,20,35) a,b,e,f 1,2,3,4,5,6,13 不能构成三角形

3 (3,3,5) a,b,g,j,k,l 1,2,3,4,5,7,9,10,13 等腰三角形

4 (3,3,3) a,b,g,j,m,n 1,2,3,4,5,7,9,12,13 等边三角形

5 (10,20,25) a,b,g,h,i 1,2,3,4,5,7,8,13 一般三角形

(4)判定覆盖;

编号 测试用例 执行路径 覆盖判定 预输出结果

1 (0,10,20) a,c,d F1 超出

2 (10,20,35) a,b,e,f T1,F2 不能构成三角形

3 (10,20,25) a,b,g,h,i T1,T2,F3 一般三角形 .

'. 4 (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 1T

b>=1&& b<=200 2T

c>=1&& c<=200 3T

a+b>c 4T

a+c>b 5T

b+c>a 6T

a==b 7T

b==c 8T

a==c 9T

编号 测试用例 执行路径 覆盖条件 预输出结果

1 (0,10,20) a,c,d -1T,2T,3T 超出

2 (10,20,35) a,b,e,f 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 (0,10,20) a,c,d -1T,2T,3T F1 超出 .

'. 2 (10,20,35) a,b,e,f 1T,2T,3T,-4T,5T,6T T1,F2 不能构成三角形

3 (10,35,20) a,b,e,f 1T,2T,3T,4T,-5T,6T T1,F2 不能构成三角形

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,4T,5T,6T,-7T,-8T,-9T T1,T2,F3 一般三角形

6 (3,3,3) a,b,g,j,m,n 1T,2T,3T,4T,5T,6T,7T,8T,9T T1,T2,T3,T4 等边三角形

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 (0,201,201) a,c,d -1T,-2T,-3T 超出

2 (201,201,1) a,c,d -1T,-1T,3T 超出

3 (201,2,201) a,c,d -1T,2T,-3T 超出

4 (2,201,202) a,c,d 1T,-2T,-3T 超出

5 (1,2,201) a,c,d 1T,2T,-3T 超出

6 (1,201,2) a,c,d 1T,-2T,3T 超出

7 (201,1,2) a,c,d -1T,2T,-3T 超出

8 (10,20,35) a,b,e,f 1T,2T,3T,-4T,5T,6T 不能构成三角形

9 (10,35,20) a,b,e,f 1T,2T,3T,4T,-5T,6T 不能构成三角形 .

'. 10 (35,10,20) a,b,e,f 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 等腰三角形

13 (5,3,3) a,b,g,j,k,l 1T,2T,3T,4T,5T,6T,-7T,8T,-9T

等腰三角形

14 (3,5,3) a,b,g,j,k,l 1T,2T,3T,4T,5T,6T,-7T,-8T,9T 等腰三角形

15 (3,3,3) a,b,g,j,m,n 1T,2T,3T,4T,5T,6T,7T,8T,9T 等边三角形

(8)基本路径覆盖;

经过计算,程序流图的环复杂度为5,因此基本路径有5条

编号 测试用例 基本路径 预输出结果

1 (10,20,35) a,b,c,f 不能构成三角形

2 (3,4,5) 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 (0,10,20)

2