知识卡片

两种覆盖互补

普通读书笔记卡 · 1712.b

内容

输入覆盖从API契约出发,代码覆盖从实现执行路径出发;前者指导测试设计,后者校验测试是否真的触达代码。发散:只追求代码覆盖率,容易测到代码却没测到需求。

参考来源

- 位置:《你真的会写代码吗-2021》第6章《别对我撒谎:通过测试保证可靠性》"6.1.1 测试的覆盖率"(源文件:_epub-src/OEBPS/Text/0016.xhtml) - 结论依据:原文明确"基于输入的覆盖率则忽略了被测程序的内部,只关注其API",而"基于代码的覆盖率……传统上是与白盒测试联系在一起的",并说明"这两种类型的覆盖率是相辅相成的……把基于输入的覆盖率作为设计目标,而把基于代码的覆盖率作为测试计划本身的一种验证形式"。 - 原始内容:基于代码的覆盖率指的是给定测试集至少执行一次的源代码百分比……基于输入的覆盖率则忽略了被测程序的内部,只关注其API……这两种类型的覆盖率是相辅相成的……你将把基于输入的覆盖率作为设计目标,而把基于代码的覆盖率作为测试计划本身的一种验证形式。