一、背景
分析未覆盖部分的代码,从而反推测试用例设计场景是否覆盖充分,没有覆盖到的代码是否存在设计的盲点,以便后续补充测试场景。
代码覆盖率高不一定能说明测试质量就一定高,但是反过来看,代码覆盖率低的,测试质量就一定是比较薄弱的(个人认为:低于60%),可以作为定量自我审视测试是否充分的重要工具之一。
二、技术选型
三、goc介绍
goc github: https://github.com/qiniu/goc
简介:goc 是专为 Go 语言打造的一个综合覆盖率收集系统,尤其适合复杂的测试场景,比如系统测试时的代码覆盖率收集以及精准测试。
架构设计:
四、工具安装
goc安装
# Mac/AMD64
curl -s https://api.github.com/repos/qiniu/goc/releases/latest | grep "browser_download_url.*-darwin-amd64.tar.gz" | cut -d : -f 2,3 | tr -d \" | xargs -n 1 curl -L | tar -zx && chmod +x goc && mv goc /usr/local/bin
gocov 和 gocov-html安装,生成覆盖率报告
go install github.com/axw/gocov/gocov@latest
go install github.com/matm/gocov-html/cmd/gocov-html@latest
五、本地项目代码覆盖率统计
项目github:simple-go-server
步骤1:复制项目代码到本地
步骤2:启动goc注册中心服务
goc server
步骤3:使用"goc build"编译项目
goc build
步骤4:运行项目
./simple-go-server
步骤5:执行测试用例
步骤6:收集覆盖率
goc profile -o temp.cov
步骤7:生成覆盖率报告
gocov convert temp.cov |gocov-html >temp.html
覆盖率报告截图: