Differential Coverage for Debugging
a year ago
- #testing
- #debugging
- #code-coverage
- 差分覆盖率通过比较通过测试与失败测试的代码覆盖率,定位问题代码段
- 该技术首先生成通过测试和失败测试的覆盖率图谱,然后进行差异比对以发现独特的代码路径
- 示例中通过高亮失败测试独有的代码,成功识别出`natmul.go`文件中的缺陷
- 差分覆盖率效率极高,能从数千行代码中精确定位相关代码段
- 该方法虽非万全之策,但对由失败触发的缺陷尤为有效
- 即使是单一失败测试的基础覆盖率图谱,也能通过显示执行路径辅助调试
- 该技术同样适用于分析通过测试,例如识别`net/http`中SOCKS5代理实现等特定功能