軟件評測師寫作專欄之白盒測試用例設計客觀題29

各位學員大家好,大家在學習軟件測試基礎知識時,白盒測試用例設計方法經??疾臁榱俗尨蠹铱焖僬莆者@方面的知識點,接下來就帶領大家一起來學習一下!

例題1:一個程序的控制流圖中有8個節點、12條邊,在測試用例數最少的情況下,確保程序中每個可執行語句至少執行一次所需測試用例數的上限是(?)。

A、2

B、4

C、6

D、8


【昊洋詳解】:本題考查基本路徑測試法中控制流圖和環路復雜度的基礎知識。

基本路徑法設計出的測試用例要保證在測試中程序的每個可執行語句至少執行一次,從程序的環路復雜度可導出程序基本路徑集合中的獨立路徑條數,這是確定程序中每個可執行語句至少執行一次所必須的測試用例數目的上界,也就是應該設計的測試用例的數目。其中控制流程圖的環路復雜性V(G)有以下三種計算方式:

1)、控制流程圖中的區域個數。

2)、邊數-結點數+2。

3)、判定數+1。

題目中沒有給出控制流圖,而是只給出了一個程序的控制流圖中有8個節點、12條邊這個條件,所以我們采用第二種方法就可以計算出:12-8+2=6,類似的題目都可以通過這個方法求解,故該題目的正確答案為:C。


例題2:對于邏輯表達式(((a|b)‖(c>2))&&d<0),需要(?)個測試用例才能完成條件組合覆蓋。

A、2

B、4

C、8

D、16


【昊洋詳解】:本題考查邏輯覆蓋分析法中條件組合覆蓋法的基礎知識。

典型的邏輯覆蓋度量標準有6種,按照從低到高的排序依次為:語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、修正的判定/條件覆蓋(MC/DC)和條件組合覆蓋。需要注意的是滿足條件覆蓋的測試用例不一定滿足判定覆蓋,其他從低到高的覆蓋率的次序不受影響。具體內容如下所示:

1)、語句覆蓋:這是一個比較弱的邏輯覆蓋標準,指通過選擇足夠的測試用例,使得運行測試用例的時候,被測程序每個語句至少被執行一次。

2)、判定覆蓋:又稱為“分支覆蓋”,比語句覆蓋稍強一些,指通過設計足夠的測試用例,使程序中每一個判定至少都獲得一次“真值”和“假值”的機會,或者說使得程序中的每一個分支都至少通過一次。注意:滿足判定覆蓋的測試用例一定滿足語句覆蓋!

3)、條件覆蓋:對于每個判定中所包含的若干個條件,應設計足夠多的測試用例,使得判定中每個條件都至少取得一次“真值”和“假值”的機會,判定中的每個條件的所有可能結果至少出現一次。注意:滿足條件覆蓋的測試用例不一定滿足判定覆蓋!

4)、判定/條件覆蓋:指通過設計足夠多的測試用例,使得運行判定中的每個條件的所有可能的結果至少運行一次,并且每個判定本身的所有可能結果也至少出現一次。

5)、修正的判定/條件覆蓋:要求在一個程序中每一種輸入輸出至少得出現一次,在程序中的每一個條件必須產生所有可能的輸出結果至少一次,并且每一個判定中的每一個條件必須能夠獨立影響一個判定的輸出,即在其他條件不變的前提下僅改變這個條件的值,而使判定結果改變。核心意思是每個條件都要獨立影響判定結果。

6)、條件組合覆蓋:通過設計足夠多的測試用例,使得每個判定中條件結果的所有可能的組合至少出現一次。注意:滿足條件組合覆蓋,一定滿足判定/條件覆蓋。

條件組合覆蓋的測試用例數為:2^n(n表示條件的個數),本題條件為(a|b)、c>2、d<0三個條件,故一共需要2^3=8個條件。需要注意的是以下這幾個符號:

&&和||表示的是邏輯與和邏輯或,連接的是不同的條件,而&和|表示的是按位余操作和按位或的操作,不是邏輯符號,而是計算符號,所以(a|b)表示的是一個條件,而a||b則表示條件a和條件b進行的邏輯或判斷,這個一定要搞清楚,在考試中經常出現,不要被其表象所混淆。

故該題目的正確答案為:C。


鞏固練習題

(1)一個程序的控制流圖中有 5 個節點、 9 條邊,在測試用例數最少的情況下,確保程序中每個可執行語句至少執行一次所需測試用例數的上限是(? )。

A、2???

B、4??????

C、6???

D、8


(2)對于邏輯表達式(((a>0)&&(b>0))||c<5),需要(? )個測試用例才能完成條件組合覆蓋。

A、2???

B、4??????

C、8???

D、16


(3)以下關于白盒測試的敘述中,不正確的是()。

A、滿足判定覆蓋一定滿足語句覆蓋

B、滿足條件覆蓋一定滿足判定覆蓋

C、滿足判定/條件覆蓋一定滿足條件覆蓋

D、滿足條件組合覆蓋一定滿足判定條件覆蓋


練習題參考答案

(1)解析:本題考查基本路徑測試法中控制流圖和環路復雜度的基礎知識。

具體知識點可以參考例題中的解析,這里涉及到一個公式,要確保程序中每個可執行語句至少執行一次所需測試用例數的上限公式是:邊數-結點數+2;套用到本題中就是9-5+2=6。

故該題目的正確答案為C。

?

(2)解析:本題考查輯覆蓋分析法中條件組合覆蓋法的基礎知識。

條件組合覆蓋:選擇足夠的測試用例,使得每個判定中條件的各種可能組合都至少出現一次。條件組合覆蓋的測試用例數為:2^n(n表示條件的個數),本題條件為:a>0、b>0和 c<5共計3個,所以需要2^3=8個測試用例。

故該題目的正確答案為C。

?

(3)解析:本題考查白盒測試中輯覆蓋分析法的基礎知識。

典型的邏輯覆蓋度量標準有6種,按照從低到高的排序依次為:語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、修正的判定/條件覆蓋(MCDC)和條件組合覆蓋。需要注意的是滿足條件覆蓋的測試用例不一定滿足判定覆蓋,其他從低到高的覆蓋率的次序不受影響。

故該題目的正確答案為B。

寫于2020年11月4日

作者:昊洋講師

版權所有,侵權必究

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。