判定条件覆盖法

本文详细介绍了判定条件覆盖法,这是一种软件测试方法,旨在确保每个判定的真假分支以及每个条件的真值和假值至少执行一次。通过示例代码和测试用例设计,展示了如何实现100%的判定条件覆盖率。该方法虽然全面,但可能无法完全暴露逻辑错误。
摘要由CSDN通过智能技术生成

判定条件覆盖法


一、什么是判定条件覆盖

判定条件覆盖:判定条件覆盖是指设计若干个测试用例,运行被测程序,使得程序中每个判定本身的判定(真假)分支执行一次,然后,程序中每个判定条件中的逻辑条件至少取一次真值和假值。
假如 if(x>0 && y>0) 就要 if表达式的真假值各取一次并且x和y各取一次真值和假值。

判定条件覆盖率= 被执行的条件表达式(真假)和条件(真假)总数 可执行的条件条件表达式(真假)和条件(真假)总数 \frac{被执行的条件表达式(真假)和条件(真假)总数}{可执行的条件条件表达式(真假)和条件(真假)总数} 可执行的条件条件表达式(真假)和条件(真假)总数被执行的条件表达式(真假)和条件(真假)总数x100%

二、要执行的语句代码

代码流程图如下(示例):在这里插入图片描述

代码如下(示例):

public static void main(String[] args) {
		// TODO Auto-generated method stub
		int x,y,Number;
		Scanner sc=new Scanner(System.in);
		System.out.println("请输入x,y,Number,用空格隔开");
		x=sc.nextInt();
		y=sc.nextInt();
		Number=sc.nextInt();
		if(x>0 && y>0) {
			System.out.println("Hello1");
		}else{
			System.out.println("Hello2");
		}
		if(Number < 0) {
			System.out.println("Hello3");
		}
		System.out.println("Hello4");
	}



三、设计测试用例

1.测试用例数据

根据以上代码定义:
把第一个if语句(x>0 && y>0)定义为test1
把第二个if语句(Number < 0)定义为test2
把x>0定义为p1
把y>0定义为p2
把Number<0定义为p3
结果为真就为下表就填T为假就填F
设计测试用例:
在这里插入图片描述

2.执行测试用例

在这里插入图片描述
在这里插入图片描述

这里我们看到我们每个判定表达式(真假)和判定表达式条件(真假)都执行了一遍,达到了判定条件覆盖的要求
判定条件覆盖率= 被执行的条件表达式(真假)和条件(真假)总数 可执行的条件条件表达式(真假)和条件(真假)总数 \frac{被执行的条件表达式(真假)和条件(真假)总数}{可执行的条件条件表达式(真假)和条件(真假)总数} 可执行的条件条件表达式(真假)和条件(真假)总数被执行的条件表达式(真假)和条件(真假)总数x100%= 10 10 \frac{10}{10} 1010x100%=100%

四、判定条件覆盖法的总结

判定条件覆盖一定能满足语句覆盖,判定覆盖,和条件覆盖,所以,条件判定覆盖是语句覆盖、条件覆盖、判定覆盖及条件判定覆盖中最全面的覆盖。但是它一样难以发现运算中的逻辑错误关系。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值