我正在准备一些关于单元测试的教育/培训材料,并想仔细检查一些词汇。
在我使用的示例中,开发人员已经为所有可能的输入测试了Facade ,但没有测试“背后”的更细粒度的单元。
仍然有人会说测试具有“全面覆盖”——因为它们涵盖了整个输入范围?我觉得“完全覆盖”通常用于表示代码/单元的覆盖......但是在测试所有可能的输入时肯定会有完整的东西。
我要找的另一个词是什么?
我正在准备一些关于单元测试的教育/培训材料,并想仔细检查一些词汇。
在我使用的示例中,开发人员已经为所有可能的输入测试了Facade ,但没有测试“背后”的更细粒度的单元。
仍然有人会说测试具有“全面覆盖”——因为它们涵盖了整个输入范围?我觉得“完全覆盖”通常用于表示代码/单元的覆盖......但是在测试所有可能的输入时肯定会有完整的东西。
我要找的另一个词是什么?
如果所有可能的输入都没有给你 100% 的代码覆盖率,那么你有 100% 的场景覆盖率,但不是完整的代码覆盖率。
关于这一点,如果你有 100% 的场景覆盖率而没有完整的代码覆盖率,那么你就有了死代码,你应该认真思考它为什么存在。
如果您决定使用“完全覆盖”,那么您可能会遇到麻烦,因为大多数谈论覆盖率的文献(实际上,测量覆盖率的工具)都谈论在所有测试之后在被测代码中执行的代码行正在运行。
您提出的测试用例将覆盖函数的域(假设函数至少是一对一的,它们也将覆盖该范围)。
它是所涉及类的完整代码覆盖,但显然不是完整的系统源代码。工具可以在不同的层次上给出这个。
请注意,它不能保证代码是正确的,因为它可能错过了需要完全处理的场景(在测试和功能代码中)。此外,测试可能会触发所有代码路径并且无法正确断言。