白盒测试方法详解
- 测试流程
- 语句覆盖
- 判定覆盖
- 条件覆盖
- 判定条件覆盖
- 条件组合覆盖
- 路径覆盖
测试流程
- 测试计划:根据需求说明书,制定测试的计划、进度
- 测试设计:按照软件的需求、规格,按照规范的方法对软件进行结构划分以及设计合适的测试用例
- 测试执行:输入测试用例,记录测试结果
- 测试总结:观察测试结果,与预期结果对比,找到软件的bug
语句覆盖
语句覆盖很好理解了,就是设计若干个测试用例,保证我们的每一行有效代码都能够被执行至少一次就可以了。
判定覆盖
又称分支覆盖,对每个有分支的语句,如 if else 等,对每种情况的所产生的分支都要走一遍。
条件覆盖
一开始看的时候我有点懵,看了几个实例才清楚,条件覆盖,即我们设计的所有测试用例,要包含了条件语句的每个条件的所有情况,如
此时,所有条件语句中有这么多种情况:
我们的所有测试用例,要把上述的所有情况包含进去,如:
到这里我有点迷茫,似乎语句覆盖、判定覆盖、条件覆盖经常相同,找不出具体的执行差别,但这其实不重要,因为我们的测试点不同,测试方法针对的对象不一样,尽管整体上的测试流程没有明显的区别,但针对不同点测试时产生的效果明显不一样。
判定条件覆盖
因为满足了多有条件的覆盖,并不能保证每个分支都走一遍,如:
可以看出测试用例符合条件覆盖但只执行了if中true的分支,所以我们要设计即满足条件覆盖,又满足判定覆盖的用例:
条件组合覆盖
每个单条件中的true or false 都与别的每个单条件的true or false 组合过,如:
此时有:
3对情况,所以有2×2×2=8种组合,即:
路径覆盖
我们知道我们的程序可以通过点和线用流程图表示出来,流程图中每个判定节点又会产生许多分支,这就导致产生了许多程序的执行路径,所以我们设计的测试用例就需要满足流程图中每个路径都走一遍,环路至少走一遍
我们设E为边数,N为节点数,P为判断节点数
则定义路径复杂度V(G)为:
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!