版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1区块链信息系统通用测试规范本文件界定了区块链信息系统测试相关的术语,规定了区块链信息系统的测试流程、测试模型与测试方法,提供了区块链信息系统功能性、性能效率、兼容性、易用性、可靠性、信息安全性、维护性及可移植性的技术要求与测试方法。本文件适用于区块链信息系统的测试。2规范性引用文件下列文件中的内容通过文中的规范性引用而构成本文件必不可少的条款。其中,注日期的引用文件,仅该日期对应的版本适用于本文件;不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。GB/T22239—2019信息安全技术网络安全等级保护基本要求GB/T25069—2010信息安全技术术语GB/TGM/Z39786—20210001—2013信息安全技术密码术语信息系统密码应用基本要求3术语和定义GB/T25069—2010和GM/Z0001—2013界定的以及下列术语和定义适用于本文件。3.1区块链技术blockchaintechnique一种将数据区块顺序相连,并通过共识协议、数字签名、杂凑函数等密码学方式保证的抗篡改和不可伪造的分布式账本(3.5)。[来源:ISO22739:2020,3.6,有修改]3.2密码技术cryptographictechnique能够实现密码算法的加密、解密和认证等功能的技术。3.3区块链信息服务blockchaininformationservice基于区块链技术或系统,通过互联网站、应用程序等形式,向社会公众或特定组织提供的信息服务。3.4区块链信息系统blockchaininformationsystem区块链技术或系统及其提供的区块链信息服务的统称。3.52分布式账本distributedledger可以在多个站点、不同地理位置或者多个机构组成的网络里实现共同维护及分享的资产数据库。3.6节点node具有特定功能的区块链组件,可独立运行的单元。[来源:ISO22739:2020,3.50,有修改]3.7交易transaction区块链双方或多方参与,并且会发生状态变更的一种基本区块组成单元。[来源:ISO22739:2020,3.77,有修改]3.8共识机制consensusmechanism形成共同认识或达成一致意见的运作方式、方法和规则,保证了以去中心化方式维护区块链分布式账本的一致性。3.9智能合约smartcontract存储在分布式账本中的计算机程序,由区块链用户部署,其任何执行结果都记录在分布式账本中。[来源:ISO22739:2020,3.72]4符号和缩略语下列缩略语适用于本文件。CPU:中央处理器(Centralprocessingunit)I/O:输入/输出(Input/Output)API:应用编程接口(ApplicationProgrammingInterfacCA:数字证书认证机构(CertificateAuthority)SDK:软件开发工具包(SoftwareDevelopmentKit)ETL:数据抽取、转换、加载(Extract-Transform-LoaSM2:椭圆曲线密码算法(SM2algorithm)SM3:密码杂凑算法(SM3algorithm)SM4:分组密码算法(SM4algorithm)DES:数据加密标准(DataEncryptionStandarRSA-1024:RSA算法(Rivest-Shamir-Adlemanalgorithm)SHA-1:安全哈希算法(Securehashalgorithm)MD5:消息摘要算法(Message-Digestalgorithm)IP:网际互联协议(InternetProtocol)5测试流程3区块链信息系统测试主要包括制定测试方案、准备测试环境、执行测试、分析测试结果和测试总结等过程。5.1制定测试方案测试方案内容包括:a)确定测试目的:明确功能性测试、性能效率测试、兼容性测试、易用性测试、可靠性测试、信息安全性测试、维护性测试及可移植性测试等是否符合区块链信息系统预定的设计目标。b)确定测试范围:从需求文档、设计说明及操作说明等文件中获得测试范围。c)确定测试指标:在需求文档、设计说明及操作说明等文件中获取明确的测试指标。部分测试指标需要针对区块链信息系统的业务特点、技术特点、应用情况及系统通用指标等进行综合分析获得。d)确定业务模型:根据区块链信息系统的主要功能及业务、关键业务信息及其处理流程、相应的业务量及比例确定业务模型。e)确定测试策略:明确测试目的、测试范围、测试指标及业务模型后,针对区块链信息系统用户需求确定测试策略。f)设计测试场景:根据业务模型模拟系统的实际应用情况确定测试场景。g)确定测试准则及风险:明确测试准则,对测试过程进行风险评估,对可能遇到的导致测试失败的情况进行分析,分析其发生可能性及可能造成的影响,并提出规避办法指导测试工作。5.2准备测试环境根据测试方案,准备被测区块链信息系统测试环境和测试数据。5.3执行测试执行测试过程包括:h)设计测试用例:根据需求文档、设计说明、操作说明等文件,以及区块链信息系统的业务特点、技术特点、系统通用指标等设计测试用例。i)编写测试脚本:根据系统业务特点、技术特点、性能效率要求编写测试脚本,测试脚本可以使用测试工具录制完成,或通过手工编写完成。j)运行测试场景:测试用例和测试脚本准备完毕后,按照设计的测试场景进行设置,并执行测试。5.4分析测试结果不同的测试指标应选择适用的结果分析方法。在分析测试执行结果时,可根据需求文档、设计说明和操作说明等文件来确定是否符合测试指标要求。5.5测试总结测试结果分析完成后,对测试结果进行汇总,形成测试总结报告,为分析区块链信息系统存在的问题提供依据。6测试模型选取区块链信息系统在功能性、性能效率、兼容性、易用性、可靠性、信息安全性、维4护性和可移植性中的主要技术质量特性,形成区块链信息系统质量测试模型,见图1。图1区块链信息系统质量测试模型7测试要求7.1功能性7.1.1技术要求区块链信息系统账户体系、交易事务、区块、智能合约、区块链节点、共识算法、共享账本、上链信息内容以及日志等功能应具备完备性、正确性及适合性。7.1.2测试方法功能性的测试方法包括:a)a)依据需求文档、设计说明和使用说明等,针对功能、数据准确度和适用要求设计对应的测试用例,执行所有测试用例,收集和分析测试结果。b)b)分析被测试区块链信息系统功能需求和上链信息内容合规性功能需求,依据需求文档要求测试区块链信息系统是否实现了全部需求(包括需求文档中虽未明确说明但应满足的功能需求),测试各项功能是否可正确执行。c)c)分析被测试区块链信息系统计算精度需求,依据需求文档要求测试区块链信息系统是否实现了全部计算精度需求,测试区块链信息系统各项运算结果精度及准确性与需求文档中说明是否一致。d)d)通过测试区块链信息系统是否出现未满足的功能或不符合预期的操作情况,验证区块链信息系统识别功能目标实现的程度。7.2性能效率7.2.1技术要求区块链信息系统交易事务与区块链节点性能效率应满足区块链信息服务产品说明中的要求。7.2.2测试方法性能效率的测试方法包括:5e)录制区块链信息系统交易事务请求发送、查询脚本用例,设计测试场景,测试交易事务响应期间区块生成、广播、共识及同步是否符合特定时间要求。f)监测区块链节点CPU利用率、内存利用率、I/O利用率、网络带宽使用率、存储、输入/输出和通道吞吐能力及功能处理的余量,测试是否符合特定要求。g)记录区块链信息系统在正常运行时区块链闲置与非闲置节点数目,以及每个区块记录交易事务数量的大小,测试是否符合特定要求。7.3兼容性7.3.1技术要求区块链信息系统应能够与其他软硬件产品共存。区块链信息服务与其他两个或多个系统、产品或组件应能够交换信息并满足使用已交换的信息进行互操作的要求。具体要求包括:h)a)区块链信息系统在与同区块链技术或系统下其他信息系统、非同区块链技术或系统下其他信息系统,以及非区块链技术或系统下其他信息系统共享计算与网络环境和资源的条件下,应能够有效执行其所需的功能,并不会对其他系统造成负面影响。i)b)区块链信息服务应能够与其他信息系统进行数据交换并正确使用已交换的信j)c)区块链信息系统所使用的共识机制应支持可插拔,能够兼容两种及以上共识算法。k)d)区块链信息系统底层数据库应具备支持主流数据库的能力。7.3.2测试方法共存性共存性的测试方法包括:l)a)在区块链节点中,部署常用的操作系统软件、中间件软件、数据库软件、浏览器软件、字处理软件及其他工具软件,对区块链信息系统进行访问和业务处理,测试常用软件与区块链信息系统的共存性。m)b)测试同一区块链信息服务是否能够在不同版本的区块链技术或系统中运行。n)c)测试同一智能合约是否能够在不同版本的区块链技术或系统中运行。o)d)测试不同的共识算法能否在区块链信息服务实现过程中被选择,或者整个区块链网络是否具备让开发者自定义共识算法的能力。p)e)测试区块链信息系统在不同类型数据库下的运行情况。互操作性测试区块链信息系统在与同区块链技术或系统下其他信息系统、非同区块链技术或系统下其他信息系统,以及非区块链技术或系统下其他信息系统是否能够进行数据交换并正确使用已交换的信息。7.4易用性7.4.1技术要求区块链信息系统智能合约、交易事务、共享账本及节点应具备网络搭建、节点增删、自动化部署、实例化、可视化、交易发起与查询、索引支持及区块链浏览器等方面的支持能力。区块链信息服务应满足可辨识性、易学性、易操作性、用户差错防御性、用户界面舒适6性及易访问性的要求。具体要求包括:q)区块链信息系统应易于用户辨识其是否适合实际应用需求。r)在有效性、效率、抗风险和满意度特性方面应满足特定用户学习与使用的实际需求。s)区块链信息系统应具有易于操作和控制的属性。t)区块链信息系统应能够预防用户犯错。u)区块链信息系统用户界面应提供友好的交互功能。v)在特定的使用周境中,为了达到预定目标,区块链信息系统应能够被具有最广泛特征和能力的个体所使用。7.4.2测试方法可辨识性测试区块链信息系统是否具备检查界面、用户可理解的数据输入格式及输出数据含义。易学性易学性的测试方法包括:a)a)测试智能合约支持的编程语言。b)b)测试区块链信息系统是否具备恰当的术语、图形、文字、接口、背景信息、帮助说明、用户文档集及打印等功能,便于用户正确使用功能。易操作性易操作性的测试方法包括:c)a)测试区块链网络搭建、增删节点的复杂程度,以及区块链节点是否支持自动化部署。d)b)测试智能合约部署、实例化及调用所需的步骤,是否支持智能合约的升级更换。e)c)测试交易事务发起、查询复杂度,是否能够通过简单的操作步骤完成。用户差错防御性用户差错防御性的测试方法包括:f)a)测试区块链信息系统运行出错时,是否有正确的步骤帮助用户从错误中恢复。g)b)测试区块链信息系统运行出错时,是否提供改正差错或报告差错的联系方式。h)c)测试针对区块链节点删除、智能合约销毁等重要操作是否支持可逆操作,或者在重要操作执行前对可能的后果进行主动警告提示。用户界面舒适性测试区块链智能合约是否提供可视化界面。易访问性易访问性的测试方法包括:i)a)测试是否支持通过区块链浏览器访问共享账本。j)b)测试共享账本是否支持建立索引。k)测试是否支持调用API或软件开发包访问共享账本。7.5可靠性77.5.1技术要求区块链信息系统在节点可用性、网络抖动影响、热备节点、共享账本可用性、共享账本失效自动恢复同步、共享账本失效转移同步、不同节点下的账户体系可用性及资产迁移等方面应满足成熟性、可用性、容错性及易恢复性要求。具体要求包括:l)区块链信息系统应具有避免因系统错误而导致失效的能力,这些错误包括系统自身错误、区块节点以及节点间错误等。m)区块链信息系统应在用户需要使用时能够进行访问和操作。n)在出现故障或违反指定接口的情况下,区块链信息系统应能够维持规定的性能级o)在失效发生后,区块链信息系统应具备重新建立原有性能级别并恢复直接受影响数据的能力,包括原有能力恢复的程度与速度,如共享账本失效后进行自动重启,以恢复与其他共享账本同步数据的程度与速度。7.5.2测试方法成熟性成熟性的测试方法包括:a)测试统一账户信息在不同类型的区块链节点上是否可用。b)测试区块链信息系统是否支持账户的资产迁移。可用性可用性的测试方法包括:c)测试区块链节点在一定数量下加入或退出后,区块链技术或系统、区块链信息服务等级和可用性是否受到影响。d)测试不同类型区块链节点在一定数量下失效后,区块链技术或系统、区块链信息服务等级和可用性是否受到影响。e)测试共享账本在一定数量下加入或退出后,区块链技术或系统、区块链信息服务等级和可用性是否受到影响。容错性容错性的测试方法包括:f)测试共享账本失效后是否支持自动重启并恢复与其他共享账本同步数据。g)测试共享账本失效后是否支持启动备用方案与其他共享账本同步数据。易恢复性测试区块链节点是否支持灾备节点热备切换功能。7.6信息安全性7.6.1技术要求区块链信息系统信息生成、信息处理、信息发布、信息传播、信息存储及信息销毁等全生命周期阶段在交易数据、账本数据、智能合约、交易事务及区块链节点等方面应具备保密性、完整性、抗抵赖性、可核查性及真实性等信息安全防护能力。具体要求包括:h)区块链信息系统交易数据应采用符合国家密码标准的加密算法进行保密性保护。i)区块链信息系统应采用符合国家密码标准的数字签名算法进行完整性保护。8j)应对区块链信息系统中不同类型的节点设置不同权限,明确权限所对应的信息服务内容,建立节点授权机制,并能够对节点权限进行技术管理,记录每次节点的权限操作。k)应采取技术手段实现区块链信息系统安全审计功能,对节点管理、账户管理及事务管理具有清晰的审计记录。l)区块链信息系统应具备区块链节点、信息服务等资源唯一标识识别能力,通过身份注册、核验、签发、更新、延期及注销等操作进行身份管理,支持采取不同方式对身份真实性进行验证,如数字签名等。7.6.2测试方法保密性保密性的测试方法包括:m)测试区块链信息系统交易数据在存储和传输过程中,采用的加密算法是否支持国家商用密码推荐的加密算法,如SM2、SM4等。n)测试区块链信息系统交易数据使用的加密算法是否存在高危风险算法,如DES、RSA-1024等。o)测试区块链加密算法的软件或硬件实现方式。p)测试区块链加解密密钥的生成、存储、分发、导入、导出、使用、备份、恢复、归档及销毁等全生命周期管理是否在安全的环境下进行。完整性完整性的测试方法包括:q)测试区块链信息系统是否支持国家商用密码数字签名算法,如SM2、SM3等。r)测试区块链信息系统使用的摘要算法是否存在高危风险算法,如MD5、SHA-1等。s)测试区块链数字签名算法的软件或硬件实现方式。t)测试区块链信息系统是否采用数字签名技术保证账本数据在生成、传输、存储及调用等过程中不被非授权更改或破坏。抗抵赖性抗抵赖性的测试方法包括:u)询问区块链智能合约部署前是否进行漏洞检测和代码审计。必要时,在授权情况下,可以对智能合约进行漏洞检测和代码审计,测试智能合约是否存在安全漏洞。v)测试区块链智能合约是否存在重放攻击漏洞。w)测试区块链信息系统执行发起和查询交易事务等操作时是否采用数字签名等技术实现实体行为的抗抵赖性。可核查性可核查性的测试方法包括:x)测试区块链系统审计记录功能,验证区块链节点是否具有创建时间、运行状态、节点IP地址及节点所有者身份信息等。y)测试区块链系统是否留存用户变更身份信息记录,核查并更新用户账户绑定的身份信息,确保用户身份信息真实有效。9真实性真实性的测试方法包括:z)测试创建区块链账户时,是否保证每个账户具有唯一的身份标识,是否支持使用符合国家密码管理规定的非对称加密算法(如SM2)进行身份认证。aa)测试区块链节点是否采用数字证书等方式实现节点身份标识与鉴别。7.7维护性7.7.1技术要求区块链信息系统在区块链节点、智能合约、底层数据库及区块链扩展开发等方面应具备模块化、可重用、易分析、易修改及易测试等维护性。具体要求包括:ab)应能够在不影响区块链信息系统正常运行情况下增加、删除节点,以及更改节点类ac)区块链信息系统应支持可插拔插件、SDK、API、ETL以及集成云平台,并提供相应接口。ad)区块链信息系统应提供预期变更对系统的影响、诊断系统缺陷或失效原因及识别待修改部分的功能。ae)区块链节点、底层数据库应能够有效地修改、切换,且不会引入缺陷或降低现有系统质量。af)应具备系统测试准则,便于对区块链信息系统执行测试。7.7.2测试方法模块化测试在增加、删除节点,更改节点类型的情况下,其他区块链模
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年陕西省榆林十中高考语文模拟试卷(一)
- 2025年《价值为纲》学习心得例文(6篇)
- 彩色喷墨打印材料项目融资计划书
- 物流行业2025版租赁协议6篇
- 2025版宿舍楼宿管员职责聘用合同3篇
- 2025年度新型存款居间代理管理合同4篇
- 2025年度知识产权质押贷款协议4篇
- 2025版托盘销售与新能源车辆运输服务合同范本3篇
- 2025年度个人与银行个人贷款合作专项协议4篇
- 二零二五年度婴幼儿奶粉品牌孵化与市场拓展合同
- 2024版塑料购销合同范本买卖
- JJF 2184-2025电子计价秤型式评价大纲(试行)
- GB/T 44890-2024行政许可工作规范
- 2024年安徽省中考数学试卷含答案
- 2025届山东省德州市物理高三第一学期期末调研模拟试题含解析
- 2024年沪教版一年级上学期语文期末复习习题
- 两人退股协议书范文合伙人签字
- 2024版【人教精通版】小学英语六年级下册全册教案
- 汽车喷漆劳务外包合同范本
- 2024年重庆南开(融侨)中学中考三模英语试题含答案
- 16J914-1 公用建筑卫生间
评论
0/150
提交评论