2016-11-04 160 views
1

我一直在回顧在嵌入式系統上使用的不同代碼覆蓋率測試。特別是,我正在看MC/DC。根據我的理解,其中一個目標是確保陳述中的每個邏輯子句都應該影響陳述的結果。代碼覆蓋範圍爲C

兩個問題:

  1. 什麼是獨立驗證每個子句對結果的影響得到了什麼?
  2. 爲什麼(A||B) && (A||!C)不能達到100%的MC/DC,而A||(B&&!C)即使具有完全相同的功能也能達到100%MC/DC?

回答

1

回答您的問題

  1. 你儘可能少的代碼要儘可能和不太複雜的代碼越好。無法訪問的條件會延長您的代碼並使代碼變得不必要的複雜。

  2. (A||B) && (A||!C)將不會達到100%,因爲它需要A無故檢查兩次。在A爲假且B爲真的情況下,A的真實性將在(A||!C)表達式中無限制地再次檢查,而在公式A||(B&&!C)A的真實性僅被檢查一次。

+0

因此,MC/DC的主要目標是降低複雜性? – engineer14

+0

MC/DC的目標是以儘可能小的複雜性測試每一個可能的結果。 –