1. 语句覆盖(Statement Coverage)
-
定义:确保程序中的每条语句至少执行一次。
-
优点:简单易懂,易于实现。
-
缺点:无法覆盖所有的逻辑路径,不能保证程序的正确性。
2. 判定覆盖(Decision Coverage)
-
定义:确保每个判定的每种可能结果(真/假)都至少执行一次。
-
优点:比语句覆盖更严格,能发现更多的逻辑错误。
-
缺点:可能无法覆盖所有条件的组合。
3. 条件覆盖(Condition Coverage)
-
定义:确保每个条件的所有可能结果(真/假)都至少执行一次。
-
优点:能更细致地测试条件语句,发现更多逻辑错误。
-
缺点:可能无法覆盖所有判定的组合。
4. 判定/条件覆盖(Decision/Condition Coverage)
-
定义:结合了判定覆盖和条件覆盖的要求,确保每个判定的所有可能结果和每个条件的所有可能结果都至少执行一次。
-
优点:比单独的判定覆盖或条件覆盖更全面。
-
缺点:测试用例数量可能较多。
5. 条件组合覆盖(Multiple Condition Coverage)
-
定义:确保每个判定中的条件的各种组合至少出现一次。
-
优点:能全面测试条件组合,发现隐藏的逻辑错误。
-
缺点:测试用例数量可能非常大,执行成本高。