一只往上爬的蜗牛

一只往上爬的蜗牛

一、背景

分析未覆盖部分的代码,从而反推测试用例设计场景是否覆盖充分,没有覆盖到的代码是否存在设计的盲点,以便后续补充测试场景。
代码覆盖率高不一定能说明测试质量就一定高,但是反过来看,代码覆盖率低的,测试质量就一定是比较薄弱的(个人认为:低于60%),可以作为定量自我审视测试是否充分的重要工具之一。

二、技术选型

三、goc介绍

goc github: https://github.com/qiniu/goc

简介:goc 是专为 Go 语言打造的一个综合覆盖率收集系统,尤其适合复杂的测试场景,比如系统测试时的代码覆盖率收集以及精准测试。

架构设计:goc统计go语言代码覆盖率项目实践-LMLPHP

四、工具安装

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

覆盖率报告截图:

goc统计go语言代码覆盖率项目实践-LMLPHP

09-28 13:51