m0_73875986 2024-01-21 15:07 采纳率: 89.5%
浏览 4
已结题

白盒测试的方法与输出值

为什么a,b会=false,c,d会=true?按照原先函数的输出结果不应该是a和b为true,c或d为false吗?

img

img

  • 写回答

2条回答 默认 最新

  • 关注

    你理解错了,图片中的意思用多少组测试用例能够实现语句覆盖、分支覆盖等这几种情况。
    code_converage()函数接受4个参数。当a和b都为真时,输出True,当c和d有一个为真时,输出False。这个输出的具体内容其实可以不用管。
    (1)语句覆盖
    也就是覆盖代码的所有语句,即让两个print函数都执行。(也就是测试用例只要能让两个print输出即可,其他情况不管!!)
    第一个if语句执行的条件是a和b都为真,即,a=true, b=true
    第二个if语句执行的条件是c和d有一个为真,即c=true ,d=true/false(d=true或false都可以),或者 c=false/true,d=true。
    所以用a=true, b=true,c=true, d=false可以覆盖所有的语句(也就是让代码中的所有代码都执行)
    (2)分支覆盖
    也就是能够测试到所有的分值即可(其他情况不管!!code_converage()函数共4个分支,也就是测试用例能覆盖这4个分支即可,不需要考虑所有情况!!)
    a=true, b=true,c=true, d=false这一组,能够覆盖两个if 语句分支
    a=true, b=false,c=false, d=false这一组,能够覆盖两个if语句对应的各自的else分支。
    (3)条件覆盖
    这个其实用分支覆盖的测试用例也可以,只要能覆盖所有的条件即可(测试用例不唯一,只要能覆盖所有条件即可)
    a=true, b=true,c=true, d=true这一组,能够覆盖两个if条件
    a=false, b=false,c=false, d=false这一组,能够覆盖两个if语句对应的各自的else条件。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 1月30日
  • 已采纳回答 1月22日
  • 创建了问题 1月21日

悬赏问题

  • ¥15 35114 SVAC视频验签的问题
  • ¥15 impedancepy
  • ¥15 在虚拟机环境下完成以下,要求截图!
  • ¥15 求往届大挑得奖作品(ppt…)
  • ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
  • ¥50 浦育平台scratch图形化编程
  • ¥20 求这个的原理图 只要原理图
  • ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
  • ¥20 微信的店铺小程序如何修改背景图
  • ¥15 UE5.1局部变量对蓝图不可见