覆盖范围:分支和路径覆盖测试用例

时间:2018-03-29 18:48:55

标签: java junit4 white-box-testing

我需要在一个方法中实现Division by Zero操作 (1)每个达到100%路径覆盖率的测试套件都会显示故障;(2)可以创建一个测试套件,实现100%的分支覆盖并且不会显示故障。

由于除零是非常简单的操作,我想知道这种方法的实现,这样可以满足这两个要求。目前,我无法做到这一点,因为我的分支和路径覆盖测试用例都揭示了一个错误(ArithmeticException)并且是相同的。

这是我目前的代码,但这是错误的。

0x204d63

由于

2 个答案:

答案 0 :(得分:0)

首先检查除数是否等于0并返回或抛出异常。当你知道这是一个真正的可能性时,等待得到0除以,这不是一个好习惯。

答案 1 :(得分:0)

好吧,我猜这只是一种练习,所以可以做一些非常愚蠢的事情,像这样:

double method1(int m, int n) {
     double p;
     if (n >= 0) {
         p = m / n;
     } else {
         p = m / n;
     }

     if (n > 0) {
         p = m / n;
     } else {
         p = m / n;
     }

     return p;
}

以这种方式,如果您具有完整的路径覆盖范围,那么您必须已经覆盖了 在第一种情况下进入n >= 0分支,在第二种情况下进入n <= 0分支。因此,每个100%路径覆盖套件都必须在某些测试用例中使用n = 0,并像在代码中一样抛出ArithmeticException,从而揭示该方法的错误。

另一方面,您只需要说n = 1n = -1测试用例即可达到完整的分支覆盖范围(公认的是哑测试套件),但是您完全错过了零除法部分。但是,我没有对此进行测试。