全球专业中文经管百科,由121,994位网友共同编写而成,共计436,047个条目

判定覆蓋

用手机看条目

出自 MBA智库百科(https://wiki.mbalib.com/)

判定覆蓋(Decision Coverage)

目錄

什麼是判定覆蓋

  判定覆蓋是指設計若幹個測試用例,運行被測程式,使得程式中每個判定條件的取真分支和取假分支至少評價一次。

  判定覆蓋具有比語句覆蓋更強的測試能力,而且具有和語句覆蓋一樣的簡單性,無需細分每個判定就可以得到測試用例。但是大部分的判定語句是由多個邏輯條件組合而成(如,判定語句中包含AND、OR、CASE),若僅僅判斷其整個最終結果,而忽略每個條件的取值情況,必然會遺漏部分測試路徑。

  判定覆蓋是設計足夠多的測試用例,使得程式中的每一個判斷至少獲得一次“真”和一次“假”,即使得程式流程圖中的每一個真假分支至少被執行一次。

概念

  使設計的測試用例保證程式中每個判斷的每個取值分支(ture or false)至少經歷一次

  【優點】:分支(判定)覆蓋具有比語句覆蓋更強的測試能力。同樣分支(判定)覆蓋也具有和語句覆蓋一樣的簡單性,無須細分每個判定就可以得到測試用例。

  【缺點】:往往大部分的分支(判定)語句是由多個邏輯條件組合而成,若僅僅判斷其整個最終結果,而忽略每個條件的取值情況,必然會遺漏部分測試路徑。判定覆蓋仍是弱的邏輯覆蓋。

判定覆蓋的判斷過程

  判定覆蓋

  CASE讓判斷1和2都分別能出現 true, false .

  CASE1:

  A=TRUE, B=TRUE——判斷1= True;

  C=TRUE,D=TRUE——判斷2=TRUE;

  CASE2:

  A=TRUE,B=TRUE——判斷1=TRUE

  C=FALSE,D=FALSE——判斷2=FALSE

  CASE3:

  A=FALSE,B=TRUE——判斷1=FALSE

  判斷2不執行,

  這裡B=FALSE情況就沒覆蓋到。

  修訂的條件/判定覆蓋(Modified Condition/Decision Coverage)

  MC/DC(修訂的條件/判定覆蓋,Modified Condition/Decision Coverage)準則是一種實用的軟體結構覆蓋率測試準則, 已被廣泛地應用於軟體驗證和測試過程中

  下舉例來詳細說明MC/DC下測試用例的設計準則:

  if(A( ) || B ( ) && C( )){

    do action1();

  }else{

    do action2( );

  }

  A( ),B( ),C( )都是一個條件,而(A( ) || B( ) && C( ))叫一個Decision,如果是判定覆蓋的話只需兩個case就能覆蓋,就是讓這個decision為true和false各一次

  如果是MC/DC的話就得四個case,而且只比條件數目多一個而已,怎麼計算的呢?

  定義: 在每個判定中的每個條件都曾獨立的影響判定的結果至少一次, (獨立影響意思是在其他的條件不變的情況下,改變一個條件)

  那麼就有如下測試用例(true和false的順序就按照A( )、B( )、C( )來):

  A( )對結果獨立影響,那麼就要求"B( )"和"C( )"中至少一個為false,於是有:

  A( )獨立影響且decision為true:

  true  false  false

  true  false  true

  true  true  false

  A( )獨立影響且decision為false:

  false  false  false

  false  false  true

  false  true  false

  B( )對結果獨立影響,那麼就要求"A( )"為false,"C( )"為true,於是有:

  B( )獨立影響且decision為true:

  false  true  true

  B( )獨立影響且decision為false:

  false  false  true

  C( )對結果獨立影響,那麼就要求"A( )"為false,"B( )"為true,於是有:

  C( )獨立影響且decision為true:

  false  true  true

  C( )獨立影響且decision為false:

  false  true  false

  需要進一步補充說明的是,MC/DC測試的主要目的是為了防止在組合條件表達式中包含邊際效應(side effect),如以下語句:

  if (A( )||B( )||C()){

    statements...;

  }

  當B( )函數或C( )函數具備邊際效應時,MC/DC測試存在非常大的必要性;

  原則上不應在組合條件表達式中調用包含邊際效應的函數。

本條目對我有幫助3
MBA智库APP

扫一扫,下载MBA智库APP

分享到:
  如果您認為本條目還有待完善,需要補充新內容或修改錯誤內容,請編輯條目投訴舉報

本条目由以下用户参与贡献

Tracy,寒曦,赵先生.

評論(共0條)

提示:評論內容為網友針對條目"判定覆蓋"展開的討論,與本站觀點立場無關。

發表評論請文明上網,理性發言並遵守有關規定。

打开APP

以上内容根据网友推荐自动排序生成

官方社群
下载APP

闽公网安备 35020302032707号