您还未登录! 登录 | 注册 | 帮助  

您的位置: 首页 > 软件测试技术 > 单元测试 > 正文

单元测试之逻辑覆盖率

发表于:2023-02-17 作者:cxqqqq 来源:博客园

评估标准:逻辑覆盖率

一、语句覆盖 :被测的语句/全部的语句

1
2
3
4
5
num = int (input("请输入数字"))
if num > 0:
    num+=1
else:
    num-=1

以上代码片段中,需要执行的语句有3句:

若输入数字2,会执行的语句有2,则语句覆盖率为2/3.

 

二、分支、条件覆盖率:

680
username = input("请输入用户名")
password =  input("请输入密码")
if username== 'admin' and password == '123456':
  print("登录成功")
else:
  print("登录失败")
680

以上代码片段中,有一个if判断,总共2个分支(只计算if判断条件)。

两个条件判断,总的判断条件有4个,username的T或F,password的T或F。

若输入username== 'admin' and password == '123456',则语句覆盖率为1/2,条件覆盖率为2/4.

若输入username== 'ad' and password == '123456',则语句覆盖率为1/2,条件覆盖率为1/4.(因为username和passwor条件判断使用and连接,username为F时,passw则不用在继续判断)

680
username = input("请输入用户名")
password =  input("请输入密码")
if username== 'admin' or password == '123456':
  print("登录成功")
else:
  print("登录失败")
680

以上代码片段,若输入username== 'ad' and password == '123456',则语句覆盖率为1/2,条件覆盖率为2/4.

 

三、分支条件覆盖率:分别计算分支覆盖率和逻辑覆盖率,然后分子和分母分别相加。

四、路径覆盖率:

路径:从开始到结束的过程。

计算方式:执行判断和语句是经过的路径数量 / 总的可执行路径数量。

 

680
a = int (input("请输入数字"))
a = int (input("请输入数字"))
if a > 0 or b<0:
    语句3
elif a == 1 and b == 2:
    语句4
else:
    语句5
680

 

  

 根据以上代码片段,判断逻辑覆盖率

输入a = -1,b=2:

语句覆盖率:3/5

分支覆盖率:2/4

条件覆盖率:FF 2/4+ F 1/4 = 3/8

分支条件覆盖率:2/4+3/8=5/12

路劲覆盖率:1/3