51Testing软件测试论坛

标题: 如何实现逻辑覆盖率之单元测试? [打印本页]

作者: lsekfe    时间: 2022-12-22 13:29
标题: 如何实现逻辑覆盖率之单元测试?
评估标准:逻辑覆盖率
  一、语句覆盖 :被测的语句/全部的语句
  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


作者: oliver.tang    时间: 2023-3-7 13:41
学习




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2