CN113220514B - 固态硬盘测试方法、装置、可读存储介质及电子设备 - Google Patents

固态硬盘测试方法、装置、可读存储介质及电子设备 Download PDF

Info

Publication number
CN113220514B
CN113220514B CN202110509778.5A CN202110509778A CN113220514B CN 113220514 B CN113220514 B CN 113220514B CN 202110509778 A CN202110509778 A CN 202110509778A CN 113220514 B CN113220514 B CN 113220514B
Authority
CN
China
Prior art keywords
solid state
test
state disk
testing
open source
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110509778.5A
Other languages
English (en)
Other versions
CN113220514A (zh
Inventor
孙成思
孙日欣
李家敏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chengdu Baiwei Storage Technology Co ltd
Original Assignee
Chengdu Baiwei Storage Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Chengdu Baiwei Storage Technology Co ltd filed Critical Chengdu Baiwei Storage Technology Co ltd
Priority to CN202110509778.5A priority Critical patent/CN113220514B/zh
Publication of CN113220514A publication Critical patent/CN113220514A/zh
Application granted granted Critical
Publication of CN113220514B publication Critical patent/CN113220514B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2221Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test input/output devices or peripheral units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2273Test methods
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了固态硬盘测试方法、装置、可读存储介质及电子设备,根据软件环境配置请求在被测主板的预设位置安装预设操作系统,能够在操作系统中配置编译环境并对开源驱动和开源单元测试框架进行编译;在开源驱动原有驱动接口的基础上,添加待测固态硬盘需要的测试接口,能够根据待测固态硬盘的配置适应性地对测试接口进行增加调整,从而全面地配置固态硬盘测试中的测试接口;接收针对待测固态硬盘的协议测试请求,根据协议测试请求生成对应的测试脚本文件;基于开源单元测试框架、测试脚本文件和开源驱动进行固态硬盘的测试,根据待测固态硬盘的配置适应性地生成对应的测试方法,从而使用开源技术和通用的PC硬件全面地进行固态硬盘的协议测试。

Description

固态硬盘测试方法、装置、可读存储介质及电子设备
技术领域
本发明涉及固态硬盘技术领域,特别涉及一种固态硬盘测试方法、装置、可读存储介质及电子设备。
背景技术
在固态硬盘的开发测试过程中,协议一致性测试属于硬盘测试中最重要的一部分。目前技术针对协议测试,往往是通过购买第三方认证来达到测试目的,没有完全开放具体的测试逻辑和步骤,其测试过程也无法修改和增减。在固件开发过程中不仅需要对协议标准规范做一致性测试,还需要对厂商自定义的功能进行测试,因此仅使用第三方认证的方法进行测试不能根据厂商的需求更改测试方法,导致协议一致性测试的测试不够全面。
发明内容
本发明所要解决的技术问题是:提供了一种固态硬盘测试方法、装置、可读存储介质及电子设备,能够全面测试固态硬盘的协议一致性。
为了解决上述技术问题,本发明采用的技术方案为:
一种固态硬盘测试方法,包括步骤:
接收软件环境配置请求,根据所述软件环境配置请求在被测主板的预设位置安装预设操作系统,配置所述预设操作系统的编译环境,通过所述编译环境编译开源驱动和开源单元测试框架,所述预设位置为非测试硬盘;
接收测试接口添加请求,根据所述测试接口添加请求在所述开源驱动中添加预设测试接口,所述预设测试接口为所述开源驱动没有的并且是所述被测主板中待测固态硬盘需要的测试接口;
接收针对所述待测固态硬盘的协议测试请求,根据所述协议测试请求生成对应的测试脚本文件;
根据所述开源单元测试框架和所述测试脚本文件生成固态硬盘测试工具,通过所述固态硬盘测试工具和所述开源驱动对所述待测固态硬盘进行协议测试。
为了解决上述技术问题,本发明采用的另一种技术方案为:
一种固态硬盘测试装置,包括:
编译模块,用于接收软件环境配置请求,根据所述软件环境配置请求在被测主板的预设位置安装预设操作系统,配置所述预设操作系统的编译环境,通过所述编译环境编译开源驱动和开源单元测试框架,所述预设位置为非测试硬盘;
接口配置模块,用于接收测试接口添加请求,根据所述测试接口添加请求在所述开源驱动中添加预设测试接口,所述预设测试接口为所述开源驱动没有的并且是所述被测主板中待测固态硬盘需要的测试接口;
脚本生成模块,用于接收针对所述待测固态硬盘的协议测试请求,根据所述协议测试请求生成对应的测试脚本文件;
测试模块,用于根据所述开源单元测试框架和所述测试脚本文件生成固态硬盘测试工具,通过所述固态硬盘测试工具和所述开源驱动对所述待测固态硬盘进行协议测试。
为了解决上述技术问题,本发明采用的另一种技术方案为:
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述固态硬盘测试方法中的各个步骤。
为了解决上述技术问题,本发明采用的另一种技术方案为:
一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述固态硬盘测试方法中的各个步骤。
本发明的有益效果在于:根据软件环境配置请求在被测主板的预设位置安装预设操作系统,能够在操作系统中配置编译环境并对开源驱动和开源单元测试框架进行编译;在开源驱动原有驱动接口的基础上,添加待测固态硬盘需要的测试接口,能够根据待测固态硬盘的配置适应性地对测试接口进行增加调整,从而全面地配置固态硬盘测试中的测试接口;接收针对待测固态硬盘的协议测试请求,根据协议测试请求生成对应的测试脚本文件;基于开源单元测试框架、测试脚本文件和开源驱动进行固态硬盘的测试,根据待测固态硬盘的配置适应性地生成对应的测试方法,从而使用开源技术和通用的PC硬件全面地进行固态硬盘的协议测试,开发周期短、难度低、成本低。
附图说明
图1为本发明实施例的固态硬盘测试方法的流程图;
图2为本发明实施例的固态硬盘测试装置的结构示意图;
图3为本发明实施例的一种电子设备的结构示意图;
图4为本发明实施例的固态硬盘测试方法的具体步骤流程图;
图5为本发明实施例的固态硬盘测试方法的硬件组网图;
图6为本发明实施例的固态硬盘测试方法的系统架构图;
图7为本发明实施例的固态硬盘测试方法的生成测试驱动和脚本开发文件的示意图;
图8为本发明实施例的固态硬盘测试方法的通过脚本开发文件查询测试集的示意图。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
请参照图1,本发明实施例提供了一种固态硬盘测试方法,包括步骤:
接收软件环境配置请求,根据所述软件环境配置请求在被测主板的预设位置安装预设操作系统,配置所述预设操作系统的编译环境,通过所述编译环境编译开源驱动和开源单元测试框架,所述预设位置为非测试硬盘;
接收测试接口添加请求,根据所述测试接口添加请求在所述开源驱动中添加预设测试接口,所述预设测试接口为所述开源驱动没有的并且是所述被测主板中待测固态硬盘需要的测试接口;
接收针对所述待测固态硬盘的协议测试请求,根据所述协议测试请求生成对应的测试脚本文件;
根据所述开源单元测试框架和所述测试脚本文件生成固态硬盘测试工具,通过所述固态硬盘测试工具和所述开源驱动对所述待测固态硬盘进行协议测试。
从上述描述可知,本发明的有益效果在于:根据软件环境配置请求在被测主板的预设位置安装预设操作系统,能够在操作系统中配置编译环境并对开源驱动和开源单元测试框架进行编译;在开源驱动原有驱动接口的基础上,添加待测固态硬盘需要的测试接口,能够根据待测固态硬盘的配置适应性地对测试接口进行增加调整,从而全面地配置固态硬盘测试中的测试接口;接收针对待测固态硬盘的协议测试请求,根据协议测试请求生成对应的测试脚本文件;基于开源单元测试框架、测试脚本文件和开源驱动进行固态硬盘的测试,根据待测固态硬盘的配置适应性地生成对应的测试方法,从而使用开源技术和通用的PC硬件全面地进行固态硬盘的协议测试,开发周期短、难度低、成本低。
进一步地,通过所述编译环境编译开源驱动包括:
判断所述编译过程中是否存在接口匹配错误,若是,则将所述开源驱动的接口修改为所述操作系统内核能够匹配的接口。
由上述描述可知,为了避免因驱动版本较早而引起的驱动接口与内核接口匹配的问题,修改将驱动接口修改为当前操作系统内核能够匹配的接口后再进行编译,使得较早的驱动也能够进行固态硬盘的测试,提高固态硬盘测试的适用性。
进一步地,所述编译环境编译开源驱动之后包括:
卸载所述操作系统中自带的固态硬盘测试驱动;
安装所述编译后的开源驱动,调用并测试所述编译后的开源驱动的接口;
判断所述编译后的开源驱动的接口是否测试成功,若是,则所述编译环境正常,若否,则所述编译环境异常。
由上述描述可知,通过判断编译后的开源驱动能否运行来判断编译环境是否正常,能够及时对编译环境进行状态判断。
进一步地,所述编译环境编译开源单元测试框架之后包括:
获取所述编译后的单元测试框架,判断所述编译后的单元测试框架是否能够对预设测试实例进行测试,若是,则所述编译环境正常,若否,则所述编译环境异常。
由上述描述可知,通过判断编译后的单元测试框架能否对预设的测试实例进行测试来判断编译环境是否正常,能够及时对编译环境进行状态判断。
进一步地,所述接收针对所述待测固态硬盘的协议测试请求,根据所述协议测试请求生成对应的测试脚本文件包括:
接收针对所述待测固态硬盘的协议测试请求,基于所述协议测试请求通过所述开源驱动接口和所述开源单元测试框架生成包含所有测试用例的协议测试方案;
根据所述协议测试方案生成对应的测试脚本文件。
由上述描述可知,根据协议测试请求即可获得包含所有测试用例的协议测试方案,能够结合测试请求、驱动和单元测试框架全面地获取所有测试用例,从而全面测试固态硬盘协议的一致性。
进一步地,通过所述固态硬盘测试工具和所述开源驱动对所述待测固态硬盘进行协议测试包括:
获取所述固态硬盘测试工具和所述开源驱动的测试日志,判断所述测试日志中是否存在异常数据,若是,则获取所述开源单元测试框架对异常数据标注的断言标识,通过所述断言标识对测试失败的问题进行定位分析;
若否,则重复所述固态硬盘测试方法,直至测试时间达到预设测试时间。
由上述描述可知,通过获取固态硬盘测试工具和开源驱动的测试日志,得到测试结果,若存在异常数据,能够通过单元测试框架的断言功能确定具体错误的原因,以便发现产品本身的问题;重复运行测试方法直至预设测试时间,能够达到测试验证的目的。
进一步地,还包括步骤:
将所述待测固态硬盘接入串口调试程序,通过所述串口调试程序查询所述待测固态硬盘盘片的物理连接状态和固件的运行状态。
由上述描述可知,待测固态硬盘能够通过串口调试程序获取待测固态硬盘盘片的物理连接状态和固件的运行状态,便于固态硬盘测试时数据的获取。
请参照图2,本发明另一实施例提供了一种固态硬盘测试装置,包括:
编译模块,用于接收软件环境配置请求,根据所述软件环境配置请求在被测主板的预设位置安装预设操作系统,配置所述预设操作系统的编译环境,通过所述编译环境编译开源驱动和开源单元测试框架,所述预设位置为非测试硬盘;
接口配置模块,用于接收测试接口添加请求,根据所述测试接口添加请求在所述开源驱动中添加预设测试接口,所述预设测试接口为所述开源驱动没有的并且是所述被测主板中待测固态硬盘需要的测试接口;
脚本生成模块,用于接收针对所述待测固态硬盘的协议测试请求,根据所述协议测试请求生成对应的测试脚本文件;
测试模块,用于根据所述开源单元测试框架和所述测试脚本文件生成固态硬盘测试工具,通过所述固态硬盘测试工具和所述开源驱动对所述待测固态硬盘进行协议测试。
本发明另一实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述固态硬盘测试方法中的各个步骤。
请参照图3,本发明另一实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述固态硬盘测试方法中的各个步骤。
本发明上述固态硬盘测试方法、装置、可读存储介质及电子设备,适用于通用NVMe固态硬盘的协议一致性测试,以实现使用开源技术和通用的PC硬件验证NVMe固态硬盘协议一致性的测试,以下通过具体实施方式进行说明:
实施例一
请参照图1和图4,一种固态硬盘测试方法,包括步骤:
S1、接收软件环境配置请求,根据所述软件环境配置请求在被测主板的预设位置安装预设操作系统,配置所述预设操作系统的编译环境,通过所述编译环境编译开源驱动和开源单元测试框架,所述预设位置为非测试硬盘;
其中,将所述待测固态硬盘接入串口调试程序,通过所述串口调试程序查询所述待测固态硬盘盘片的物理连接状态和固件的运行状态;
具体的,请参照图5和图6,在硬件准备的时候,设置支持NVMe固态硬盘的一块或多块被测主板,每块主板中对应一块被测固态硬盘和非测试硬盘;
将待测固态硬盘接入串口调试程序,通过串口调试程序能够查询固态硬盘盘片的物理连接状态和固件的运行状态,以便后续在被测主板中运行自动化测试脚本;
其中,通过所述编译环境编译开源驱动包括:
判断所述编译过程中是否存在接口匹配错误,若是,则将所述开源驱动的接口修改为所述操作系统内核能够匹配的接口;
具体的,在本实施例中,在非测试硬盘的X86平台上安装Linux操作系统,并配置g++、gcc编译环境,编译开源驱动dnvme;由于dnvme驱动开发时间比较早,如果有遇到编译上的问题或者错误提示需要仔细分析具体原因,但是大多数是因为较早的驱动与内核接口不匹配所致,此时将开源驱动接口修改为匹配当前系统内核的接口后重新编译即可;
其中,所述编译环境编译开源驱动之后包括:
卸载所述操作系统中自带的固态硬盘测试驱动;
安装所述编译后的开源驱动,调用并测试所述编译后的开源驱动的接口;
判断所述编译后的开源驱动的接口是否测试成功,若是,则所述编译环境正常,若否,则所述编译环境异常;
具体的,在本实施例中,开源驱动编译成功后会生成dnvme.ko测试驱动;通过安装dnvme.ko驱动来验证驱动的正确性,详细步骤依次为:卸载内核自带驱动;加载dnvme.ko驱动;调用测试驱动接口,如果驱动接口测试成功,则编译环境正常,如果驱动接口测试失败,则编译环境异常;
其中,所述编译环境编译开源单元测试框架之后包括:
获取所述编译后的单元测试框架,判断所述编译后的单元测试框架是否能够对预设测试实例进行测试,若是,则所述编译环境正常,若否,则所述编译环境异常;
具体的,编译开源单元测试框架gtest,gtest可以在Linux上提供丰富的断言、判断、参数化测试等功能,并且能够利用开源单元测试框架gtest与dnvme驱动接口配合开发NVMe协议测试;
编译好gtest之后,获取生成的gtest可执行文件,使用gtest可执行文件运行预设测试实例demo程序,若运行成功,则编译环境正常,若运行失败,则编译环境异常;
在本实施例中,使用命令“driver install.sh test_dnvme.sh unittest”配置开发项目,其中driver目录包含dnvme驱动所需要文件,unittest包含脚本开发所需要的文件,install.sh文件完成完整的驱动的编译和测试工具的生成;test_dnvme.sh可以调试测试一个dtest中一个测试实例,如果能正常执行完成,则表明编译环境一切运行正常;
其中,unittest通过命令“dtest gtest make”生成,make文件包含最终编译生成调试和发布工具的Makefile文件,因此unittest具体分为dtest脚本开发文件和gtest单元测试工具文件;
S2、接收测试接口添加请求,根据所述测试接口添加请求在所述开源驱动中添加预设测试接口,所述预设测试接口为所述开源驱动没有的并且是所述被测主板中待测固态硬盘需要的测试接口;
具体的,在本实施例中开源驱动dnvme中仅仅提供了一些部分常用的NVMe协议接口,因此需要在这些基础上开发一套完整的测试接口:根据待测试固态硬盘的需求增加对应的标准协议命令的接口、寄存器读写模块、日志模块、协议trace模块、异常注入模块;
具体的,在driver目录下开发驱动兼容内核代码,并调试和开发Pcie、NVMe相关的测试接口,相关测试接口可以是实现寄存器的读写、中断类型控制、NVMe队列管理、NVMeAdmin/NVM CMD的发送和响应接收、异常注入接口以及驱动日志打印等功能的接口;
S3、接收针对所述待测固态硬盘的协议测试请求,根据所述协议测试请求生成对应的测试脚本文件;
其中,接收针对所述待测固态硬盘的协议测试请求,基于所述协议测试请求通过所述开源驱动接口和所述开源单元测试框架生成包含所有测试用例的协议测试方案;
根据所述协议测试方案生成对应的测试脚本文件;
具体的,开发脚本前先输出一套测试NVMe协议方案,测试NVMe协议方案包含寄存器用例、NVMe数据结构用例、NVMe中Admin和NVM命令用例和其他相关特性功能的用例;
根据测试NVMe协议方案中用例的细节描述,在脚本开发文件dtest中开发测试脚本;
具体的,在本实施例中,在unittest下开发dtest代码,实现所有Admin/NVMe和寄存器相关的测试用例开发;
S4、根据所述开源单元测试框架和所述测试脚本文件生成固态硬盘测试工具,通过所述固态硬盘测试工具和所述开源驱动对所述待测固态硬盘进行协议测试;
具体的,在本实施例中,driver的日志模块和dtest日志模块是独立运行的,因此需要两个项目分别开发日志模块,将driver日志打印在内核日志中,dtest日志打印在标准输出和日志文件中;
请参照图7和图8,完成项目开发后需要对driver、dtest分别开发Makefile文件,最终会生成driver/dnvme.ko和unittest/make/dtest工具,通过dtest能够查询所有的测试集,并安装最终生成的dnvme.ko驱动;
通过gtest与dtest即可生成固态硬盘测试工具,固态硬盘测试工具中包含所有测试用例开发的脚本,另外再配合开发的驱动dnvme,就可以形成完整的测试方案工具;
在进行测试时,可以通过命令“dtest--gtest_filter=test_case_name”获取测试脚本;检查测试生成的测试脚本,所有异常退出非Pass的执行结果,需要测试人员确认具体错误的原因,以便发现产品本身的问题;
因此,在本实施例中可以使NVMe固态硬盘完成标准的协议测试项,保证协议的认证和与主机的交付功能,本发明开发周期短,开发难度低,研发成本低。
实施例二
本实施例与实施例一的区别在于,进一步限定了对待测固态硬盘进行协议测试的内容:
具体的,通过所述固态硬盘测试工具和所述开源驱动对所述待测固态硬盘进行协议测试包括:
获取所述固态硬盘测试工具和所述开源驱动的测试日志,判断所述测试日志中是否存在异常数据,若是,则获取所述开源单元测试框架对异常数据标注的断言标识,通过所述断言标识对测试失败的问题进行定位分析;
若否,则重复所述固态硬盘测试方法,直至测试时间达到预设测试时间;
具体的,在unittest下开发dtest代码时,在每条测试用例下通过gtest的断言方式实现用例的判断标准,开发用例脚本,代码中每条测试步骤需要做到日志和逻辑一一对应,能让测试执行时能清楚地描述每一步操作,当测试失败时能够准确的定位分析;
检查测试日志时,所有异常退出非Pass的执行结果,通过断言标识对测试失败的问题进行定位分析;所有正常结束的流程,可以使其测试一直重复运行到预期的测试时间为止,以达到测试验证的目的,其中gtest提供重复执行的参数--gtest_repeat=10。
实施例三
请参照图2,一种固态硬盘测试装置,包括:
编译模块,用于接收软件环境配置请求,根据所述软件环境配置请求在被测主板的预设位置安装预设操作系统,配置所述预设操作系统的编译环境,通过所述编译环境编译开源驱动和开源单元测试框架,所述预设位置为非测试硬盘;
接口配置模块,用于接收测试接口添加请求,根据所述测试接口添加请求在所述开源驱动中添加预设测试接口,所述预设测试接口为所述开源驱动没有的并且是所述被测主板中待测固态硬盘需要的测试接口;
脚本生成模块,用于接收针对所述待测固态硬盘的协议测试请求,根据所述协议测试请求生成对应的测试脚本文件;
测试模块,用于根据所述开源单元测试框架和所述测试脚本文件生成固态硬盘测试工具,通过所述固态硬盘测试工具和所述开源驱动对所述待测固态硬盘进行协议测试。
实施例四
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述实施例一或实施例二中的一种固态硬盘测试方法中的各个步骤。
实施例五
请参照图3,一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述实施例一或实施例二中的一种固态硬盘测试方法中的各个步骤。
综上所述,本发明提供的一种固态硬盘测试方法、装置、可读存储介质及电子设备,根据软件环境配置请求在被测主板的预设位置安装预设操作系统,能够在操作系统中配置编译环境并对开源驱动和开源单元测试框架进行编译,编译环境编译成功的标准以开源驱动dnvme、开源工具gtest编译的正常运行为准;在开源驱动原有驱动接口的基础上,添加待测固态硬盘需要的测试接口,能够根据待测固态硬盘的配置适应性地对测试接口进行增加调整,从而全面地配置固态硬盘测试中的测试接口;接收针对待测固态硬盘的协议测试请求,根据协议测试请求生成对应的测试脚本文件,其中根据协议测试请求生成包含所有测试用例的协议测试方案,在每条测试用例下通过gtest的断言方式实现用例的判断标准,并开发对应的测试脚本文件,从而能够根据断言标识进行测试结果的定位和分析;基于开源单元测试框架、测试脚本文件和开源驱动进行固态硬盘的测试,根据待测固态硬盘的配置适应性地生成对应的测试方法,从而使用开源技术和通用的PC硬件全面地进行固态硬盘的协议测试,开发周期短、难度低、成本低。
在本申请所提供的上述实施例中,应该理解到,所揭露的方法、装置、计算机可读存储介质以及电子设备,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个组件或模块可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或组件或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的组件可以是或者也可以不是物理上分开的,作为组件显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部组件来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个组件单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种固态硬盘测试方法,其特征在于,包括步骤:
接收软件环境配置请求,根据所述软件环境配置请求在被测主板的预设位置安装预设操作系统,配置所述预设操作系统的编译环境,通过所述编译环境编译开源驱动和开源单元测试框架,所述预设位置为非测试硬盘;
接收测试接口添加请求,根据所述测试接口添加请求在所述开源驱动中添加预设测试接口,所述预设测试接口为所述开源驱动没有的并且是所述被测主板中待测固态硬盘需要的测试接口;
接收针对所述待测固态硬盘的协议测试请求,根据所述协议测试请求生成对应的测试脚本文件;
根据所述开源单元测试框架和所述测试脚本文件生成固态硬盘测试工具,通过所述固态硬盘测试工具和所述开源驱动对所述待测固态硬盘进行协议测试。
2.根据权利要求1所述的一种固态硬盘测试方法,其特征在于,通过所述编译环境编译开源驱动包括:
判断所述编译过程中是否存在接口匹配错误,若是,则将所述开源驱动的接口修改为所述操作系统内核能够匹配的接口。
3.根据权利要求1所述的一种固态硬盘测试方法,其特征在于,所述编译环境编译开源驱动之后包括:
卸载所述操作系统中自带的固态硬盘测试驱动;
安装所述编译后的开源驱动,调用并测试所述编译后的开源驱动的接口;
判断所述编译后的开源驱动的接口是否测试成功,若是,则所述编译环境正常,若否,则所述编译环境异常。
4.根据权利要求1所述的一种固态硬盘测试方法,其特征在于,所述编译环境编译开源单元测试框架之后包括:
获取所述编译后的单元测试框架,判断所述编译后的单元测试框架是否能够对预设测试实例进行测试,若是,则所述编译环境正常,若否,则所述编译环境异常。
5.根据权利要求1所述的一种固态硬盘测试方法,其特征在于,所述接收针对所述待测固态硬盘的协议测试请求,根据所述协议测试请求生成对应的测试脚本文件包括:
接收针对所述待测固态硬盘的协议测试请求,基于所述协议测试请求通过所述开源驱动接口和所述开源单元测试框架生成包含所有测试用例的协议测试方案;
根据所述协议测试方案生成对应的测试脚本文件。
6.根据权利要求5所述的一种固态硬盘测试方法,其特征在于,通过所述固态硬盘测试工具和所述开源驱动对所述待测固态硬盘进行协议测试包括:
获取所述固态硬盘测试工具和所述开源驱动的测试日志,判断所述测试日志中是否存在异常数据,若是,则获取所述开源单元测试框架对异常数据标注的断言标识,通过所述断言标识对测试失败的问题进行定位分析;
若否,则重复所述固态硬盘测试方法,直至测试时间达到预设测试时间。
7.根据权利要求1至6中任一项所述的一种固态硬盘测试方法,其特征在于,还包括步骤:
将所述待测固态硬盘接入串口调试程序,通过所述串口调试程序查询所述待测固态硬盘盘片的物理连接状态和固件的运行状态。
8.一种固态硬盘测试装置,其特征在于,包括:
编译模块,用于接收软件环境配置请求,根据所述软件环境配置请求在被测主板的预设位置安装预设操作系统,配置所述预设操作系统的编译环境,通过所述编译环境编译开源驱动和开源单元测试框架,所述预设位置为非测试硬盘;
接口配置模块,用于接收测试接口添加请求,根据所述测试接口添加请求在所述开源驱动中添加预设测试接口,所述预设测试接口为所述开源驱动没有的并且是所述被测主板中待测固态硬盘需要的测试接口;
脚本生成模块,用于接收针对所述待测固态硬盘的协议测试请求,根据所述协议测试请求生成对应的测试脚本文件;
测试模块,用于根据所述开源单元测试框架和所述测试脚本文件生成固态硬盘测试工具,通过所述固态硬盘测试工具和所述开源驱动对所述待测固态硬盘进行协议测试。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7任意一项所述的固态硬盘测试方法中的各个步骤。
10.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-7任意一项所述的固态硬盘测试方法中的各个步骤。
CN202110509778.5A 2021-05-11 2021-05-11 固态硬盘测试方法、装置、可读存储介质及电子设备 Active CN113220514B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110509778.5A CN113220514B (zh) 2021-05-11 2021-05-11 固态硬盘测试方法、装置、可读存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110509778.5A CN113220514B (zh) 2021-05-11 2021-05-11 固态硬盘测试方法、装置、可读存储介质及电子设备

Publications (2)

Publication Number Publication Date
CN113220514A CN113220514A (zh) 2021-08-06
CN113220514B true CN113220514B (zh) 2023-05-23

Family

ID=77094493

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110509778.5A Active CN113220514B (zh) 2021-05-11 2021-05-11 固态硬盘测试方法、装置、可读存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN113220514B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113760622A (zh) * 2021-09-09 2021-12-07 惠州佰维存储科技有限公司 载具的使用均衡方法、装置、可读存储介质及电子设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107357718A (zh) * 2017-06-12 2017-11-17 百富计算机技术(深圳)有限公司 一种构建测试方法及装置
CN109388530A (zh) * 2018-08-22 2019-02-26 华东计算技术研究所(中国电子科技集团公司第三十二研究所) 一种面向刀片式服务器的自动化测试平台以及测试方法
CN109471665A (zh) * 2018-10-31 2019-03-15 湖南国科微电子股份有限公司 一种自动安装Windows操作系统的方法
CN111930574A (zh) * 2020-06-23 2020-11-13 深圳佰维存储科技股份有限公司 Ssd测试系统及ssd测试方法
CN112216340A (zh) * 2020-10-22 2021-01-12 深圳佰维存储科技股份有限公司 硬盘测试方法、装置、存储介质及电子设备
CN112559266A (zh) * 2020-12-09 2021-03-26 成都佰维存储科技有限公司 固态硬盘测试方法、装置、可读存储介质及电子设备

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107357718A (zh) * 2017-06-12 2017-11-17 百富计算机技术(深圳)有限公司 一种构建测试方法及装置
CN109388530A (zh) * 2018-08-22 2019-02-26 华东计算技术研究所(中国电子科技集团公司第三十二研究所) 一种面向刀片式服务器的自动化测试平台以及测试方法
CN109471665A (zh) * 2018-10-31 2019-03-15 湖南国科微电子股份有限公司 一种自动安装Windows操作系统的方法
CN111930574A (zh) * 2020-06-23 2020-11-13 深圳佰维存储科技股份有限公司 Ssd测试系统及ssd测试方法
CN112216340A (zh) * 2020-10-22 2021-01-12 深圳佰维存储科技股份有限公司 硬盘测试方法、装置、存储介质及电子设备
CN112559266A (zh) * 2020-12-09 2021-03-26 成都佰维存储科技有限公司 固态硬盘测试方法、装置、可读存储介质及电子设备

Also Published As

Publication number Publication date
CN113220514A (zh) 2021-08-06

Similar Documents

Publication Publication Date Title
US7739698B2 (en) Multiplatform API usage tool
US7337104B2 (en) Device emulation in programmable circuits
US20080021693A1 (en) Storage Device Simulator
CN110405759B (zh) 一种芯片控制系统
US7472052B2 (en) Method, apparatus and computer program product for simulating a storage configuration for a computer system
CN113220514B (zh) 固态硬盘测试方法、装置、可读存储介质及电子设备
CN114138667A (zh) 一种soc芯片驱动程序自动化测试系统及测试方法
CN113282439B (zh) eMMC测试方法、装置、可读存储介质及电子设备
CN113868174B (zh) 验证平台搭建方法、装置及存储介质
CN113032246B (zh) Ssd固件运行方法、装置、可读存储介质及电子设备
US7243059B2 (en) Simulation of hardware based on smart buffer objects
TWI402750B (zh) 具有軟體程式儲存於其中之電腦可讀取媒體及用以產生軟體程式的方法
CN116543828B (zh) Ufs协议测试方法、装置、可读存储介质及电子设备
CN113742215A (zh) 一种自动配置和调用测试工具进行测试分析的方法及系统
CN113378502B (zh) 验证信号走向配码的测试方法、装置、介质及设备
US10481969B2 (en) Configurable system wide tests
CN113986263A (zh) 代码自动化测试方法、装置、电子设备、存储介质
CN110096888B (zh) 一种加快验证及分析smm安全隐患的方法及系统
US10216525B1 (en) Virtual disk carousel
CN112765021A (zh) 一种引导程序的调试检验方法、装置、设备及存储介质
US6715134B2 (en) Method and apparatus to facilitate generating simulation modules for testing system designs
CN110162438B (zh) 仿真调试装置和仿真调试方法
CN113377586B (zh) 一种服务器自动化检测方法、装置及存储介质
US20240176632A1 (en) Method for generating and verifying automotive embedded software based on autosar
He et al. Alemu: A framework for application-layer programs emulation of embedded devices

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant