1. 定义
黑盒测试 - 不关注内部结构的测试/基于输入输出的测试html
白盒测试 - 基于内部结构的测试函数
白盒测试的关键: 覆盖度post
2. 白盒相关概念
-
语句覆盖 - 设计一套测试 让被测对象中全部语句获得测试覆盖测试
-
断定覆盖 - 设计一套测试 让被测对象中全部断定获得测试覆盖spa
-
条件覆盖 - 设计一套测试 让被测对象中全部条件获得测试覆盖设计
-
路径覆盖 - 设计一套测试 让被测对象中全部路径获得测试覆盖3d
上图中:htm
3. 例题解析
例题1:
解:对象
语句覆盖:blog
- 语句:以上代码中的每一行都是语句。
- 注意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: