白盒测试 中的逻辑覆盖有分为很多种,在此对其中比较有代表性的几种覆盖简单总结如下:
覆盖标准 | 概念 | 特点 |
语句覆盖 | 选择足够多的测试数据,使得被测试程序中每一条语句至少执行一次 | 对程序执行逻辑的覆盖很低。 |
判定覆盖(分支覆盖) | 选择足够的测试数据,使得被测试程序中每一个判定表达式至少获得一次“真”值和“假”值。即程序中的每个真假分支至少都执行过一次。 | 判定覆盖虽然把程序所有分支均覆盖到了,但其主要对整个表达式最终取值进行度量,忽略了表达式内部取值。 |
条件覆盖 | 条件覆盖是指选择足够的测试用例,使得运行这些测试用例后,要使每个判断中每个条件的可能取值至少满足一次,但未必能覆盖全部分支 | 只考虑到每个判定语句中的每个表达式,没有考虑到各个条件分支(或者涉及不到全部分支),即不能够满足判定覆盖。 |
判定/条件覆盖 | 设计足够的测试用例,得使判断中每个条件的所有可能取值至少执行一次,同时每个判断的所有可能判断结果至少执行,即要求各个判断的所有可能的条件取值组合至少执行一次。 | 没有考虑单个判定对整体结果的影响,无法发现逻辑错误。 |
条件组合覆盖 | 选择足够的测试用例,使得每个判定中条件的各种可能值的组合都至少出现一次。 | 判定语句较多时,条件组合值比较多。 |
路径覆盖 | 覆盖被测试程序中所有可能的路径。 | 覆盖率最高的一种覆盖技术。 |