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

判定覆盖

用手机看条目

出自 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号