区块链程序开发越来越多,区块链怎么做测试?让大家很好奇。与传统测试不同的是区块链系统边界模糊。
不管是是独立的应用程序,还是客户端/服务器模式的应用程序,传统软件都具备明显的系统边界,可以通过UI用户界面或者客户端去进行测试。区块链底层则不同,它是一个完全去中心化的分布式网络。这个网络有可能跨越多个子网、多个数据中心、多个运营商、甚至多个国家,其边界是模糊的。对于区块链底层的测试,不仅仅是前端API与某个区块链节点之间的测试,还涉及大量区块链节点与节点之间的测试。
区块链故障类型复杂。一般软件故障包括3类:
宕机故障(Crash Failure);宕机-恢复故障 (Crash-Recovery Failures);拜占庭故障 (Byzantine Failures)。传统软件最多只需要解决前两种故障,而区块链系统,则需要同时处理所有的故障,确保系统的可靠运行。
区块链类型不同也给测试带来很大难度,区块链本身包含公有链、私有链、联盟链等多种类型,不同类型在管理、用户身份、最大节点数等平台自身特征方面均有不同,测评需要考虑所有的模式,导致测试方案更加复杂。
测试点的考量,根据目前行业发布的白皮书,区块链的评测标准包括针对14个评价指标,涵盖了功能、技术、安全、合规等评测:分别是数据处理基本功能、节点管理功能、身份认证功能、查询历史数据功能、共识机制有效性、数据私密性、核心技术自主可控、数据可审计性、故障恢复能力、最小硬件要求、密码技术合规性、吞吐率要求、应用层稳定性、妥善的私钥管理措施。
可见区块链测试的难度有多大,所以区块链开发还得找专业的公司,如汉全科技才能保证专业的质量,让客户更安心。