51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 950|回复: 1
打印 上一主题 下一主题

[原创] 如何实现逻辑覆盖率之单元测试?

[复制链接]
  • TA的每日心情
    无聊
    前天 09:05
  • 签到天数: 1050 天

    连续签到: 1 天

    [LV.10]测试总司令

    跳转到指定楼层
    1#
    发表于 2022-12-22 13:29:24 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
    评估标准:逻辑覆盖率
      一、语句覆盖 :被测的语句/全部的语句
      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

    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-23 07:20 , Processed in 0.067346 second(s), 23 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表