掌桥专利:专业的专利平台
掌桥专利
首页

ssd系统测试模块化方法与系统

文献发布时间:2024-07-23 01:35:21


ssd系统测试模块化方法与系统

技术领域

本发明涉及SSD系统测试技术领域,具体涉及一种ssd系统测试模块化的方法与系统。

背景技术

随着存储技术的进步,SSD(固态硬盘)已成为高性能数据存储的重要组成部分。为了确保SSD的可靠性和性能,需要进行系统级别的测试。传统的SSD系统测试工具通常采用脚本或软件来执行测试,但存在测试步骤固定、配置选项有限以及缺乏灵活性等问题。

目前,业内已有一些与本发明相近的技术方案。其中一个常见的方案是使用传统的脚本或软件执行SSD系统测试。这些方案通常预先定义了一系列测试步骤,在执行过程中缺少灵活的配置选项。用户只能按照固定的测试流程进行测试,无法根据具体需求进行模块化拆分或选择所需的测试模式。

虽然这些现有技术方案可以完成基本的SSD系统测试,但它们存在一些局限性。首先,由于测试步骤固定,无法灵活适应不同的测试需求,不能针对特定场景进行定制化测试。现有测试单一,例如测试编号1reboot 15s+burnlntest测D盘。这样就仅仅写成固定的一个功能。其次,配置选项有限,用户无法自由选择所需的测试模式,限制了测试灵活性。最后,由于缺乏模块化设计,这些方案无法支持测试步骤的独立拆分和组合,导致测试脚本缺乏自由度和可塑性。

发明内容

本发明旨在至少解决现有技术中存在的技术问题之一。为此,本发明实施例提出一种ssd系统测试模块化的方法,本方法通过将测试任务模块化进行自动化测试。

根据本发明的第一方面实施例的一种ssd系统测试模块化的方法,所述方法包括:

从预设测试任务模块中添加待测试任务模块,确定测试步骤;

选择待测试任务模块测试参数;

依据预设测试要求,组成模块化任务;

执行所选择测试任务模块测试任务。

进一步地,所述预设测试任务模块,包括:TRIM支持测试、异常电源断电保护测试、垃圾回收性能测试、压缩与减少写入测试。

进一步地,所述预设测试要求,包括:性能指标要求、功能验证要求、兼容性检查要求。

进一步地,所述待测任务模块参数包括模块列表和模块测试步骤列表,所述模块列表中选择模块测试步骤列表。

进一步地,所述模块化测试步骤列表包括多个单元测试选项、功能测试选项和或性能测试选项。

根据本发明实施例的ssd系统测试模块化方法,至少具有如下有益效果:

通过选择模块名称,进行参数配置信息生成待测模块列表,然后根据待测模块的名称,查询步骤列表找到对应的测试步骤和操作,模块化执行ssd系统测试任务,即可满足灵活多变的测试需求,适应各种SSD测试场景。

本发明实施例还提出一种ssd系统测试模块化系统,包括:添加模块、测试参数选择模块、任务执行模块、显示模块、报告模块;

所述添加模块:用于设定待测试模块列表;

所述测试参数选择模块:用于设定测试参数,并与预定测试要求进行比较;

所述显示模块:提供用户选择测试模块、测试参数用户界面;

所述报告模块:用于输出模块化测试报告;

所述任务执行模块:按选择的测试模块及测试参数执行测试任务;

根据用户添加待测试任务,执行权利要求1至权利要求5中的方法,对ssd系统进行模块化测试。

根据本发明第二方面实施例的ssd系统测试模块化系统,至少具有如下有益效果:

通过选择模块名称,进行参数配置信息生成待测模块列表,然后根据待测模块的名称,查询步骤列表找到对应的测试步骤和操作,模块化执行ssd系统测试任务,即可满足灵活多变的测试需求,适应各种SSD测试场景。

本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:

图1为本申请实施例提供的一种ssd系统测试模块化方法测试流程示意图;

图2为本申请实施例提供的一种ssd系统测试模块化方法测试时序示意图;

图3为本申请实施例提供的一种ssd系统测试模块化方法测试线程流程示意图;

图4为本申请实施例提供的一种ssd系统测试模块化方法线程模块示意图;

图5为本申请实施例提供的一种ssd系统测试模块化方法创建测试步骤流程图示意图;

图6为本申请实施例提供的一种ssd系统测试模块化方法测试应用场景示意图;

图7为本申请实施例提供的一种ssd系统测试模块化方法系统组成示意图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。

本发明的描述中,除非另有明确的限定,设置、安装、连接等词语应做广义理解,所属技术领域技术人员可以结合技术方案的具体内容合理确定上述词语在本发明中的具体含义。

固态硬盘(Solid State Disk或Solid State Drive,简称SSD),又称固态驱动器,是用固态电子存储芯片阵列制成的硬盘。通常用NAND Flash存数据。

分区是指将硬盘或存储设备划分成不同的逻辑部分,以便在其中存储和管理文件系统、操作系统和应用程序等数据。每个分区被视为独立的单位,可以单独进行格式化、分配空间和管理。分区可以帮助提高系统的组织性、效率和安全性。

为阐述本申请,将涉及到有关技术术语解释如下:

S3S4:电脑休眠模式

Reboot:电脑重启

H2testw:是一种免费的软件工具,用于测试存储介质(如闪存卡、USB驱动器)的真实容量和性能。该工具可以检测出存储介质上的坏扇区、错误数据以及潜在的假冒产品。通过对存储介质进行写入和读取操作,H2testw能够确定其可靠性和稳定性。

Burnlntest:是一种商业化的压力测试工具,它可以测试计算机的稳定性、可靠性和耐久性。BurnInTest可以测试硬件组件的各个方面,包括CPU、GPU、存储设备、网络、内存等。

Sdtress:一种压力测试工具。

Iometer:是一种流行的开源性能测试工具,用于评估计算机和存储系统的输入/输出性能。它可以模拟各种负载模式,并测量设备的性能指标,如读取和写入速度、随机访问延迟、吞吐量等。

Emit:用于发射(emit)信号。

信号和槽(Signals and Slots)机制:是Qt中一种常用的方式,用于实现对象间的通信和事件处理。

键值对(key-value pair)是一种数据结构,用于存储和表示一对相关联的数据,它由一个唯一的键(key)和对应的值(value)组成。

QT:一种应用程序开发框架。

主分区(Primary Partition):用于安装操作系统的分区,每个硬盘最多可以有4个主分区。

扩展分区(Extended Partition):用于创建更多逻辑分区的容器,只能存在一个扩展分区。

逻辑分区(Logical Partition):由扩展分区划分出来的分区,可以在一个扩展分区内创建多个逻辑分区。

本发明旨在解决传统SSD系统测试工具的技术问题。传统工具存在测试步骤固定、配置选项有限以及缺乏灵活性等问题。因此,本发明的技术目标是提供一个测试步骤独立化设计的SSD系统测试工具,通过拆分测试步骤为多个独立并允许配置指定参数,实现用户根据需求进行自由测试模式选择,从而提升测试脚本的自由度和灵活性。

如图1所示,本实施ssd系统测试模块化方法步骤为:

步骤一:从预设测试任务模块中添加待测试任务模块,确定测试步骤;

从预设测试任务模块中添加待测试任务模块,选择SSD测试用例步骤。

步骤二:选择待测试任务模块测试参数;

可根据需要设置参数,若不填写则使用默认参数。

步骤三:依据预设测试要求,组成模块化任务;

在添加模块测试后,对其进行逻辑判断以确认是否符合测试要求。若存在问题,则无法进行组合;

测试要求是指对每个单独的测试模块所设定的目标或标准;这些要求可能包括性能指标、功能验证、兼容性检查等;每个测试模块都有特定的测试要求,用于评估被测系统的特定方面。在组成模块任务时,需要对添加的测试模块进行逻辑判断,以确认是否符合测试要求;逻辑判断可以包括对测试模块的功能、目标和参数的分析,并与整个测试流程的要求进行对比和匹配;

存在问题指的是在逻辑判断过程中发现的与测试要求不符合的情况;这些问题可能包括:·缺少必要的测试模块:如果某个关键的测试要求没有相应的测试模块可用,那么就无法

进行组合;例如,缺少数据保护与纠错的测试模块,在测试数据完整性时将无法满足要求;

·相互冲突的测试模块:如果已添加的测试模块之间存在冲突,即其中一个测试模块的操

作可能会干扰另一个测试模块的结果,那么就无法进行有效的组合。例如,添加了同时进行大量读写和压缩测试的模块,由于对SSD性能的要求冲突,导致测试结果不准确。

S4:执行所选择测试任务模块测试任务。

在本实施例中,允许用户根据具体需求进行模块化拆分和配置参数,从而实现自由选择测试模式、增加测试灵活性以及提高测试脚本的自由度和可塑性。

(1)本方法是通过QT+C++多线程任务的代码方式所实现的,通过匹配测试步骤中的名字,

来决定测试步骤的具体执行。

在本实施中,分别对测试参数、测试要求、判断方式、存在问题几个方面进行说明,具体地测试步骤说明如下:

1.TRIM支持测试:

参数:TRIM命令

测试要求:验证SSD是否正确支持TRIM功能,该功能可以在删除或修改文件时,通知固态硬盘擦除相应数据块。

判断方式:发送TRIM指令,观察SSD是否正确执行擦除操作。

存在问题:如果SSD不支持或实现不正确,可能导致写入性能下降或数据损坏。

2.异常电源断电保护测试:

参数:电源断电

测试要求:测试SSD在异常电源断电情况下的保护机制,以防止数据损坏和错误写入。

判断方式:模拟突然断电情况,观察SSD是否可以正确处理并保护数据。

存在问题:如果SSD在断电时无法正确处理,可能会导致数据丢失或文件系统错误。

3.垃圾回收性能测试:

参数:垃圾回收算法、空闲块数量

测试要求:测试SSD的垃圾回收性能,即清理不再使用的数据块以释放可用空间。

判断方式:向SSD写入大量数据,观察垃圾回收过程的效率和可用空间的增加。

存在问题:如果SSD的垃圾回收算法不高效或空闲块数量不足,可能导致写入性能下降或可用空间不足。

4.压缩与减少写入测试:

参数:数据压缩比、写入量

测试要求:测试SSD对压缩数据的读取和写入性能,以及减少写入量的能力。

判断方式:使用压缩算法生成压缩数据,执行读取和写入操作,并观察性能和写入量的变化。

存在问题:如果SSD无法有效地处理压缩数据或减少写入量,可能导致读取和写入性能下降。

如图2所示的测试方法时序图,对测试方法步骤过一步说明:

1、用户启动SSD系统测试工具。

2、工具显示可供选择的模块化测试步骤列表。

步骤列表:保存了测试过程中所有的步骤列表,其中每个步骤都由一个或多个操作组成。具体地,每个步骤可能包含多个单元测试、功能测试或性能测试等操作,每个操作会进行一些预定的输入和输出,并记录测试结果。

3、用户根据需求选择特定测试步骤。

4、工具根据用户选择的步骤,按照顺序执行测试。

5、在每个测试步骤执行完成后,工具显示测试结果或提示用户进行进一步的配置。

6、用户可以选择继续执行后续测试步骤或者结束测试。

7、如果用户选择进行进一步的配置,工具提供相应的参数选项供用户设置。

8、用户根据需求进行参数配置,并确认设置。

9、工具根据用户的参数配置,执行进一步的测试步骤。

10、重复步骤5至步骤9,直到所有测试步骤执行完毕。

11、完成所有测试步骤后,工具生成测试报告,并展示给用户。

12、用户可以查看测试报告,分析测试结果并做进一步的处理。

为了能自动进行模块化测试,本方法采用QT框架和多线程技术,结合图3所示,对模块化测试执行进行进一步说明:

通过qt和C++的线程api函数封装自己的模块需求,将每个小的功能细分定义模块的参数放入线程中,去匹配已经创建好的流程,进行逐步测试。

分区是指将硬盘或存储设备划分成不同的逻辑部分,以便在其中存储和管理文件系统、操作系统和应用程序等数据。每个分区被视为独立的单位,可以单独进行格式化、分配空间和管理。分区可以帮助提高系统的组织性、效率和安全性。

在本实施例中,进一步对线程模块进行举例说明。

线程模块举例:如图4所示;

H2W W/R:进行写入和读取操作的测试。来评估SSD的速度、数据完整性和潜在问题。

CheckLogOnce:检查测试日志,执行某个测试步骤中系统的日志检查操作。

MovieTest:电影测试,通常指对电影或视频播放功能的测试。

diskosinit:SSD初始化,指对SSD进行初始化设置,包括分区、文件系统格式化等操作。

check data Smart:检查数据,使用S.M.A.R.T(Self-Monitoring,Analysis andReporting Technology)技术来监测和检查硬盘的健康状态和数据完整性。

first_Reboot:首次重启,指在安装操作系统或软件后的第一次重启操作。

winSpor:指Windows SPOR(Spontaneous Reboot,自动重启)功能,用于描述Windows系统在遇到问题时自动重启的行为。

diskdatainit:SSD数据初始化,指对SSD中的数据进行初始化设置,通常会清空SSD上的所有数据。

ftpdown:FTP下载,指通过FTP(File Transfer Protocol)协议进行文件下载或者上传操作。

IO4KRW2H:I/O 4K Random Write 2Hours(I/O 4K随机写入2小时)的缩写命名。执行对Iometer工具的配置和测试操作,以评估SSD或存储设备在4K随机写入负载下的性能表现

参照图5创建测试步骤流程图,对模块参数选择和线程模块进一步说明,例如模块1参数:通过结构体主程序所输入的参数传递到线程模块中,过程中将消息emit发送出去显示在界面上目前测试进展:参数1Driveletter(选择盘符D F…)参数2SystemStatus(是否填写系统盘数据true表示填写false不填写)。

将待测的列表保存在一个数组里以key-value pair的形式,然后与线程中的key-value pair对去匹配进而进行测试流程。

模块列表:保存了待测模块的列表,其中每个模块都有一个对应的模块名称(key)和相应的参数配置信息(value)。可以看作是一个包含多个键值对的数据结构。通过将待测的列表保存在一个数组中,可以根据"Key"的值来快速查找并匹配对应的线程进行测试流程。这样可以方便地管理和执行多个线程,并根据需要指定不同的入口地址或指针地址来执行相应的功能和测试逻辑。

在测试框架中,"模块列表"包含了待测模块的名称和相关的参数配置信息;而图3的"步骤列表"则包含了所有测试步骤和操作的细节。在执行测试时,测试框架会根据"模块列表"中待测模块的名称,查找对应的测试步骤和操作,从而执行相应的测试,并将执行结果记录下来。

举例测试方案描述:

例子1:SSD的读写性能测试(功能A)

测试需求:测试SSD的读写性能,包括顺序读写和随机读写两种情况。

模块列表:

模块名称:PerformanceTest

参数配置信息:{block_size:4KB,num_threads:8}

步骤列表:

步骤1:准备测试环境

操作1.1:格式化SSD设备

操作1.2:加载测试数据到SSD

步骤2:顺序读写测试

操作2.1:按照指定的块大小和线程数进行连续的顺序读写操作,记录性能指标

步骤3:随机读写测试

操作3.1:按照指定的块大小和线程数进行随机的读写操作,记录性能指标

步骤4:分析和报告

操作4.1:分析测试结果,包括读写速度和延迟等指标

操作4.2:生成测试报告,总结性能测试结果和建议

例子2:SSD的耐久性测试(功能B1)

测试需求:测试SSD的耐久性,验证其在连续写入大量数据时的表现。

模块列表:

模块名称:EnduranceTest

参数配置信息:{test_duration:24hours,workload_pattern:random}

步骤列表:

步骤1:准备测试环境

操作1.1:格式化SSD设备

操作1.2:加载测试数据到SSD

步骤2:连续写入测试

操作2.1:按照指定的工作负载模式连续运行指定时间,记录写入次数和失败情况步骤3:分析和报告

操作3.1:分析测试结果,包括写入次数和失败情况统计

操作3.2:生成测试报告,总结耐久性测试结果和建议

例子3:SSD的温度测试(功能B2)

测试需求:测试SSD在高温环境下的工作状态,验证其温度管理能力。

模块列表:

模块名称:TemperatureTest

参数配置信息:{temperature_threshold:70℃,test_duration:1hour}

步骤列表:

步骤1:准备测试环境

操作1.1:格式化SSD设备

操作1.2:加载测试数据到SSD

步骤2:温度测试

操作2.1:持续运行指定时间,在每个时间间隔测量SSD的温度,若超过阈值则记录

步骤3:分析和报告

操作3.1:分析测试结果,包括温度变化趋势和是否超过阈值

操作3.2:生成测试报告,总结温度测试结果和建议

以上是一些常见的SSD独有的测试举例,分别涵盖了性能、耐久性和温度测试。通过配置不同的参数和操作步骤,我们可以针对不同的测试需求进行灵活的测试设计,而不需要重新开发。这样可以提高测试效率和灵活性。

传统的测试方案上述每一种不同的测试,都要重新开发,而本文中的方法无需重新开发,比如,原先的测试需求是测试功能A,之后有新的测试需求是功能B1,后面又有新的测试需求是功能B2,通过模块名称-参数配置信息生成待测模块列表;然后根据待测模块的名称,查询步骤列表找到对应的测试步骤和操作并执行,即可满足灵活多变的测试需求,适应各种SSD测试场景。

参照图6应用层和链路层之间的交互实现,对创新分区、burnlntest、H2TEST通过图6中的应用层和链路层之间的交互实现进行举例说明。

diskosinit-SSD初始值:此测试步骤旨在获取SSD的初始值。这包括SSD的初始状态、初始化数据等。通过记录SSD的初始状态,可以为后续的测试提供基准。

Init Smart-获取Smart初始值:在该步骤中,将获取SSD的Smart初始值。Smart是一种自我监测、分析和报告技术,可用于检测SSD的健康状态和预测可能的故障。通过获取Smart初始值,可以了解SSD的初始健康状态。

VenderInfoInit-获取SSD自定义初始值:这一步骤旨在获取SSD厂商自定义的初始值。不同的SSD厂商可能会为其产品提供一些特定的参数或功能。通过获取SSD的自定义初始值,可以了解SSD的特定功能或属性。

Sdstress-SdStress测试:此测试步骤主要涉及存储设备的压力测试。通过对存储设备进行读写操作、模拟并发访问等方式,评估其性能和稳定性。这有助于验证存储设备在高负载情况下的表现和可靠性。

BitALL-Single Bit software Test ALL disk:该步骤涉及对SSD进行单位比特的软件测试。通过对整个SSD进行逐个比特的读写操作,检测SSD中可能存在的错误或故障。

PassMarkSleep-PassMark Sleep:此测试步骤是针对PassMark Sleep功能进行测试。PassMark Sleep是一种省电功能,用于控制存储设备的休眠和唤醒。通过测试该功能,可以验证存储设备在休眠和唤醒过程中的表现和功耗。

CheckLogHours-检查Log:在该步骤中,将检查SSD的日志信息,包括比特、休眠和系统日志。通过检查这些日志,可以了解SSD的使用情况、系统事件和潜在问题。

VenderInfoCheck-检查SSD自定义值:此步骤旨在检查SSD厂商自定义的值。通过比较获取的自定义值与初始值,可以验证SSD在使用过程中是否有任何改变或损坏。

Check Smart-Read/Write PowerOnCount PowerOnLossCount:在该步骤中,将检查SSDSmart的相关指标,比如读写次数、通电次数和通电失败次数等。通过检查这些指标,可以评估SSD的使用情况和健康状态。

通过以上测试方案的具体描述,可以更好地理解每个测试步骤的目的和方法,以及它们对存储设备的评估和验证的作用。这样的方案描述可以帮助测试人员更清晰地执行测试,并准确地记录和分析测试结果。

如图7所示的一种ssd系统测试模块化系统,包括:添加模块、测试参数选择模块、任务执行模块、显示模块、报告模块;

所述添加模块:用于设定待测试模块列表;

所述测试参数选择模块:用于设定测试参数,并与预定测试要求进行比较;

所述显示模块:提供用户选择测试模块、测试参数用户界面;

所述报告模块:用于输出模块化测试报告;

所述任务执行模块:按选择的测试模块及测试参数执行测试任务;

根据用户添加待测试任务,执行权利要求1中的方法,对ssd系统进行模块化测试。

上面结合附图对本发明实施例作了详细说明,但是本发明不限于上述实施例,在所属技术领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化。

以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示意性实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。

相关技术
  • 一种基于Linux系统测试SSD性能的方法及其系统
  • 一种SSD控制器的系统测试自动化分析方法及装置
技术分类

06120116679082