推荐答案
测试一下
题目
当模块的代码覆盖率达到100%时,下列说法错误的是
A.并不能确保验证工作已经完成
B.可确认各类用例的激励构造已经完备
C.可确认各种边界点的测试已经足够充分
D.可确认功能验证充分
参考答案与知识点
参考答案
正确选项:D。代码覆盖率(包括行覆盖、分支覆盖、条件覆盖、状态机覆盖等)达到100%只能说明设计代码中的所有被统计点都被至少执行了一次,但无法保证功能验证的完备性。A正确:验证工作还包括功能覆盖率、断言覆盖、时序检查、跨时钟域检查等,代码覆盖率只是其中一项指标。B错误:激励构造的完备性需要覆盖所有功能场景、边界条件、随机约束等,仅靠代码覆盖率无法判定用例是否完备。C错误:边界点通常指输入信号边值、状态机跳转边沿、FIFO满空等,代码覆盖可能因代码结构不包含显式边界而漏测,如if(a > 0)分支覆盖不能保证a=0或a=1的测试。D错误:功能验证是否充分必须依赖功能覆盖模型(如覆盖率组、交叉覆盖、转换覆盖等)以及断言正确性,代码覆盖完全不能代表功能正确。易错点:混淆代码覆盖率与功能覆盖率,认为代码覆盖100%等于验证充分。实际中代码覆盖率高可能因冗余代码或低质量激励导致,且无法覆盖未实现的逻辑。
涉及知识点
- 代码覆盖率定义与类型
- 代码覆盖率与功能覆盖率的区别
- 验证完备性指标
- 覆盖率的局限性
- 激励完备性的判断方法