我们以下面代码为例:
public static boolean Method(boolean a, boolean b) {int x = 2;int y = -4;if(a)x = y;elsex = -2*x;if(b)y = 0-x;return ((100/(x+y))>= 0);}
语句覆盖 Statement Coverage
当我们要实现100% Statement Coverage,只需以下两个test cases:
分支覆盖 Branch Coverage
为实现100% Branch Coverage,可把每一个”if“视为两个branch(true branch 和 false branch),只要每一个true和false branch都覆盖到,就可视为100% Branch Coverage。
在实现100% Branch Coverage的同时,一定也实现了100% Statement Coverage。我们也可以把上面100% Statement Coverage的两个test cases替换成这里的两个test cases。
路径覆盖 Path Coverage
100% Path Coverage 即所有可能的分支都执行一遍,需要对多个分支进行排列组合,分支的数量成指数级别增加。可以想象成二叉树的形态。
同理,在实现100% Path Coverage的同时,一定也实现了100% Branch Coverage。