1. 程式人生 > >白盒測試方法--邏輯覆蓋法

白盒測試方法--邏輯覆蓋法

本文目的主要為軟考準備的複習內容。

例項程式碼:
int method(bool a, bool b, bool c)
{
1  int x;
2  x=0;
3  if(a && (b || c))
4    x=1;
5  return x;
}

1、語句覆蓋:每條語句都至少執行一次。即1,2,3,4,5都要被執行。
可選測試用例
a=1, b=1, c=1 【1,2,3,4,5】

2、判定覆蓋:每個分支都要至少執行一次,即if判定為真,為假各一次。
可選測試用例:
a=1, b=1, c=1 【1,2,3,4,5】
a=0, b=1, c=1 【1,2,3,5】

3、條件覆蓋:每一個單獨條件至少為真,為假各一次。這裡條件指a,b,c
可選測試用例:
a=1, b=1, c=1 【1,2,3,4,5】
a=0, b=0, c=0 【1,2,3,5】


4、條件判定覆蓋:判定覆蓋 + 條件覆蓋 - 重複用例
可選測試用例:
a=1, b=1, c=1 【1,2,3,4,5】
b=0, b=0, c=0 【1,2,3,5】


5、條件組合覆蓋:各條件之間的真假值交叉組合一次;若有n各條件,則有2的n次方個組合用例。
測試用例組合:
a=1, b=1, c=1
a=1, b=1, c=0
a=1, b=0, c=1
a=1, b=0, c=0
a=0, b=1, c=1
a=0, b=1, c=0
a=0, b=0, c=1
a=0, b=0, c=0


6、修正條件判定覆蓋:在條件判定的基礎上進行完善,對單個條件的真假值對應的判定結果也有要求。即a為真時,總的判定條件為真,a為假時整個判定條件為假;而且兩次取值中b、c的真假值保持原值不變。即一個條件改變影響總的結果。
可選測試用例:
a=1, b=1, c=1, a&&(b||c)=1
a=1, b=1, c=0, a&&(b||c)=1
a=1, b=0, c=1, a&&(b||c)=1
a=1, b=0, c=0, a&&(b||c)=0
a=0, b=1, c=1, a&&(b||c)=0
a=0, b=1, c=0, a&&(b||c)=0
a=0, b=0, c=1, a&&(b||c)=0
a=0, b=0, c=0, a&&(b||c)=0

上述用例中符合條件a的用例組合為:{1,5},{2,6},{3,7}中的任意一組
符合條件b的用例組合為:{2,4}
符合條件c的用例組合為:{3,4}
所以總的用例組合為:{1,2,3,4,5}

選擇標準以a為例:
a=1時,a&&(b||c)=1;符合此條件的用例有:1,2,3
a=0時,a&&(b||c)=0;符合此條件的用例有:5,6,7,8
a=1與a=0時b和c的真假值對應相等的條件有:
{1,5};b1=b5=1,c1=c5=1
{2,6};b2=b6=1,c2=c6=0
{3,7};b3=b7=0,c3=c7=0