白盒覆盖准则与代码覆盖

共 19 题
#

1. 语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、MC/DC、路径覆盖的强弱关系与适用场景?

A 语句覆盖
B 无覆盖
C 路径覆盖
D 条件覆盖 ✓ 正确答案
#

2. MC/DC 在航空航天(DO-178C)等安全关键领域为何是强制要求?如何为一个复合条件设计最小 MC/DC 用例集?

A 与判定无关
B 独立影响判定结果 ✓ 正确答案
C 只被覆盖一次
D 必须为真
#

3. 条件覆盖与判定覆盖差异的代码示例,复合条件中条件覆盖为何无法保证判定覆盖

A 覆盖所有条件真假时,判定分支可能仍未被覆盖 ✓ 正确答案
B 条件覆盖与判定覆盖等价
C 条件覆盖比判定覆盖更强
D 条件覆盖不需要执行代码
#

4. 基本路径法与环复杂度 V(G) 如何指导最小测试用例集设计?

A 边数 + 节点数
B 判定节点数 + 1 ✓ 正确答案
C 语句数
D 函数数
#

5. 白盒覆盖工具(JaCoCo/Coverage.py/Istanbul)的插桩原理与增量覆盖率统计方法?

A 源码插桩
B 字节码插桩,无需修改源码 ✓ 正确答案
C 运行时追踪
D 手工插桩
#

6. MC/DC 的用例设计方法,每个条件独立影响判定结果如何构造用例?

A 真(T),使 A 能独立决定结果 ✓ 正确答案
B 假(F)
C 任意
D 与 A 相同
#

7. 行覆盖率与分支覆盖率的差距,何时必须以分支/条件覆盖为目标(如安全关键软件)?

A 无缺陷
B 已执行行的计算错误
C 未执行分支中的错误处理逻辑 ✓ 正确答案
D 已覆盖分支的语句
#

8. 覆盖率的收集粒度,行/分支/函数/类级覆盖率在测试报告中的解读与门禁选择

A 只用行覆盖
B 按风险分层,结合增量覆盖与分支覆盖,而非单一行覆盖指标 ✓ 正确答案
C 只用类覆盖
D 覆盖率越高越好不限成本
#

9. 覆盖率与缺陷密度的关系研究结论,如何避免覆盖率通胀与断言空洞

A 缺陷过少
B 断言过多
C 覆盖率过低
D 代码被执行但缺少有效断言,覆盖率虚高但未验证正确行为 ✓ 正确答案
#

10. 未覆盖分支的反向分析,如何从覆盖率报告中的未覆盖分支与条件反推缺失场景,并区分可达未覆盖与死代码?

A 标记为死代码
B 分析其逻辑条件,设计缺失场景补测 ✓ 正确答案
C 忽略
D 直接删除
#

11. 覆盖率与用例价值,如何用历史覆盖率数据评估用例是否冗余,覆盖率低是否一定代表测试无效?

A 覆盖率分布更关键,若高风险区域被覆盖则测试可能有效 ✓ 正确答案
B 覆盖率与质量完全无关
C 覆盖率越高越无效
D 只需看覆盖率数字
#

12. 循环测试(简单循环/嵌套循环/串接循环)的边界取值策略?

A 只测内层
B 每层都测所有边界
C 只测外层
D 只让一层循环做全面边界测试,其余层取最小/典型值 ✓ 正确答案
#

13. 覆盖率数据在 CI 门禁中的合理阈值与"覆盖率通胀"(测试断言空洞)如何避免?

A 无限提高行覆盖阈值
B 用变异测试验证断言有效性,并设分支/增量覆盖门禁 ✓ 正确答案
C 只设行覆盖门禁
D 不设门禁
#

14. 覆盖率驱动的测试,补漏与优先级?

A 代码行数
B 风险、变更频率、历史缺陷密度 ✓ 正确答案
C 覆盖率数字均摊
D 随机
#

15. 判定/条件覆盖(Decision/Condition Coverage)在单元测试框架中的落地,JaCoCo 的分支覆盖统计口径与实际含义?

A 路径覆盖
B 严格的原子条件覆盖
C MC/DC
D 判定覆盖(每个判定的分支是否执行) ✓ 正确答案
#

16. 路径覆盖为何难以达成,如何用基本路径法与环复杂度 V(G) 近似覆盖全部独立路径?

A 覆盖全部无限路径
B 用 V(G) 个用例覆盖所有线性独立路径 ✓ 正确答案
C 只覆盖一条路径
D 与 V(G) 无关
#

17. 覆盖率在遗留代码补测中的应用,如何优先补测高变更频率、高缺陷密度的模块,而非追求全量覆盖?

A 代码行数
B 全量覆盖平均
C 变更频率、缺陷密度、业务影响 ✓ 正确答案
D 随机
#

18. 覆盖率的收集对测试执行性能的影响,插桩开销、采样与增量收集如何平衡?

A 无限增加插桩点 ✓ 正确答案
B 采样收集
C 增量收集
D 按需开启插桩
#

19. 需求覆盖率与代码覆盖率的互补,代码覆盖率无法反映的功能级漏测如何用需求追踪矩阵补充,两类覆盖如何合并为发布依据?

A 与发布无关
B 替代代码覆盖率
C 建立需求↔用例↔代码映射,暴露功能级漏测,计算需求覆盖率 ✓ 正确答案
D 只用于单元测试