跳至內容

修改條件判斷崁

出自Taiwan Tongues 台語維基
這是此頁批准,以及是最近的修訂。

修改條件 / 判斷崁Modified condition / decision coverage)簡稱MC / DC,佇咧軟體測試內底有關代碼崁率的準則。

依照修改的條件 / 判斷崁的準則,測試過程當中需要滿足以下所有的條件。

  • 每一个判斷的所在結果攏出現過
  • 每一个判斷中所有條件的所有可能結果攏出現過
  • 每一个進入點佮結束點攏執行過
  • 判斷內底每一个條件攏會當獨立影響判斷的結果各條件的獨立影響會當用每一改干焦改變一个條件來證明。

飛航軟體開發指南 DO 鋪百七八 B 佮 DO 鋪百七八 C 中指定會影響飛行機起飛佮降落安全性的軟體(A 等級軟體), 需要滿足來修改的條件 / 判斷崁的代碼崁測試。佇功能安全標準 IEC 六桱一千五百空八 part 三的附錄 B 中,有關 SIL 四个說明,以及汽車安全標準 ISO 二響六千兩百六十二第六章的 ASIL D,攏懸度建議使用 MC / DC。

定義

條件(Condition)

條件是講上細單位的邏輯運算式,就是無法度閣分解的邏輯運算式。

判斷(Decision)

判斷是講條件佮零个至濟个邏輯運算是組成的邏輯運算式,一个無邏輯運算子的判斷是判斷嘛是條件。

條件攏崁(Condition coverage)

程式內底每一个判斷的所有條件的所有可能結果攏至少出現一改。

判斷崁(Decision coverage)

程式每一个進入點佮結束點攏執行過一擺,每一个判斷的所有可能結果攏上無出現一擺。

條件 / 判斷崁(Condition / decision coverage)

程式每一个進入點佮結束點攏執行過一擺,每一个判斷的所有條件的所有可能結果攏上無出現一擺,程式內底判斷的所有可能結果攏至少出現一擺。

修改條件 / 判斷崁(Modified condition / decision coverage)

程式每一个進入點佮結束點攏執行過一擺,每一个判斷的所有條件的所有可能結果攏上無出現一擺,程式內底判斷的所有可能結果攏至少出現一擺,啊若每一个條件攏會當獨立的影響判斷的結果。

說明

條件 / 判斷崁

考慮以下的 C + + 程式

  • 用 ` foo ( 一 , 一 ) ` 佮 ` foo ( 零 , 一 ) ` 進行測試,前者會當判斷成立,了後者會使判斷無成立,就按呢判斷的所有可能結果攏上無出現一改,滿足判斷崁的條件。
  • 用 ` foo ( 一 , 一 ) ` 佮 ` foo ( 零 , 零 ) ` 進行測試,條件 A 佮 B 的所有結果嘛(零和一)攏至少出現一擺,滿足條件崁的條件。前者會當判斷成立,了後者會使判斷無成立,就按呢判斷的所有可能結果攏上無出現一改,滿足判斷崁的條件。所以講來試滿足的條件 / 判斷崁的準則。

修改條件 / 判斷崁

修改條件 / 判斷崁的準則比條件 / 判斷愛去予斷,除上述準是外,猶閣需要證明每一个條件攏會使獨立影響判斷的結果,是講當做一判斷中固定其他的條件,只有改變一條件的時陣,結果隨之改變。

考慮以下的 C + + 程式使用以下的測試,頭一个測試會當判斷成立,第二个測試會當判斷無成立,判斷的所有可能結果攏上無出現一改,判斷的每一个條件的所有可能結果嘛上無出現一改,滿足的條件 / 判斷崁的準則。

  • ` foo ( 一 , 一 , 一 ) `
  • ` foo ( 零 , 零 , 零 ) `

欲講的第一个咧試內底,若共第三个數值一改由為零,判斷由成立改做無成立,所以第三个數值的一會當獨立影響判斷的結果,但是你若共第一个數值改做零,判斷猶原成立,所以頭一个引數無法度獨立影響判斷的結果,同理可證第二个數值也無法度獨立影響判斷的結果。

抑若第二个測試,無論佗一个數值由零改做一个,判斷攏無成立,所致三个數值的零都無法度獨立影響判斷的結果。欲講的測試無法度滿足來修改條件 / 判斷崁的準則。

如果要滿足來修改條件 / 判斷崁的準則,需要使用以下的測試:

  • ` foo (,, 一 ) `
  • ` foo (, 零 ,) `
  • ` foo ( 零 ,,) `
  • ` foo ( 一 , 一 ,) `

測試中的粗體數值表示這數值會影響輸出的結果,每一个數值(對應程式內底的條件)攏至少有二擺機會影響輸出的結果,而且其中上無有一擺做條件成立,上無嘛有做一改共條件變立。

修改條件 / 判斷崁的準則需證明逐个條件攏會使獨立影響判斷的結果,這改試方式會比條件 / 判斷愛去予斷,嘛會用得揣著較濟的錯誤。但考慮測試數量,條件 / 判斷崁只需要兩項測試,佇咧修改條件 / 判斷講需要四項測試,後者的測試成本嘛比前者較懸。

外部連結

  • What is a " Decision " in Application of Modified Condition / Decision Coverage ( MC / DC ) and Decision Coverage ( DC ) ?
  • An Investigation of Three Forms of the Modified Condition Decision Coverage ( MCDC ) Criterion

參考資料