固态硬盘的测试方法、装置、计算机设备和存储介质
技术领域
本申请涉及固态硬盘技术领域,尤其涉及一种固态硬盘的测试方法、装置、计算机设备和存储介质。
背景技术
固态硬盘在出厂前需进行多种功能测试,通常需要对固态硬盘进行闪存颗粒测试和硬件测试时,分别下载测试固件,即在进行闪存颗粒测试前下载闪存颗粒测试固件,在进行硬件测试前下载硬件测试固件,在闪存颗粒测试完成后需人为下载硬件测试固件,人为启动硬件测试,无法实现自动化测试,导致测试效率低。
发明内容
为了解决上述技术问题,本申请提供了一种固态硬盘的测试方法、装置、计算机设备和存储介质。
第一方面,本申请提供了一种固态硬盘的测试方法,包括:
获取测试固件,所述测试固件包括第一固件和第二固件;
获取待测固态硬盘与主板的连接状态,所述连接状态为已连接或未连接;
当所述连接状态为所述未连接时,运行所述第一固件,得到第一测试结果;
当所述第一测试结果为测试成功时,重新获取所述待测固态硬盘与主板的连接状态;
当所述连接状态为所述已连接时,运行所述第二固件,得到第二测试结果。
可选地,所述第一固件用于测试所述待测固态硬盘内的闪存颗粒,所述第二固件用于对所述待测固态硬盘进行硬件测试。
可选地,所述获取所述待测固态硬盘与主板的连接状态之前,所述方法还包括:
检测所述待测固态硬盘在预设时长内是否与所述主板建立通信连接;
当在所述预设时长内所述待测固态硬盘与所述主板建立通信连接时,所述连接状态为所述已连接;
当在所述预设时长内所述待测固态硬盘未与所述主板建立通信连接时,所述连接状态为所述未连接。
可选地,所述方法还包括:
当检测到来自所述主板发送的数据或连接请求时,判定所述连接状态为所述已连接;
当未检测到来自所述主板发送的所述数据或连接请求时,判定所述连接状态为所述未连接。
可选地,所述方法还包括:
当所述第二测试结果为测试成功时,获取第三固件,所述第三固件用于替换所述第二固件;
当所述第二测试结果为测试失败时,判定所述待测固态硬盘为待修产品。
可选地,所述方法还包括:
当所述第一测试结果为测试失败时,判定所述待测固态硬盘为待修产品。
第二方面,本申请提供了一种固态硬盘的测试装置,包括:
固件获取模块,用于获取测试固件,所述测试固件包括第一固件和第二固件;
第一状态获取模块,用于获取待测固态硬盘与主板的连接状态,所述连接状态为已连接或未连接;
第一固件运行模块,用于当所述连接状态为所述未连接时,运行所述第一固件,得到第一测试结果;
第二状态获取模块,用于当所述第一测试结果为测试成功时,重新获取所述待测固态硬盘与主板的连接状态;
第二固件运行模块,用于当所述连接状态为所述已连接时,运行所述第二固件,得到第二测试结果。
可选地,所述装置还包括:
替换模块,用于当所述第二测试结果为测试成功时,获取第三固件,所述第三固件用于替换所述第二固件;
第一判定模块,用于当所述第二测试结果为测试失败时,判定所述待测固态硬盘为待修产品。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取测试固件,所述测试固件包括第一固件和第二固件;
获取待测固态硬盘与主板的连接状态,所述连接状态为已连接或未连接;
当所述连接状态为所述未连接时,运行所述第一固件,得到第一测试结果;
当所述第一测试结果为测试成功时,重新获取所述待测固态硬盘与主板的连接状态;
当所述连接状态为所述已连接时,运行所述第二固件,得到第二测试结果。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取测试固件,所述测试固件包括第一固件和第二固件;
获取待测固态硬盘与主板的连接状态,所述连接状态为已连接或未连接;
当所述连接状态为所述未连接时,运行所述第一固件,得到第一测试结果;
当所述第一测试结果为测试成功时,重新获取所述待测固态硬盘与主板的连接状态;
当所述连接状态为所述已连接时,运行所述第二固件,得到第二测试结果。
上述固态硬盘的测试方法、装置、计算机设备和存储介质,所述方法包括:获取测试固件,所述测试固件包括第一固件和第二固件;获取待测固态硬盘与主板的连接状态,所述连接状态为已连接或未连接;当所述连接状态为所述未连接时,运行所述第一固件,得到第一测试结果;当所述第一测试结果为测试成功时,重新获取所述待测固态硬盘与主板的连接状态;当所述连接状态为所述已连接时,运行所述第二固件,得到第二测试结果。根据待测固态硬盘与主板的连接状态确定运行第一固件或第二固件,实现自动化测试,无需人为分别启动不同的测试固件,提高了测试效率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为一个实施例中固态硬盘的测试方法的流程示意图;
图2为一个实施例中固态硬盘的测试方法的流程示意图;
图3为一个实施例中固态硬盘的测试装置的结构框图;
图4为一个实施例中计算机设备的内部结构图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
在一个实施例中,图1为一个实施例中一种固态硬盘的测试方法的流程示意图,参照图1,提供了一种固态硬盘的测试方法。本实施例主要以该方法应用于上述图1中的固态硬盘110(或主板120)来举例说明,该固态硬盘的测试方法具体包括如下步骤:
步骤S210,获取测试固件,测试固件包括第一固件和第二固件。
在本实施例中,测试固件(Firmware)为写入EROM(可擦写只读存储器)或EEPROM(电可擦可编程只读存储器)中的程序,通过测试固件,待测固态硬盘才能按照标准的程序实现特定的测试动作,测试固件运行结束后的结果即为测试结果。测试固件具体可以包括但不仅限于闪存颗粒测试固件、读写测试固件、速度测试固件、芯片测试固件、硬件测试固件等中一种或几种组合。其中,第一固件为任意无需待测固态硬盘连接主板进行测试的测试固件,第二固件为需要待测固态硬盘连接主板进行测试的任意测试固件。
步骤S220,获取待测固态硬盘与主板的连接状态,连接状态为已连接或未连接。
在本实施例中,根据待测固态硬盘与主板之间的数据传输情况,确定待测固态硬盘与主板之间的连接状态,当待测固态硬盘接收到主板通过通讯协议发送的数据或连接请求,则判定待测固态硬盘与主板之间的连接状态为已连接;反之,当待测固态硬盘未检测到主板发送的数据或连接请求,则判定待测固态硬盘与主板之间的连接状态为未连接。
步骤S230,当连接状态为未连接时,运行第一固件,得到第一测试结果。
在本实施例中,由于第一固件为任意无需待测固态硬盘连接主板进行测试的测试固件,当待测固态硬盘与主板之间的连接状态为未连接时,仅能运行第一固件,无法运行第二固件,不会产生同时运行第一固件和第二固件的现象,避免测试拥挤。
步骤S240,当第一测试结果为测试成功时,重新获取待测固态硬盘与主板的连接状态。
在本实施例中,第一固件运行结束后,测试结果为测试成功,则重新判断待测固态硬盘与主板之间的连接状态,检测连接状态是否发生变化。
步骤S250,当连接状态为已连接时,运行第二固件,得到第二测试结果。
在本实施例中,当检测到待测固态硬盘与主板之间的连接状态变为已连接时,由于第二固件为需要待测固态硬盘连接主板进行测试的任意测试固件,此时仅单独运行第二固件,根据待测固态硬盘与主板的连接状态确定运行第一固件或第二固件,实现自动化测试,无需人为分别启动不同的测试固件,提高了测试效率。
在一个实施例中,第一固件用于测试待测固态硬盘内的闪存颗粒,第二固件用于对待测固态硬盘进行硬件测试。
具体地,第一固件为用于进行固态硬盘可靠性验证测试(ReliabilityDemonstration Testing,简称RDT测试)的闪存颗粒测试固件,RDT测试是固态硬盘内的自测程序测试闪存颗粒的过程。第二固件为用于对待测固态硬盘进行硬件测试的硬件测试固件,即第二固件用于进行BurnIntest测试,对待测固态硬盘进行读写测试和数据搜索测试。
在一个实施例中,获取待测固态硬盘与主板的连接状态之前,检测待测固态硬盘在预设时长内是否与主板建立通信连接;当在预设时长内待测固态硬盘与主板建立通信连接时,连接状态为已连接;当在预设时长内待测固态硬盘未与主板建立通信连接时,连接状态为未连接。
具体地,预设时长可根据需求进行自定义,此处设定预设时长为60~200秒,即最小检测时长为60秒,最大检测时长为200秒,在最小检测时长至最大检测时长之间的时间段内,当检测到待测固态硬盘与主板建立通信连接时,确定连接状态为已连接,运行第二固件;当达到最大检测时长时,还未检测到待测固态硬盘与主板建立通信连接,则确定连接状态为未连接,则运行第一固件。
在一个实施例中,当检测到来自主板发送的数据或连接请求时,判定连接状态为已连接;当未检测到来自主板发送的数据或连接请求时,判定连接状态为未连接。
具体地,当检测到主板通过通讯协议发送的数据或连接请求时,通讯协议具体可以为SATA(Serial ATA)协议或NVME(NVM Express)协议,即当检测到来自主板通过SATA协议发送的数据或通过NVME协议发送的连接请求时,则判定连接状态为已连接。
在一个实施例中,当第二测试结果为测试成功时,获取第三固件,第三固件用于替换第二固件;当第二测试结果为测试失败时,判定待测固态硬盘为待修产品。
具体地,当第二固件的测试结果为测试成功,下载第三固件,第三固件为出厂设置的第二固件,即未进行测试的第二固件,利用第三固件替换测试完成后的第二固件,清除第二固件的测试数据,相当于对第二固件进行恢复出厂设置。若第二固件的测试结果为测试失败,则将待测固态硬盘标记为待修产品,后续对待修产品进行维修,维修后的固态硬盘重新执行获取测试固件的步骤。
在一个实施例中,当第一测试结果为测试失败时,判定待测固态硬盘为待修产品。
具体地,当第一固件的测试结果为测试失败时,则将该固态硬盘标记为待修产品,后续对待修产品进行维修,维修后的固态硬盘重新执行获取测试固件的步骤。
在一个具体实施例中,图2为一个实施例中固态硬盘的测试方法的流程示意图,参照图2,获取测试固件,即下载第一固件和第二固件,循环检测60~200秒,获取待测固态硬盘与主板之间的连接状态,判断连接状态为已连接或未连接,当未检测到主板通过SATA协议或NVME协议发送的数据或连接请求时,判定连接状态为未连接,则运行第一固件,当第一固件测试成功时,返回至获取待测固态硬盘与主板之间的连接状态的步骤;当第一固件测试失败时,将固态硬盘标记为待修产品,后续对待修产品进行维修,维修后的固态硬盘重新执行获取测试固件的步骤。若连接状态为已连接,则运行第二固件,当第二固件测试成功时,完成测试;当第二固件测试失败,将固态硬盘标记为待修产品,后续对待修产品进行维修,维修后的固态硬盘重新执行获取测试固件的步骤。
图1为一个实施例中固态硬盘的测试方法的流程示意图。应该理解的是,虽然图1的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图3所示,提供了一种固态硬盘的测试装置,包括:
固件获取模块310,用于获取测试固件,测试固件包括第一固件和第二固件;
第一状态获取模块320,用于获取待测固态硬盘与主板的连接状态,连接状态为已连接或未连接;
第一固件运行模块330,用于当连接状态为未连接时,运行第一固件,得到第一测试结果;
第二状态获取模块340,用于当第一测试结果为测试成功时,重新获取待测固态硬盘与主板的连接状态;
第二固件运行模块350,用于当连接状态为已连接时,运行第二固件,得到第二测试结果。
在一个实施例中,装置还包括:
替换模块,用于当第二测试结果为测试成功时,获取第三固件,第三固件用于替换第二固件;
第一判定模块,用于当第二测试结果为测试失败时,判定待测固态硬盘为待修产品。
在一个实施例中,第一固件用于测试待测固态硬盘内的闪存颗粒,第二固件用于对待测固态硬盘进行硬件测试。
在一个实施例中,装置还包括:
连接检测模块,用于检测待测固态硬盘在预设时长内是否与主板建立通信连接;
连接模块,用于当在预设时长内待测固态硬盘与主板建立通信连接时,连接状态为已连接;
未连接模块,用于当在预设时长内待测固态硬盘未与主板建立通信连接时,连接状态为未连接。
在一个实施例中,装置还包括:
第一数据检测模块,用于当检测到来自主板发送的数据或连接请求时,判定连接状态为已连接;
第一数据检测模块,用于当未检测到来自主板发送的数据或连接请求时,判定连接状态为未连接。
在一个实施例中,装置还包括:
第二判定模块,用于当第一测试结果为测试失败时,判定待测固态硬盘为待修产品。
图4示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是固态硬盘(或包括主板的电脑)。如图4所示,该计算机设备包括该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、输入装置和显示屏。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现固态硬盘的测试方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行固态硬盘的测试方法。计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图4中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,本申请提供的固态硬盘的测试装置可以实现为一种计算机程序的形式,计算机程序可在如图4所示的计算机设备上运行。计算机设备的存储器中可存储组成该固态硬盘的测试装置的各个程序模块,比如,图3所示的固件获取模块310、第一状态获取模块320、第一固件运行模块330、第二状态获取模块340和第二固件运行模块350。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的固态硬盘的测试方法中的步骤。
图4所示的计算机设备可以通过如图3所示的固态硬盘的测试装置中的固件获取模块310执行获取测试固件,测试固件包括第一固件和第二固件。计算机设备可通过第一状态获取模块320执行获取待测固态硬盘与主板的连接状态,连接状态为已连接或未连接。计算机设备可通过第一固件运行模块330执行当连接状态为未连接时,运行第一固件,得到第一测试结果。计算机设备可通过第二状态获取模块340执行当第一测试结果为测试成功时,重新获取待测固态硬盘与主板的连接状态。计算机设备可通过第二固件运行模块350执行当连接状态为已连接时,运行第二固件,得到第二测试结果。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:获取测试固件,测试固件包括第一固件和第二固件;获取待测固态硬盘与主板的连接状态,连接状态为已连接或未连接;当连接状态为未连接时,运行第一固件,得到第一测试结果;当第一测试结果为测试成功时,重新获取待测固态硬盘与主板的连接状态;当连接状态为已连接时,运行第二固件,得到第二测试结果。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:检测待测固态硬盘在预设时长内是否与主板建立通信连接;当在预设时长内待测固态硬盘与主板建立通信连接时,连接状态为已连接;当在预设时长内待测固态硬盘未与主板建立通信连接时,连接状态为未连接。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:当检测到来自主板发送的数据或连接请求时,判定连接状态为已连接;当未检测到来自主板发送的数据或连接请求时,判定连接状态为未连接。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:当第二测试结果为测试成功时,获取第三固件,第三固件用于替换第二固件;当第二测试结果为测试失败时,判定待测固态硬盘为待修产品。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:当第一测试结果为测试失败时,判定待测固态硬盘为待修产品。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:获取测试固件,测试固件包括第一固件和第二固件;获取待测固态硬盘与主板的连接状态,连接状态为已连接或未连接;当连接状态为未连接时,运行第一固件,得到第一测试结果;当第一测试结果为测试成功时,重新获取待测固态硬盘与主板的连接状态;当连接状态为已连接时,运行第二固件,得到第二测试结果。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:检测待测固态硬盘在预设时长内是否与主板建立通信连接;当在预设时长内待测固态硬盘与主板建立通信连接时,连接状态为已连接;当在预设时长内待测固态硬盘未与主板建立通信连接时,连接状态为未连接。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:当检测到来自主板发送的数据或连接请求时,判定连接状态为已连接;当未检测到来自主板发送的数据或连接请求时,判定连接状态为未连接。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:当第二测试结果为测试成功时,获取第三固件,第三固件用于替换第二固件;当第二测试结果为测试失败时,判定待测固态硬盘为待修产品。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:当第一测试结果为测试失败时,判定待测固态硬盘为待修产品。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。