ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

语句覆盖、判定覆盖、条件覆盖 - 白盒笔试题解析

2019-09-20 13:03:01  阅读:334  来源: 互联网

标签:语句 所有 覆盖 白盒 笔试 判定 测试 例题


1. 定义

黑盒测试 - 不关注内部结构的测试/基于输入输出的测试

白盒测试 - 基于内部结构的测试

白盒测试的关键覆盖度

 

2. 白盒相关概念

  • 语句覆盖 - 设计一套测试 让被测对象中所有语句得到测试覆盖

  • 判定覆盖 - 设计一套测试 让被测对象中所有判定得到测试覆盖

  • 条件覆盖 - 设计一套测试 让被测对象中所有条件得到测试覆盖

  • 路径覆盖 - 设计一套测试 让被测对象中所有路径得到测试覆盖

 

 

上图中:

 

 

3. 例题解析

例题1:

 

解:

语句覆盖:

  • 语句:以上代码中的每一行都是语句。
  • 注意THEN后面所接语句,是有可能不执行的。
  • 语句覆盖即要设计出测试数据,使得所有语句都被执行。
  • 要满足以上条件,只要让两个IF判定判定为”真“即可。

答:

 

分支覆盖:

  • 分支覆盖是判定覆盖的别名。因为判定可以在程序中创造分支,就像一条分叉路口,让程序的执行走向不同方向
  • 他的取值为布尔类型,只有两个可能取值:”True“ 和 ”False“(真和假)。
  • 判定覆盖,即让所有的判定都取到所有可能取值,即每个判定都取到”真“、”假“各一次
  • 本题中有两个判定,即”IF“语句,则要取测试数据,让两个IF都取到真假最少各一次。

答:

 

 

例题2:

 

  解:

  • 题中while循环语句构成了本题代码的路径分支
  • 判定解读:当变量i不大于25时,做一件事;当i大于25时,做另一件事。这个判定就是”i是否大于25“.
  • 效力最高的满足判定覆盖,即在最小的循环执行次数条件下,使判定取到”真“、”假“各一次
  • 取 i = 25的话,第一次循环,while判定为,循环内部逻辑执行1次。执行1次之后i ++, i的值变为26,while判定为,循环跳出。

 

答:

 

例题3:

 

 

 

解:

  • 题中的三个if和一个else组成了所有判定
  • 要满足判定覆盖,需要让所有判定取到”真“、”假“各一次
  • 直观的想法,取四个值: n = 0 , n = 1, n =2 , n = -1就可以让所有判定都被覆盖到真假所有可能。
  • 但是注意第三个判定后的return语句,返回调用了函数本身。
  • 此即所谓的“递归” ,代入n = 2这样的数据进入这个函数进行运算,return语句演变成以下形式:return fib(1) + fib(0) + fib(-1),相当于取n=1,0,-1各一次

答:

 

 

4. 练习题

最后留几个练习题可以自己尝试解答,欢迎留言写下答案:

1:

 

 

2:

 

 

 

 

 

标签:语句,所有,覆盖,白盒,笔试,判定,测试,例题
来源: https://www.cnblogs.com/dayu2019/p/11555447.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有