亲爱的MBA智库百科用户:


过去的17年,百科频道一直以免费公益的形式为大家提供知识服务,这是我们团队的荣幸和骄傲。 然而,在目前越来越严峻的经营挑战下,单纯依靠不断增加广告位来维持网站运营支出,必然会越来越影响您的使用体验,这也与我们的初衷背道而驰。 因此,经过审慎地考虑,我们决定推出VIP会员收费制度,以便为您提供更好的服务和更优质的内容。


MBA智库百科VIP会员,您的权益将包括: 1、无广告阅读; 2、免验证复制。


当然,更重要的是长期以来您对百科频道的支持。诚邀您加入MBA智库百科VIP会员,共渡难关,共同见证彼此的成长和进步!



MBA智库百科项目组
2023年8月10日
百科VIP
未登录
无广告阅读
免验证复制
1年VIP
¥ 9.9
支付方式:
微信支付
支付宝
PayPal
购买数量:
1
应付金额:
9.9
汇率换算:
1.32
美元(USD)
  • 美元(USD)
  • 加元(CAD)
  • 日元(JPY)
  • 英镑(GBP)
  • 欧元(EUR)
  • 澳元(AUD)
  • 新台币(TWD)
  • 港元(HKD)
  • 新加坡(SGD)
  • 菲律宾(PHP)
  • 泰铢(THB)

按当月汇率换算,

包含手续费

打开手机微信 扫一扫继续付款
立即开通
PayPal支付后,可能会遇到VIP权益未及时开通的情况,请您耐心等待,或者联系百科微信客服:mbalib888。
温馨提示:当无法进去支付页面时,可刷新后重试或更换浏览器
开通百科会员即视为同意《MBA智库·百科会员服务规则》

支付成功

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

判定覆蓋

用手机看条目

出自 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
告MBA智库百科用户的一封信
亲爱的MBA智库百科用户: 过去的17年,百科频道一直以免费公益的形式为大家提供知识服务,这是我们团队的荣幸和骄傲。 然而,在目前越来越严峻的经营挑战下,单纯依靠不断增加广告位来维持网站运营支出,必然会越来越影响您的使用体验,这也与我们的初衷背道而驰。 因此,经过审慎地考虑,我们决定推出VIP会员收费制度,以便为您提供更好的服务和更优质的内容。 MBA智库百科VIP会员(9.9元 / 年,点击开通),您的权益将包括: 1、无广告阅读; 2、免验证复制。 当然,更重要的是长期以来您对百科频道的支持。诚邀您加入MBA智库百科VIP会员,共渡难关,共同见证彼此的成长和进步!
MBA智库百科项目组
2023年8月10日

闽公网安备 35020302032707号

添加收藏

    新建收藏夹

    编辑收藏夹

    20