bitcoin core代码覆盖率
Bitcoin Core有很多测试代码,有一个针对每个PR(Pull Request,可简单理解为,代码贡献者向管理员发起代码合并请求)运行的集成测试套件,以及一个每天晚上在Master上运行的扩展测试套件。
可以通过以下方式自行检查测试的代码覆盖率:
1、克隆Bitcoin Core GitHub存储库;
2、安装从源构建所需的依赖项;
3、运行这些命令;
4、在./total_coverage/index.html查看报告;
或者,可以在此处查看Marco Falke主持的覆盖报告。
具有如此高的测试覆盖率,意味着代码按照预期工作具有更高的确定性。
当涉及到共识关键软件时,测试是一件大事。而对于特别复杂的更改,开发人员有时会执行艰苦的突变测试,也就是说,他们通过故意破坏代码并查看测试结果是否如预期的那样失败。
Greg Maxwell(曾经的比特币的核心开发人员)在讨论0.15发行版时对这个过程给出了一些见解:“测试是针对软件的测试,那测试的测试又是什么呢?要进行测试的测试,你必须去破坏软件。”