单元测试之如何实现逻辑覆盖率?

发表于:2022-12-22 09:21

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:cxqqqq    来源:博客园

  评估标准:逻辑覆盖率
  一、语句覆盖 :被测的语句/全部的语句
  num = int (input("请输入数字"))
  if num > 0:
      num+=1
  else:
      num-=1
  以上代码片段中,需要执行的语句有3句:
  若输入数字2,会执行的语句有2,则语句覆盖率为2/3。
  二、分支、条件覆盖率:
  username = input("请输入用户名")
  password =  input("请输入密码")
  if username== 'admin' and password == '123456':
    print("登录成功")
  else:
    print("登录失败")
  以上代码片段中,有一个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则不用在继续判断)
  username = input("请输入用户名")
  password =  input("请输入密码")
  if username== 'admin' or password == '123456':
    print("登录成功")
  else:
    print("登录失败")
  以上代码片段,若输入username== 'ad' and password == '123456',则语句覆盖率为1/2,条件覆盖率为2/4。
  三、分支条件覆盖率:分别计算分支覆盖率和逻辑覆盖率,然后分子和分母分别相加。
  四、路径覆盖率:
  路径:从开始到结束的过程。
  计算方式:执行判断和语句是经过的路径数量 / 总的可执行路径数量。
  a = int (input("请输入数字"))
  a = int (input("请输入数字"))
  if a > 0 or b<0:
      语句3
  elif a == 1 and b == 2:
      语句4
  else:
      语句5
  根据以上代码片段,判断逻辑覆盖率:
  输入a = -1,b=2:
  语句覆盖率:3/5
  分支覆盖率:2/4
  条件覆盖率:FF 2/4+ F 1/4 = 3/8
  分支条件覆盖率:2/4+3/8=5/12
  路劲覆盖率:1/3
  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号