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