“三大阶段稳定性测试”筑牢长安链信任基石

前言

随着长安链应用生态的不断丰富、面对的应用场景更加多元,稳定性测试在长安链测试流程中占到越来越重要的位置。本文将介绍长安链稳定性测试的发展历程及如何通过三大阶段稳定性测试应对不断出现的复杂的商业需求,筑牢长安链信任基石。

功能测试和性能测试的局限性

功能测试关注系统是否按照规范执行操作,而性能测试主要关注系统的吞吐量和响应时间。这两种方法的单一性有可能限制系统全面稳定性的评估,它们无法涵盖系统可能出现的某些问题。

(1)测试颗粒度的挑战:深入细节中的考验

从横向角度看,早期的测试方法通常是将区块链视为单一模块化测试,对挖掘其内部各个组成部分之间的联系不够深入。例如当进行功能测试时,测试者可能只关注系统是否能够成功的执行基本交易,并未同步关注到系统的智能合约、数据存储、节点通信等方面细节,这种测试颗粒度比较粗的方法可能会导致忽视一些安全漏洞、多模块协作异常处理等重要问题,例如某些测试中只检查系统是否能够处理正常的交易请求,但未考虑恶意用户可能发起的攻击。

(2)深度测试的必要性:挑战系统的稳定性

从纵向的角度来看,测试不能限于短期和低负载的情况下进行。这限制了对系统在长时间运行和高负载条件下性能和稳定性的全面评估。在实际商业项目中,区块链系统需要长时间的稳定运行,同时还需要处理大量的交易和数据,因此测试的深度变得至关重要。

因此在复杂的应用环境中,稳定性测试的重要性越来越高。

长安链稳定性测试的引入

随着长安链得到越来越广泛的应用,在大型商业化项目需求中引入了TB级甚至PB级存储的概念,这曾经为长安链系统稳定带来了挑战,为应对这一挑战需要更强大的测试手段,以提前确保系统稳定可靠。

从2021年底开始长安链加强了稳定性测试,不仅丰富了测试流程,提升了测试颗粒度和深度,还将长安链的综合测试水平进行了提升,实现了从最初的模块功能测试和性能测试为主,过渡到稳定性测试的流程串联测试实现全面的覆盖,以确保系统稳定可靠。随着时间的推移和项目实践的沉淀,2023年稳定性测试再次升级,测试流程更为丰富,覆盖了更广泛的使用场景,更加紧密地贴合用户的实际需求。

长安链稳定性测试的原理

稳定性测试的原理可以简化为两个关键维度:功能稳定性和性能稳定性。

功能稳定性:其侧重于模拟长时间、不间断的用户并发交易,以揭示系统在各种业务场景下的稳定性。这一方面关注系统是否出现功能性缺陷,例如节点崩溃、内存耗尽、节点停止出块、读写集不一致等严重问题。

性能稳定性:性能稳定性侧重于在处理大规模数据和长时间运行的情况下确保链系统的性能不会下降,同时避免对计算资源的不合理占用。主要验证链系统的吞吐量在高负载情况下保持稳定且在长期运行时不出现性能问题。

在此基础上,也会考虑容错性稳定性模拟各类故障注入,包括但不限于网络断链、机器资源不足、拜占庭故障等复杂情况,旨在验证系统是否能够健壮地应对这些情况,保持数据的一致性、避免崩溃、恢复正常运行等,这有助于确保区块链系统在面对意外事件或恶意攻击时不会出现系统性故障或数据损坏。在实际测试过程中容错性稳定性测试会与功能稳定性相结合,因此这里可以暂时归类为功能稳定性中。

结合上面的稳定性测试的原理,这里整理了现阶段稳定性测试架构图

图片

图1

多样化的测试手段

长安链通过多样化的测试手段全面评估系统在不同负载和场景下的性能、可靠性、稳定性。

(1)负载均衡测试:

引入基础压力、尖峰压力、递增/减压力。压力测试类型有助于确定区块链系统在各种负载情况下的性能表现和稳定性。以确保系统在面对不同压力和用户激增情况下都能够保持高效和可靠。

a. 基础压力测试:基础压力是根据机器配置和性能评估得出的一个前端压力基线。它代表了系统在正常操作下所能承受的基本负载,作为性能评估的出发点。

b. 尖峰压力测试:尖峰压力模拟了实际项目中偶尔出现的用户访问量高峰。这种场景下,系统需要应对用户数量暴涨的情况,如双十一等大型促销活动。

c. 递增/减压力测试:递增和递减压力根据实际测得的基础压力来调整。当基础压力较高时,逐步递减压力以测试系统在高负载下的适应能力。当基础压力较低时,逐步递增压力以测试系统的可扩展性和性能极限。

(2)一致性测试:

验证链是否能够正确执行共识算法,确保所有节点都达成共识,维护数据一致性。

(3)数据恢复测试:

模拟故障节点宕机数据恢复情况,测试链的容错性和恢复能力,包括节点宕机数据清空后的数据恢复测试,以评估链的容错性。

(4)可扩展性测试:

测试链的可扩展性,以确定链能够处理大规模的交易和用户访问量,包括多链、并发订阅和20节点测试等场景,以评估链的性能和可伸缩性。

(5)数据完整性测试:

验证数据在传输和存储过程中是否保持完整和准确;比较链上各个节点的总数据,观察数据量的膨胀率等,以确保数据的完整性。

(6)定制化场景测试:

针对不同应用场景的项目,执行一些定制化场景测试,以满足特定的需求和异常情况。包括多链场景、订阅场景、20节点场景、磁盘占用达到极限、跨合约调用、多类型合约并发等测试场景。

“三大阶段稳定性测试”保障系统可靠性

随着长安链稳定性测试的优化升级,长安链对稳定性测试的阶段进行了重新划分并融合结合多样化的测试手段,精心设计三个阶段的稳定性测试:新特性稳定性测试阶段、基础稳定性测试阶段、高阶稳定性测试阶段。

图片

图3

(1)新特性稳定性测试阶段
此阶段主要是验证新特性的功能稳定性和性能稳定性,检查对链的影响确保新功能不会对区块链系统原有功能和性能稳定性造成负面影响,此时采用低负载测试,并发量以百为单位,运行时长以周为单位。

(2)基础稳定性测试阶段:

此阶段以基础功能为导向侧重验证区块链系统的基本功能的稳定性与可靠性,与新特性相比,这里更侧重于各个模块的协作,而并非单个模块对于链的影响。适度负载,通常以千为单位,运行时长以10天为单位。

(3)高阶稳定性测试阶段:

此阶段经过基础的功能验证,将以高负载、高并发,压力通常以万为单位,测试大数据量通常为100亿交易量+,运行长时间运行以20天为单位。

同时此阶段将测试多种机器资源不同配置:4c8g、8c16g、32c128g;以不同规模和部署方式测试: 云原生部署,裸机部署;加入各种异常测试,模拟各种异常情况,比如磁盘占用达到极限,网络盘意外断开连接等。

通过三大阶段的测试结合多样化的测试手段并将其融入了测试流程的各个关键环节,实现了紧密的衔接和相互支持,确保每个测试环节环环相扣,保障长安链在面对复杂的商业化需求时表现出色,保持高度的鲁棒与稳定。

结语

未来,稳定性测试手段将更加多样并持续创新,长安链将在测试场景丰富化、实时监控和反馈、自动化数据分析、数据对比与历史记录、预测性维护、融合混沌测试等方面持续努力,让长安链做好支撑数字经济发展可靠的信任基石。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/126910.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

IDEA 设置 Git 在左侧展示

File->settings->Version Control->commit 勾选 Use non-model commit interface

AI:77-基于深度学习的工业缺陷检测

🚀 本文选自专栏:人工智能领域200例教程专栏 《人工智能领域200例教程专栏》从基础到实践,深入学习。无论你是初学者还是经验丰富的老手,通过本专栏案例和项目实践,都有参考学习意义。每篇案例都包含代码实例,详细讲解供大家学习。 ✨✨✨ 每一个案例都附带有代码,在本…

MySQL -- 视图

MySQL – 视图 文章目录 MySQL -- 视图一、基本使用二、视图规则和限制 视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。视图的数据变化会影响到基表,基表的数据变化也会影响到视图。 一、基本使用…

更新 | Apinto 网关 V0.15 版本发布!

该插件支持对后端服务返回的响应信息进行过滤,包括响应头部、响应体。过滤的响应体字段或响应头将会被移除,不会返回给客户端,从而避免敏感信息的泄漏。 若此时上游服务返回的响应体为: {"code":0,"data":{…

Redis-命令操作Redis

目录 一.Redis简介 二.Redis安装 2.1.Linux安装 2.2.Windows安装 三.Redis常用命令 3.1 Redis字符串 3.2 Redis哈希(Hash) 3.3 Redis列表(List) 3.4 Redis集合(Set) 好啦今天就到这里了!!希望能帮…

如何将系统盘MBR转GPT?无损教程分享!

什么是MBR和GPT? MBR和GPT是磁盘的两种分区形式:MBR(主引导记录)和GPT(GUID分区表)。 新硬盘不能直接用来保存数据。使用前应将其初始化为MBR或GPT分区形式。但是,如果您在MBR时需…

软件工程一些图的画法

软件工程一些图的画法 【一】数据库设计:ER图【1】ER图简介【2】实体之间的关系【3】ER图绘制常见问题【4】ER图转关系模式 【二】流程图【1】流程图的作用【2】流程图中使用的符号【3】三种循环的流程图画法【4】流程图的基本结构【5】流程图常用的形式 【一】数据…

CCF ChinaSoft 2023 论坛巡礼 | 云计算标准化论坛

2023年CCF中国软件大会(CCF ChinaSoft 2023)由CCF主办,CCF系统软件专委会、形式化方法专委会、软件工程专委会以及复旦大学联合承办,将于2023年12月1-3日在上海国际会议中心举行。 本次大会主题是“智能化软件创新推动数字经济与社…

“位不配财”?程序员兼职,稳妥挣钱才是王道!

一、配不上 戏称程序员为“码农”,一年到头,像那地里的老黄牛和勤勤恳恳的老农民。 又像极了那工地上的农民工,天天搬砖,苦得嘞。 作为推动时代进步的得力干将,工作量自然是不容小觑。说程序员不加班都没人信&#x…

什么样的CRM系统更适合外贸企业?

外贸CRM系统作为外贸客户关系管理的工具,已经成为了当下外贸企业对外贸易过程中不可或缺的一环。那什么样的CRM系统更适合外贸企业?小Z向您推荐Zoho CRM。下面说说它到底有什么好处和作用。 一、搭建更高效的客户关系管理系统 外贸企业从前期推广、开发…

环境变量小结

一 常见环境变量介绍 1 PATH 到了现在,我们也知道我们轻轻敲下ls指令,其实会转为一个可执行文件在运行,也就变成了一个进程,所以ls是让文件运行,./test也是让文件运行,凭什么我们的可执行文件就要加个./(这…

【爬虫实战】用python爬今日头条热榜TOP50榜单!

一、爬取目标 今天分享一期爬虫案例,爬取的目标是:今日头条热榜的榜单数据。 打开今日头条 首页,在页面右侧会看到头条热榜,如下: 爬取以上6个关键字段,含: 热榜排名,热榜标题,热度值,热榜标…

深度学习 opencv python 公式识别(图像识别 机器视觉) 计算机竞赛

文章目录 0 前言1 课题说明2 效果展示3 具体实现4 关键代码实现5 算法综合效果6 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 基于深度学习的数学公式识别算法实现 该项目较为新颖,适合作为竞赛课题方向,学…

网络安全,SSL证书必不可少!

网站劫持是一种非常严重的安全威胁,会直接影响用户体验,甚至直接跳转其他网页,造成客户流失。它可以通过许多方式实现,却可以给企业或者个人网站做出不可逆的危害,以下是一些基本的防止措施建议: 1.使用HT…

【博士每天一篇文献-算法】Modular state space of echo state network

阅读时间:2023-11-2 1 介绍 年份:2013 作者:陈卫彪,华南理工大学计算机科学与工程学院, 期刊:Neurocomputing 引用量:17 本文介绍了一种改进回声状态网络(ESN)预测性能的新方法。该…

在全志XR806上移植st7789屏幕驱动

前言 很高兴有机会参加本次极术社区举办的“「免费试用」搭载安谋科技STAR-MC1的全志XR806 Wi-FiBLE 开发板试用活动”。 去年就对全志的mcu芯片感兴趣了,一直没有机会接触,看到本次极术社区提供的全志wifi BLE开发板试用,就马上参加了。板…

手把手教你如何扩展(破解)mybatisplus的sql生成 | 京东云技术团队

mybatisplus 的常用CRUD方法 众所周知,mybatisplus提供了强大的代码生成能力,他默认生成的常用的CRUD方法(例如插入、更新、删除、查询等)的定义,能够帮助我们节省很多体力劳动。 他的BaseMapper中定义了这些常用的C…

gorm的自动化工具gen_已设置图床

gorm的自动化工具gen 官方 https://gorm.io/zh_CN/gen/假设数据库结构如 这里使用gen-tool 安装 go install gorm.io/gen/tools/gentoollatest用法 gentool -hUsage of gentool:-c string配置文件名、默认值 “”、命令行选项的优先级高于配置文件。 -db string指定Driver…

《QT从基础到进阶·十五》用鼠标绘制矩形(QGraphicsView、QPainter、QGraphicsRectItem)

以下是鼠标绘制矩形最全的一种用法,完整源码将会放在最后面。 QT版本:5.15.2 VS版本:2019 1、在界面加载一张图片 界面的搭建选用QGraphicsView,自定义类GraphicsView继承QGraphicsView,在主程序中点击按钮打开 图片&…

Hello World背后的逻辑

一门语言的开发入门,总是抬手就能整出一个「Hello World Demo」。比如下面这样: 显然,熟悉 iOS 开发的同学都知道,上面这个来自 Objective-C。 今天,我们就从这熟悉的代码入手,来一起研究研究「Hello Worl…
最新文章