区块链测试是确保整个区块链系统中缺陷被消除的关键环节。
在大数据时代,测试用例量非常庞大,仅仅只依靠人工测试,无法不能保证测试效率和质量,所以必须要借助于非人工手段来实现。自动化测试将自动化工具和技术应用于软件测试,旨在减少测试工作,更快,更经济地验证软件质量。有助于以更少的工作量构建质量更好的软件。
在CPChain系统开发过程中,通过Jenkins部署自动化测试服务器,并使用Jepsen作为模拟测试用例框架实现自动化测试,这也是CPChain持续集成工作流的基础。
本文将从在以几个下部分介绍CPChain测试框架,具体详情可查看CPChain文档(https://docs.cpchain.io/test/test-overview.html)。
测试类型
白盒测试
白盒测试主要用于检查区块链的内部功能和结构,白盒测试包含三个级别:单元,集成和回归测试。
单元测试
单元测试由Go语言编写并附带区块链代码,所有单元测试文件均以-test.go结尾。每个单元测试文件都包含数个测试函数,用于给定输入的情况下,与预定输出对比,检查其功能。此外,单元测试还包括对Fusion API和RPC API功能测试。
集成测试
在CPChain中,一部分Go文件引用并集成了多个文件,用于实现更高层的功能,对于这部分文件有必要通过相应的测试文件进行集成测试。