MC/DC

MC/DC

MC/DC(修訂的條件/判定覆蓋)(Modified Condition/Decision Coverage)準則是一種實用的軟體結構覆蓋率測試準則

基本介紹

MC/DC(修訂的條件/判定覆蓋)(Modified Condition/Decision Coverage)準則是一種實用的軟體結構覆蓋率測試準則, 已被廣泛地套用於軟體驗證和測試過程中.
condition 和 decision 的概念:
if A or B and C then
Statement;
else
Statement2;
A,B,C都是一個條件,而(A or B and C)叫一個Decision,如果是判定覆蓋的話只需兩個case就能覆蓋,就是讓這個decision為true和false各一次就能達到即為 0 1 1 , 0 1 0
如果是MC/DC的話就得四個case,而且只比條件數目多一個而已,怎么計算的呢?
定義: 在每個判定中的每個條件都曾獨立的影響判定的結果至少一次, (獨立影響意思是在其他的條件不變的情況下,改變一個條件);
總結一句:每個條件對結果都獨立起作用
比如A對結果起作用的話, B 必須為 false, C必須為 true -- 1 0 1 和 0 0 1, 這樣結果就獨立受A的值影響.
同理如果B對結果獨立起作用的話,A必須為false, C必須為 true, 兩種情況B為true,false各一. 即為 0 1 1 和 0 0 1
而C獨立對結果起作用的話就是讓(A or B) 為 true, 為了減少case, 上面的case 已經含有這樣的case了,我們就取A為false,B為true, 這樣c獨體起作用的case為: 0 1 1 和 0 1 0
可以看出每個條件各走了一次true和false, 這樣三個變數條件就會有六個case, 我們看出其中裡面還有兩個是重複的,
需要進一步補充說明的是,MC/DC測試的主要目的是為了防止在組合條件表達式中包含副作用(side effect),如以下語句:
if (a() || b() || c()){ ... }
MC/DC
當b函式或c函式產生副作用時,MC/DC測試存在非常大的必要性。
原則上不應在組合條件表達式中調用產生副作用的函式。

相關詞條

熱門詞條

聯絡我們