1. 程式人生 > >軟體測試 白盒測試--邏輯覆蓋法&基本路徑測試法

軟體測試 白盒測試--邏輯覆蓋法&基本路徑測試法

白盒測試—邏輯覆蓋法&基本路徑測試法

題目一:使用邏輯覆蓋測試方法測試以下程式段

1.  int logicExample(int x, int y)

2.  {

3.      int magic=0;

4.      if(x>0 && y>0)

5.      {

6.          magic = x+y+10; 

7.      }

8.      else

9.      {

10.         magic = x+y-10; 

11.     }

12.     

13.     if(magic < 0)

14.     {

15.         magic = 0;         

16.     }

17.     return magic;       

18. }

說明:程式段中每行開頭的數字是對每條語句的編號

(1)畫出程式的控制流圖(用題中給出的語句編號表示)

(2)分別以語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、組合覆蓋和路徑覆蓋方法設計測試用例,並寫出每個測試用例的執行路徑(用題中給出的語句編號表示)。

 

 

1、語句覆蓋

資料

語句

路徑

{x=3, y=3}

1、4

a-b-e-f

{x=-3, y=0}

2、3、4

a-c-d-f

2、判定覆蓋

兩個判斷(x>0 && y>0)(記為P1)和(magic<0)(記為P2)

資料

P1

P2

路徑

{x=3, y=3}

T

F

a-b-e-f

{x=-3, y=0}

F

T

a-c-d-f

3、條件覆蓋

兩個判斷(x>0 && y>0)(記為P1)和(magic<0)(記為P2),三個條件x>0(記為C1)、y>0(記為C2)和magic<0(記為C3)

資料 

C1

C2 

C3

路徑

x=3,y=0  

T

F

T

a-c-e-f

x=-3,y=5

F

T

F

a-c-e-f

4、判定-條件覆蓋

測試用例:

資料    

C1

C2

C3

P1 

 P2

路徑

 x=3,y=3   

T

T

T

F

a-b-e-f 

x=-3,y=0 

F

F

F

T

a-c-d-f

5、條件組合覆蓋

三個條件x>0(記為C1)、y>0(記為C2)和magic<0(記為C3) x>0 y>0  x>0 y<=0  x<=0 y>0  x<=0 y<=0

測試用例

資料    

C1

C2

C3

P1 

 P2

路徑

x=3,y=3  

T

T

T

T

T

a-b-d-f

x=3,y=0 

T

F

F

F

F

a-c-e-f

x=-3,y=2 

F

T

F

F

F

a-c-e-f 

x=-3,y=0

F

F

F

F

F

a-c-e-f

6、路徑覆蓋

測試用例

資料    

C1

C2

C3

P1 

 P2

路徑

x=3,y=5 

T

T

T

T

T

 a-b-d-f

x=0,y=2

F

T

T

F

F

a-c-d-f

這條路徑不可能

a-b-e-f

x=-8,y=3 

F

F

F

F

F

a-c-e-f

2、題目二:三角形問題

在三角形計算中,要求輸入三角形的三個邊長:A、B和C。當三邊不可能構成三角形時提示錯誤,可構成三角形時計算三角形的周長。若是等腰三角形列印“等腰三角形”,若是等邊三角形,則提示“等邊三角形”。畫出程式流程圖、控制流程圖、計算環路複雜度V(g),找出基本測試路徑

  1. if(inta>=intb+intc)
  2.    or (intb>=inta+intc)
  3.    or (intc>=inta+intb)
  4.    strMsg="非三角形"
  5. else
  6.    if(inta==intb)
  7.       and intb==intc then
  8.         strMst="等邊三角形"
  9.    else
  10.       if(inta==intb)
  11.          or(inta==intc)
  12.          or(intc==intb) then
  13.              strMsg="等腰三角形"
  14.       else
  15.          strMsg="普通三角形"
  16.       end if
  17.    end if
  18. end if

1、根據程式碼畫出程式的控制流圖