Go 进阶 · 分布式爬虫实战
郑建勋
Go 语言技术专家,《Go 语言底层原理剖析》作者
15839 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 58 讲
Go 进阶 · 分布式爬虫实战
15
15
1.0x
00:00/00:00
登录|注册

37|工具背后的工具:从代码覆盖率到模糊测试

你好,我是郑建勋。
开始今天的学习之前,我想先问你一个问题,你认为什么样的代码才是高质量的?
代码覆盖率,也就是有效代码的比例为我们提供了一种重要的衡量维度。
代码覆盖率指的是,在测试时被执行的源代码占全部源代码的比例。测试代码覆盖率可以衡量软件的质量,我们甚至还可以用它来识别无效的代码,检验测试用例的有效性。
如果要用单元测试函数测试代码的覆盖率,Go1.2 之后,我们可以用 cover 工具来实现。

cover的基本用法

go test -cover 能够用测试函数统计出源代码的覆盖率,我们在项目的 sqldb 库中测试一下代码的覆盖率,输出结果为 83.7%。它反映的是整个 package 中所有代码的覆盖率。
» go test -cover jackson@bogon
PASS
coverage: 83.7% of statements
ok github.com/dreamerjackson/crawler/sqldb 0.426s
另外,我们还可以收集覆盖率,并进行可视化的展示。具体做法是先将收集到覆盖率的样本文件输出到 coverage.out。
go test -coverprofile=coverage.out
接着使用 go tool cover 可视化分析代码覆盖率信息。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

通过本文,读者可以了解如何使用代码覆盖率和模糊测试来衡量和提高代码质量。文章首先介绍了使用`go test -cover`命令来统计源代码的覆盖率,并通过`go tool cover`工具进行可视化展示。然后,作者讨论了在测试环境下如何实现代码覆盖率的测试,以及cover工具的工作原理,包括对代码进行打桩的原理和生成`coverprofile`协议文件的过程。接着,文章详细介绍了模糊测试的原理和实践方法,包括模糊测试的基本概念、样本数据的添加、执行目标测试函数等。通过具体的操作步骤和代码示例,读者可以快速了解并掌握相关技术特点。模糊测试的重点在于通过随机生成输入值来实现更充分的测试,可以测试到开发者可能忽视的极端场景,有助于查找代码中的错误和安全漏洞。最后,文章提出了一个思考题,引导读者通过模糊测试的原理来思考对优秀工程师的启发。整体而言,本文内容丰富,涵盖了代码覆盖率和模糊测试的实践方法,对于读者快速了解和掌握相关技术具有一定的参考价值。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Go 进阶 · 分布式爬虫实战》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(2)

  • 最新
  • 精选
  • 徐石头
    启发:不测没bug,测测有bug,少测少bug,多测多bug
    2023-01-11归属地:湖南
    3
  • 牙小木
    我都忘了这是啥主题了
    2023-08-19归属地:北京
收起评论
显示
设置
留言
2
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部