逻辑覆盖测试方法及其优缺点
(2016-02-26 22:04:33)
标签:
it |
分类: 软件测试 |
逻辑覆盖方法有以下6种:
语句覆盖:设计若干测试用例,运行被测程序,使程序中每个可执行语句至少执行一次。
【优点】:可以很直观地从源代码得到测试用例,无须细分每条判定表达式。
【缺点】:由于这种测试方法仅仅针对程序逻辑中显式存在的语句,但对于隐藏的条件是无法测试的。如在多分支的逻辑运算中无法全面的考虑。语句覆盖是最弱的逻辑覆盖。
判定覆盖(即分支覆盖):设计若干测试用例,运行被测程序,使得程序中每个分支的取真值和取假值至少一次,即判断真假值均曾被满足。
【优点】:判定覆盖具有比语句覆盖更强的测试能力。同样判定覆盖也具有和语句覆盖一样的简单性,无须细分每个判定就可以得到测试用例。
【缺点】:往往大部分的判定语句是由多个逻辑条件组合而成,若仅仅判断其整个最终结果,而忽略每个条件的取值情况,必然会遗漏部分测试路径。判定覆盖仍是弱的逻辑覆盖。
条件覆盖:设计若干测试用例,执行被测程序以后要使每个判断中每个条件的可能取值至少满足一次。
【优点】:增加了对条件判定情况的测试,增加了测试路径。
【缺点】:条件覆盖不一定包含判定覆盖。
判定-条件覆盖:设计足够的测试用例,使得判断条件中的所有条件可能至少执行一次取值,同时,所有判断的可能结果至少执行一次。
【优点】:能同时满足判定、条件两种覆盖标准。
【缺点】:判定/条件覆盖准则的缺点是未考虑条件的组合情况。
条件组合覆盖:设计足够的测试用例,使得所有可能的条件取值组合至少执行一次。
【优点】:条件组合覆盖准则满足判定覆盖、条件覆盖和判定/条件覆盖准则。
【缺点】:线性地增加了测试用例的数量。
路径覆盖:设计所有的测试用例,来覆盖程序中的所有可能的执行路径。
【优点】:这种测试方法可以对程序进行彻底的测试,比前面五种的覆盖面都广。
【缺点】:需要设计大量、复杂的测试用例,使得工作量呈指数级增长,不见得把所有的条件组合都覆盖。