37|工具背后的工具:从代码覆盖率到模糊测试
郑建勋
你好,我是郑建勋。
开始今天的学习之前,我想先问你一个问题,你认为什么样的代码才是高质量的?
代码覆盖率,也就是有效代码的比例为我们提供了一种重要的衡量维度。
代码覆盖率指的是,在测试时被执行的源代码占全部源代码的比例。测试代码覆盖率可以衡量软件的质量,我们甚至还可以用它来识别无效的代码,检验测试用例的有效性。
如果要用单元测试函数测试代码的覆盖率,Go1.2 之后,我们可以用 cover 工具来实现。
cover的基本用法
go test -cover 能够用测试函数统计出源代码的覆盖率,我们在项目的 sqldb 库中测试一下代码的覆盖率,输出结果为 83.7%。它反映的是整个 package 中所有代码的覆盖率。
另外,我们还可以收集覆盖率,并进行可视化的展示。具体做法是先将收集到覆盖率的样本文件输出到 coverage.out。
接着使用 go tool cover 可视化分析代码覆盖率信息。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
通过本文,读者可以了解如何使用代码覆盖率和模糊测试来衡量和提高代码质量。文章首先介绍了使用`go test -cover`命令来统计源代码的覆盖率,并通过`go tool cover`工具进行可视化展示。然后,作者讨论了在测试环境下如何实现代码覆盖率的测试,以及cover工具的工作原理,包括对代码进行打桩的原理和生成`coverprofile`协议文件的过程。接着,文章详细介绍了模糊测试的原理和实践方法,包括模糊测试的基本概念、样本数据的添加、执行目标测试函数等。通过具体的操作步骤和代码示例,读者可以快速了解并掌握相关技术特点。模糊测试的重点在于通过随机生成输入值来实现更充分的测试,可以测试到开发者可能忽视的极端场景,有助于查找代码中的错误和安全漏洞。最后,文章提出了一个思考题,引导读者通过模糊测试的原理来思考对优秀工程师的启发。整体而言,本文内容丰富,涵盖了代码覆盖率和模糊测试的实践方法,对于读者快速了解和掌握相关技术具有一定的参考价值。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Go 进阶 · 分布式爬虫实战》,新⼈⾸单¥68
《Go 进阶 · 分布式爬虫实战》,新⼈⾸单¥68
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(2)
- 最新
- 精选
- 徐石头启发:不测没bug,测测有bug,少测少bug,多测多bug2023-01-11归属地:湖南3
- 牙小木我都忘了这是啥主题了2023-08-19归属地:北京
收起评论