详述白盒测试的逻辑覆盖的路径覆盖及其优缺点

定义:

运行所测程序,要覆盖程序中所有可能的路径。

与其他覆盖的关系:

可以对程序进行彻底的测试,比语句覆盖、条件覆盖、判定覆盖、条件判定覆盖及条件组合覆盖的覆盖面都广。

路径覆盖率:

路径覆盖率=至少被执行过一次的路径数/总的路径数
eg:代码案例里面共有4条路径,设计测试用例执行了3条路径,则路径覆盖率就为3/4=75%。

测试用例:

以下图为例:
详述白盒测试的逻辑覆盖的路径覆盖及其优缺点
依照上图:我们要想覆盖率为百分之百
判定条件如下:

  1. if(x>0&&y>0)判定:记为P1
  2. if(magic<0)判定:记为P2
  3. x>0:记为C1
  4. y>0:记为C2
  5. magic<0:记为C3
    测试用例设计:

详述白盒测试的逻辑覆盖的路径覆盖及其优缺点
从上可知:执行了a-b-d-f, a-c-d-f, a-b-e-f, a-c-e-f四条路径路径,路径覆盖率百分之百。

优缺点:

优点:路径覆盖面非常之广。
缺点:由于路径覆盖需要对所有可能的路径进行测试(包括循环、条件组合、分支选择等),那么需要设计大量、复杂的测试用例,使得工作量呈指数级增长。而在有些情况下,一些执行路径是不可能被执行的。

参考 :https://www.bilibili.com/video/BV1wE411379A?from=search&seid=13283429216155494082