白盒測試實驗報告——三角形
一、實驗目的(1)鞏固白盒測試技術(shù),能熟練應用控制流覆蓋方法設(shè)計測試用例;
(2)學習測試用例的書寫。
二、實驗內(nèi)容
判斷三角形類型
輸入三個整數(shù)a、b、c,分別作為三角形的三條邊,通過程序判斷這三條邊是否能構(gòu)成三角形?如果能構(gòu)成三角形,則判斷三角形的類型(等邊三角形、等腰三角形、一般三角形)。要求輸入三個整數(shù)a、b、c,必須滿足以下條件:1≤a≤200;1≤b≤200;1≤c≤200。
要求:
為測試該程序的方便,請將三角形判斷的算法盡量放入一個函數(shù)中。
(1)畫出程序的流圖;
(2)分別以語句覆蓋、判定覆蓋、條件覆蓋、判定條件覆蓋、條件組合覆蓋設(shè)計測試用例,并寫出每個測試用例的執(zhí)行路徑
要求:設(shè)計測試用例時,每種覆蓋方法的覆蓋率應盡可能達到100%
(3)請采用基本路徑測試方法對程序進行測試,并給出具體測試用例信息。
(4)通過你的測試,請總結(jié)你所使用測試方法發(fā)現(xiàn)的Bug。
三、實驗要求
(1)根據(jù)題目要求編寫測試用例
(2)撰寫實驗報告
(3)有關(guān)的實現(xiàn)程序請附到實驗報告中
(4)實驗報告命名規(guī)則:學號后兩位+姓名_白盒實驗
四、實驗報告
(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;
}
public
static
void
ifzhijiaotriangle()
{
if((x>0&&x<200)&&(y>0&&y<200)&&(z>0&&z<200))
{
if(x+y<=z||x+z<=y||z+y<=x)
{
6.System.out.println(“您輸入的三邊不能構(gòu)成三角形“);
}
7.else{
System.out.println(“一般三角形“);
}
8.else
if(x==y||x==z||y==z)
{
if(x==y&&y==z)
10.System.out.println(“您輸入的三角形是等邊三角形“);
12.else
System.out.println(“您輸入的三角形是等腰三角形“);
}
}
11.else{
System.out.println(“超出“);
}
}
}
(2)
程序的流圖:
(3)語句覆蓋;
編號
測試用例
執(zhí)行路徑
覆蓋語句
預輸出結(jié)果
(0,10,20)
a,c,d
1,2,3,4,11,13
超出
(10,20,35)
a,b,e,f
1,2,3,4,5,6,13
不能構(gòu)成三角形
(3,3,5)
a,b,g,j,k,l
1,2,3,4,5,7,9,10,13
等腰三角形
(3,3,3)
a,b,g,j,m,n
1,2,3,4,5,7,9,12,13
等邊三角形
(10,20,25)
a,b,g,h,i
1,2,3,4,5,7,8,13
一般三角形
(4)
判定覆蓋;
編號
測試用例
執(zhí)行路徑
覆蓋判定
預輸出結(jié)果
(0,10,20)
a,c,d
F1
超出
(10,20,35)
a,b,e,f
T1,F2
不能構(gòu)成三角形
(10,20,25)
a,b,g,h,i
T1,T2,F3
一般三角形
(3,3,5)
a,b,g,j,k,l
T1,T2,T3,F4
等腰三角形
(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
編號
測試用例
執(zhí)行路徑
覆蓋條件
預輸出結(jié)果
(0,10,20)
a,c,d
-1T,2T,3T
超出
(10,20,35)
a,b,e,f
1T,2T,3T,-4T,5T,6T
不是三角形
(10,35,20)
a,b,e,f
1T,2T,3T,4T,-5T,6T
不是三角形
(35,10,20)
a,b,e,f
1T,2T,3T,4T,5T,-6T
不是三角形
(10,20,25)
a,b,g,h,i
1T,2T,3T,4T,5T,6T,-7T,-8T,-9T
一般三角形
(3,3,3)
a,b,g,j,m,n
1T,2T,3T,4T,5T,6T,7T,8T,9T
等邊三角形
(3,3,5)
a,b,g,j,k,l
1T,2T,3T,4T,5T,6T,7T,-8T,-9T
等腰三角形
(6)
判定/條件覆蓋;
編號
測試用例
執(zhí)行路徑
覆蓋條件
覆蓋判定
預輸出結(jié)果
(0,10,20)
a,c,d
-1T,2T,3T
F1
超出
(10,20,35)
a,b,e,f
1T,2T,3T,-4T,5T,6T
T1,F2
不能構(gòu)成三角形
(10,35,20)
a,b,e,f
1T,2T,3T,4T,-5T,6T
T1,F(xiàn)2
不能構(gòu)成三角形
(35,10,20)
a,b,e,f
1T,2T,3T,4T,5T,-6T
T1,F2
不能構(gòu)成三角形
(10,20,25)
a,b,g,h,i
1T,2T,3T,4T,5T,6T,-7T,-8T,-9T
T1,T2,F(xiàn)3
一般三角形
(3,3,3)
a,b,g,j,m,n
1T,2T,3T,4T,5T,6T,7T,8T,9T
T1,T2,T3,T4
等邊三角形
(3,3,5)
a,b,g,j,k,l
1T,2T,3T,4T,5T,6T,7T,-8T,-9T
T1,T2,T3,F(xiàn)4
等腰三角形
(7)
組合覆蓋;
編號
測試用例
執(zhí)行路徑
覆蓋條件
預輸出結(jié)果
(0,201,201)
a,c,d
-1T,-2T,-3T
超出
(201,201,1)
a,c,d
-1T,-1T,3T
超出
(201,2,201)
a,c,d
-1T,2T,-3T
超出
(2,201,202)
a,c,d
1T,-2T,-3T
超出
(1,2,201)
a,c,d
1T,2T,-3T
超出
(1,201,2)
a,c,d
1T,-2T,3T
超出
(201,1,2)
a,c,d
-1T,2T,-3T
超出
(10,20,35)
a,b,e,f
1T,2T,3T,-4T,5T,6T
不能構(gòu)成三角形
(10,35,20)
a,b,e,f
1T,2T,3T,4T,-5T,6T
不能構(gòu)成三角形
(35,10,20)
a,b,e,f
1T,2T,3T,4T,5T,-6T
不能構(gòu)成三角形
(3,4,5)
a,b,g,h,i
1T,2T,3T,4T,5T,6T,-7T,-8T,-9T
一般三角形
(3,3,5)
a,b,g,j,k,l
1T,2T,3T,4T,5T,6T,7T,-8T,-9T
等腰三角形
(5,3,3)
a,b,g,j,k,l
1T,2T,3T,4T,5T,6T,-7T,8T,-9T
等腰三角形
(3,5,3)
a,b,g,j,k,l
1T,2T,3T,4T,5T,6T,-7T,-8T,9T
等腰三角形
(3,3,3)
a,b,g,j,m,n
1T,2T,3T,4T,5T,6T,7T,8T,9T
等邊三角形
(8)
基本路徑覆蓋;
經(jīng)過計算,程序流圖的環(huán)復雜度為5,因此基本路徑有5條
編號
測試用例
基本路徑
預輸出結(jié)果
(10,20,35)
a,b,c,f
不能構(gòu)成三角形
(3,4,5)
a,b,g,h,i
一般三角形
(3,3,5)
a,b,g,j,k,l
等腰三角形
(3,3,3)
a,b,g,j,m,n
等邊三角形
(0,201,201)
a,c,d
超出
附錄:測試用例書寫格式(語句覆蓋為例)
測試用例表
編號
測試用例
執(zhí)行路徑
覆蓋條件
覆蓋語句
預輸出結(jié)果
(0,10,20)