如何确定分支覆盖范围(来自控制流图)?

时间:2012-06-17 11:18:11

标签: java testing code-coverage

我有以下代码(如果它是一个好的方法无关紧要):

public boolean adjacent(Cell otherCell) {

  boolean result;
  boolean xdiffersone = Math.abs(getX() - otherCell.getX()) == 1;
  boolean ydiffersone = Math.abs(getY() - otherCell.getY()) == 1;

  if((xdiffersone && !ydiffersone) || (!xdiffersone && ydiffersone)) {

    result = true;
  }
  else {
    result = false;
  }

  return result;
}

此方法的控制流程图:

control flow graph

我知道语句覆盖意味着控制流图中的所有节点是否已被执行/访问过。但究竟什么是分支机构覆盖?如何从控制流图(或代码)中计算/查看?

2 个答案:

答案 0 :(得分:1)

语句覆盖范围与图节点有关。分支覆盖范围与图边缘有关。

答案 1 :(得分:1)

尝试使用Emma java代码覆盖率工具。有eclipse的插件,maven和独立产品名为Sonar,内部使用Emma并检查代码覆盖率。所以你可以直接或间接使用Emma。