判定覆盖(Decision coverage)

比“语句覆盖”稍强的覆盖标准是“判定覆盖”(或称分支覆盖)标准含义:执行足够的测试用例,使得程序中的每一个分支至少都通过一次。

对图6.4的程序,如果设计两个例子,使它们能通过路径aceabd,或者通过路径acdabe,就可达到“判定覆盖”标准,为此,可以选择输入数据为:

A=3B=0X=1(沿路径acd执行);       A=2B=1X=3(沿路径abe执行)

程序中含有判定的语句包括IF-THEN-ELSEDO-WHILEREPEAT-UNTIL等,除了双值的判定语句外,还有多值的判定语句,如PASCAL中的CASE语句、FORTRAN中带有三个分支的IF语句等。所以“判定覆盖”更一般的含义是:使得每一个判定获得每一种可能的结果。

“判定覆盖”比“语句覆盖”严格,因为如果每个分支都执行过了,则每个语句也就执行过了。但是,“判定覆盖”还是很不够的,例如上面两个测试用例未能检查沿着路径abd执行时,X的值是否保持不变。



  • 8
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在软件工程中,判定覆盖是一种测试技术,它可以帮助开发人员检查软件的每个功能是否都按预期正确工作。它的基本原理是,开发人员需要测试软件的每个独立的部分,确保它们都能够正确执行预期的任务。举个例子,如果某个软件有一个登录界面,开发人员就必须测试该界面,确保用户可以正确登录,而不会出现任何错误。 ### 回答2: 在软件工程中,判定覆盖(Decision Coverage)是一种测试方法,用于检查在程序执行过程中是否覆盖了所有的可能判定路径。 判定覆盖是基于程序中的条件语句(例如if语句)和循环语句(例如for和while循环)进行的。通过应用判定覆盖测试人员可以确保程序在不同情况下的执行分支都被覆盖到,从而提高软件的质量和可靠性。 举个例子来说,假设有一个简单的程序,用于计算两个整数之间的最大值。程序中含有一个if语句,判断哪个整数更大,并将结果输出。 if (a > b) { max = a; } else { max = b; } 如果我们要进行判定覆盖测试,需要覆盖到if语句的两个分支:a>b和a<=b。我们可以设计以下两组测试用例来覆盖所有的判定路径: 测试用例1: a = 10, b = 5 预期输出:max = 10 测试用例2: a = 3, b = 8 预期输出:max = 8 通过以上两组测试用例,我们即可覆盖到了所有判定路径,达到了判定覆盖的要求。 通过判定覆盖测试方法,我们能够验证程序在不同判定路径上的行为是否符合预期,帮助我们发现潜在的错误和缺陷。同时,判定覆盖也可以提供一定程度的测试覆盖率度量,让我们了解测试的完整程度和有效性。 总之,判定覆盖是一种有效的测试方法,在软件工程中广泛应用。通过设计合适的测试用例,我们能够检查程序在各种情况下的执行路径是否完备,从而提高软件的可靠性和质量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值