技术领域
[0001] 本发明涉及测试技术领域,具体地,涉及固态硬盘的批量测试方法和批量测试系统。
相关背景技术
[0002] 硬盘是计算机系统的主要存储装置,以非挥发性的方式存储系统数据和应用数据。硬盘的性能对计算机系统的性能有重要的影响,例如,硬盘的读写速度影响到文件的读取和写入速度,硬盘的数据可靠性影响到计算机系统稳定性。硬盘的数据损坏甚至可能导致文件系统损坏和操作系统崩溃。
[0003] 随着半导体技术的发展,固态硬盘已经越来越多地取代传统的磁记录硬盘。一方面,固态硬盘具有存储速度快、低耗电、体积小等优点,另一方面,固态硬盘由于电荷存储原理导致容易受到半导体工艺波动的影响,导致产品良率和数据可靠性的降低。因此,在出厂前对固态硬盘进行测试以去除或修正缺陷产品,这是保证产品良率和性能的重要步骤。
[0004] 固态硬盘的测试流程包括测试终端的测试环境配置、测试程序执行、测试状态报告、测试错误(BUG)报告、测试数据上传和测试数据分析。然而,现有的测试流程仍然需要人工进行测试环境配置、人工上传测试数据和人工进行数据分析,因此,现有的测试流程由于人为干预程度高而难以提高测试效率,不适合固态硬盘的批量测试。
具体实施方式
[0040] 以下将参照附图更详细地描述本发明。在各个附图中,相同的元件采用类似的附图标记来表示。为了清楚起见,附图中的各个部分没有按比例绘制。此外,可能未示出某些公知的部分。
[0041] 以下基于实施例对本发明进行描述,但是本发明并不仅仅限于这些实施例。在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本发明。为了避免混淆本发明的实质,公知的方法、过程、流程、元件和电路并没有详细叙述。
[0042] 在本申请中,术语“测试案例”表示测试终端上的单个测试软件执行的基本测试功能,或者测试软件的内部模块执行的基本测试功能。测试软件包括可以购买到或本申请人自有的测试软件,例如,包括:BurnInTest、CDM、sleep、reboot、smartinfo、Data unsafe等。
[0043] 除非上下文明确要求,否则整个说明书和权利要求书中的“包括”、“包含”等类似词语应当解释为包含的含义而不是排他或穷举的含义;也就是说,是“包括但不限于”的含义。在本发明的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
[0044] 下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
[0045] 图1示出根据本发明实施例的固态硬盘的批量测试系统的示意性框图。固态硬盘的批量测试系统100包括测试服务器110、多个测试终端120、220和320。为了清楚起见,在图中仅示出特定数量的测试终端,然而,可以理解,测试终端的数量可以是任意的。
[0046] 用户可以采用任意的用户终端访问测试服务器110。用户终端包括移动和/或非移动设备,例如,照相机、蜂窝电话、计算机终端、桌上计算机、电子阅读器、传真机、自助服务终端、上网本计算机、笔记本计算机、因特网设备、支付终端、个人数字助理、媒体播放器和/或记录器、测试服务器、机顶盒、智能电话、平板个人计算机、超移动个人计算机、有线电话、其组合等等。用户终端可以是便携式的或静止的。作为非限制的示例,在此描述的测试终端优选地是一个或多个蜂窝电话、桌上计算机、膝上计算机、测试服务器、智能电话和平板个人计算机的形式。
[0047] 测试服务器110例如包括第一通信模块和第二通信模块,分别提供第一网络和第二网络的网络接口,用于接收和发送数据。第一通信模块和第二通信模块例如各自包括天线、发射器、接收器、收发器、转发器、网络接口设备(例如,网络接口卡)、或其任意组合。
[0048] 测试终端120、220和320例如包括第三通信模块,提供第二网络的网络接口,用于接收和发送数据。第三通信模块例如包括天线、发射器、接收器、收发器、转发器、网络接口设备(例如,网络接口卡)、或其任意组合。
[0049] 测试服务器110经由第一网络与用户终端进行数据通信。例如,测试服务器110在用户终端上提供用户交互的页面端,以及经由页面端接收用户创建的测试任务计划。第一网络可以是有线和/或无线网络,例如,WiFi网络、有线以太网、蜂窝电话网(5G、4G等等)、蓝TM牙 网络、近场通信(NFC)、ZigBee网络、有线电话网等。第一网络可以是基于以太网协议连接成的局域网,也可以是基于因特网协议连接成的互联网。作为非限制性的示例,在此描述的第一网络优选地是互联网,用户终端可以在任意的地理位置访问测试服务器110。
[0050] 测试服务器110经由第二网络与测试终端120、220和320进行数据通信。例如,测试服务器110向测试终端120、220和320发送测试指令,以及从测试终端120、220和320接收测试数据和测试日志。第二网络可以是有线和/或无线网络,例如,WiFi网络、有线以太网、蜂TM窝电话网(5G、4G等等)、蓝牙 网络、近场通信(NFC)、ZigBee网络、有线电话网等。作为非限制性的示例,在此描述的第二网络是基于以太网协议连接成的局域网,测试服务器110将第一网络和第二网络彼此隔离,提供测试服务器110访问测试终端120、220和320的安全网络环境。
[0051] 优选地,测试服务器110是具有文件系统或数据库系统的独立计算机系统,因此,测试服务器110可以执行文件操作和数据库操作,用于保存测试数据和测试日志。进一步地,测试服务器110还可以在数据库中保存测试终端120、220和320的测试环境配置,例如,测试终端120、220和320各自支持的测试案例类型。
[0052] 测试服务器110提供网页端,所述网页端用于接收用户指令以创建测试任务计划以及显示测试终端120、220和320的状态和测试案例的日志内容。用户制订的测试任务计划包括测试案例集,测试案例集包括不同类型的多个测试案例。
[0053] 测试终端120、220和320分别安装有测试软件以执行至少一个测试案例。测试案例是测试软件或其内部模块的基本测试功能。测试终端120、220和320根据各自的测试环境配置分别支持相应类型的测试案例。
[0054] 优选地,测试服务器110安装分发工具(AutoTestTask)。测试服务器110采用分发工具(AutoTestTask),根据测试终端120、220和320分别支持的测试案例类型自动分发测试案例集。因此,测试终端120、220和320中的至少两个测试终端分别执行不同类型的测试案例。
[0055] 进一步地,测试终端120、220和320中向测试服务器110上传测试数据,以及向测试服务器110定时反馈测试日志。测试服务器110根据测试日志的日志时间和/或日志内容获取测试错误信息;以及在错误信息出现时进行报警。例如,测试服务器110在网页端高亮显示日志内容,和/或向用户的电子邮箱发送报警邮件。
[0056] 图2示出图1所示的固态硬盘的批量测试系统中测试终端的示意性框图。
[0057] 在本实施例中,测试终端120是独立的计算机系统。在替代的实施例中,测试终端120是具有计算机系统的主要功能的专用测试设备。例如,专用测试设备可以省去计算机系统的外部设备,和/或支持多个固态硬盘。
[0058] 如图2所示,测试终端120包括:处理器121,以及,经由系统总线与处理器121耦合的内存122、固态硬盘123、网络适配器124、I/O接口126。测试终端120的I/O接口用于连接显示器127和外部设备128(例如键盘、鼠标、打印机等)。内存122包括RAM(随机存取存储器)1221、ROM(只读存储器)1222,其中,RAM 1221用于加载操作系统、用户程序以及用于存储运行时数据,ROM 1222用于存储引导程序。应当理解,图2所示的示意性框图仅仅是为了示例的目的,而不是对本发明范围的限制。在某些情况下,可以根据具体情况增加或减少某些设备。
[0059] 网络适配器125经由第二网络连接测试服务器110。作为非限制性的示例,在此描述的第二网络是基于以太网协议连接成的局域网。测试服务器110将第一网络和第二网络彼此隔离,提供测试终端120访问测试服务器110的安全网络环境。
[0060] 处理器121用于执行测试软件以执行至少一个测试案例。测试案例是测试软件或其内部模块的基本测试功能。测试终端120根据自身的测试环境配置分别支持相应类型的测试案例。
[0061] 固态硬盘123包括存储器控制器和闪存存储器。存储器控制器的主要作用是进行接口转换,将主机的数据操作指令转换成闪存存储器的执行指令,以及进行地址译码。闪存存储器作为固态硬盘123的存储介质。
[0062] 固态硬盘123作为计算机系统的主要辅助存储器。固态硬盘123的初始化包括在固态硬盘123中写入操作系统(例如,Windows系统)、测试软件和链接工具(mysqlautolink)和测试工具(SSDAutoTest)。
[0063] 在本实施例中,固态硬盘123本身作为批量测试系统的测试对象。测试终端120执行固态硬盘的批量测试方法的至少一些步骤,包括:在测试终端120上启动测试软件以执行测试案例集的案例子集;以及上传测试终端120的测试结果,从而完成测试任务计划的一部分测试。
[0064] 图3示出根据本发明实施例的固态硬盘的批量测试方法的流程图。例如,采用图1所示的固态硬盘的批量测试系统来执行图3所示的批量测试方法。
[0065] 在步骤S01中,在测试终端上预先安装多个固态硬盘。
[0066] 在本实施例中,测试终端例如是独立的计算机系统,包括固态硬盘接口,例如SATA接口、PCI‑E接口、AHCI接口、或者NVMe接口,其中,SATA、PCI‑E是总线标准,AHCI和NVMe是协议标准。固态硬盘根据产品类型的不同具有不同的接口,测试终端的接口类型与固态硬盘的接口类型一致,利用相应接口类型的插座连接固态硬盘。多个固态硬盘仅需在第一次测试任务前安装在测试终端上,无需后续操作。
[0067] 在步骤S02中,对固态硬盘进行初始化。
[0068] 在本实施例中,采用初始化模块(也称为“开卡模块”),在固态硬盘中依次写入固件、操作系统(例如,Windows系统)、测试软件和链接工具(mysqlautolink)和测试工具(SSDAutoTest)。
[0069] 在该步骤中,在新的固态硬盘中写入新固件,或者对已经初始化的固态硬盘更新固件。进一步地,对固态硬盘的存储块进行坏块筛选。例如,采用已知的可靠性验证测试(reliability demonstration test,rdt)进行坏块筛选,其中,在固态硬盘的最高工作温度下对固态硬盘进行写数据和读数据操作,并且统计读数据的错误比特翻转数,最后根据错误比特翻转数筛选出固态硬盘的坏块。
[0070] 在固态硬盘上安装操作系统、测试软件和链接工具之后,测试终端自动启动链接工具,向测试服务器发送就绪信息。测试服务器提供网页端(Tub),将多个测试终端的状态显示在网页端上,即,脱机状态和在线状态之一。初次搭建环境后,每个测试终端都预先和其支持的测试案例类型完成绑定,之后无需再行设定,服务器只需根据测试指令中的案例编号对应的案例类型分发到相应的测试终端。
[0071] 在上述多个测试终端就绪之后,测试终端采用链接工具(mysqlautolink),分别向测试服务器发送测试环境配置信息。根据测试终端的测试环境配置(硬件配置和软件配置),测试终端可以执行不同类型的测试案例。例如,如果测试终端的操作系统为DOS系统,则测试终端可以执行的测试案例包括DOS系统测试案例。测试服务器在数据库中保存测试终端的测试环境配置信息,测试环境配置信息包括测试终端的终端编号以及测试终端支持的测试案例类型。
[0072] 在步骤S03中,测试服务器根据创建的测试任务计划向多个测试终端分发测试案例集。
[0073] 在本实施例中,在网页端创建测试任务计划,测试任务计划包括用户设置的测试参数和用户选择的测试案例集。
[0074] 在本实施例中,测试服务器采用分发工具(AutoTestTask)进行测试案例集的自动分发。
[0075] 该分发工具按照多个测试终端的测试环境配置信息,将测试案例集分成多个测试终端分别支持的案例子集,以及向多个测试终端发送与案例子集相关的测试指令。
[0076] 测试服务器在数据库中建立测试案例集相应的测试日志。测试日志例如是数据库中的数据表,包括终端编号、案例编号、以及日志记录等字段。
[0077] 在步骤S04中,测试终端根据接收的测试指令执行测试案例。
[0078] 在本实施例中,测试终端采用测试工具(SSDAutoTest)进行测试指令的解析和执行。
[0079] 该测试工具根据测试指令可以获得案例编号,根据案例编号启动相应的测试软件。测试软件包括可以购买到或本申请人自有的测试软件,例如,包括:BurnInTest、CDM、sleep、reboot、smartinfo、Data unsafe等。
[0080] 在步骤S05中,测试终端向测试服务器上传测试结果。
[0081] 在本实施例中,测试结果包括测试数据和测试日志。测试工具将测试软件获得的测试数据上传至测试服务器。例如,以FTP上传方式将测试软件的的测试数据等上传至测试服务器,作为文本数据进行保存。
[0082] 进一步地,测试工具可以查询测试软件的系统日志,以及根据系统日志生成测试日志。测试日志表示测试软件的执行状态,包括三种状态:In Progress、PASS、FAIL,即:进行中、通过、失败。如果在测试软件的执行期间出现错误,则,测试工具根据系统日志的内容生成错误信息,包括四种错误:function、data、efficiency、UNC,即:功能错误、数据错误、性能错误、校验错误。根据错误信息可以快速定位出现错误的测试终端和错误类型,用户可以实时获知测试错误的报警信息以及进行错误处理。
[0083] 测试工具采用定时方式(例如,每隔5分钟)生成测试日志,以及向测试服务器发送测试日志,在测试服务器的数据库中保存为测试日志的日志记录。
[0084] 在步骤S06中,测试服务器在测试任务计划出现错误时进行报警。
[0085] 在本实施例中,测试服务器采用上述的网页端(Tub)和邮件系统进行报警。用户可以根据网页端的报警信息或邮件系统的报警邮件检查和处理测试终端问题。
[0086] 网页端包括多个测试终端的状态框,用于分别显示多个测试终端执行的测试案例的日志记录。测试服务器每隔5分钟读取测试日志的日志记录,以判断是否出现测试错误。测试服务器在日志记录中解析出日志时间和日志内容,在相应测试终端的状态框中更新日志记录。如果测试日志中的最新日志记录的日志时间已经过时5分钟(即,测试软件在5分钟的时间段中未更新系统日志),或者测试日志中的最新日志记录的日志内容包括错误信息,则该测试终端的状态框的相应日志记录高亮显示(例如,文字标红)。
[0087] 进一步地,测试服务器保存有用户的电子邮箱。测试服务器在出现测试错误10分钟后,继续判断测试错误是否消除。测试服务器在测试日志中解析出日志时间和日志内容,根据日志时间和日志内容判断测试错误是否消除。如果未消除,则测试服务器向用户的电子邮箱发送报警邮件。
[0088] 图4示出图3所示固态硬盘的批量测试方法中测试案例集分发的流程图的实例。
[0089] 在本实施例中,测试服务器采用分发工具(AutoTestTask)进行测试案例集的自动分发。
[0090] 在步骤S11中,测试服务器提供网页端,用户在网页端创建测试任务计划,测试服务器响应用户的提交动作,接收测试任务计划。
[0091] 在步骤S12,测试服务器从测试任务计划中获得测试案例集。
[0092] 测试任务计划包括用户设置的测试参数和用户选择的测试案例集。例如,测试参数包括:测试开始时间、测试时长、重复次数等,测试案例集包括:选自系统测试案例、性能测试案例、掉电测试案例、功耗测试案例、DOS系统测试案例、固态硬盘脚本测试中的至少一个测试案例。
[0093] 采用案例编号区分不同的测试案例。测试案例的案例编号包括:
[0094] 6100xx系列表示掉电测试案例,包括:异常掉电测试案例、数据盘掉电测试案例等;
[0095] 60XX系列表示系统测试案例;
[0096] 62XX系列表示性能测试案例;
[0097] 3XXX系列表示DOS系统测试案例;
[0098] 5XXX系列表示功耗测试案例;
[0099] 2XXX系列表示SATA固态硬盘脚本测试;
[0100] 1XXX系列表示PCIE固态硬盘脚本测试。
[0101] 在本实施例中,与测试任务计划相关联的测试案例集包括:系统测试案例(案例编号60XX)、性能测试案例(案例编号62XX)、以及固态硬盘脚本测试(案例编号1XXX和2XXX)。
[0102] 在步骤S13中,测试服务器获得多个测试终端的测试环境配置信息。
[0103] 测试服务器的数据库预先保存多个测试终端的测试环境配置信息。测试环境配置信息包括测试终端的终端编号以及支持的测试案例集。测试服务器读取数据库中的测试环境配置信息,以获得测试终端120、220和320支持的测试案例集。
[0104] 在本实施例中,测试终端120、220和320根据各自的测试环境配置分别支持相应类型的测试案例。测试终端120支持的测试案例集包括系统测试案例(案例编号60XX)、性能测试案例(案例编号62XX),测试终端220支持的测试案例集包括系统测试案例(案例编号60XX)、性能测试案例(案例编号62XX),测试终端320支持的测试案例集包括固态硬盘脚本测试(案例编号1XXX和2XXX)。
[0105] 在步骤S13中,测试服务器根据测试环境配置信息将测试案例集分成案例子集。
[0106] 测试终端120、220和320共同执行测试任务计划。测试服务器将测试案例集分成测试终端120、220和320分别支持的案例子集,以及向测试终端120、220和320发送与案例子集相对应的测试指令。
[0107] 在本实施例中,测试终端120执行系统测试案例(案例编号60XX)共一个测试案例,测试终端120执行性能测试案例(案例编号62XX)共一个测试案例,测试终端220执行固态硬盘脚本测试(案例编号1XXX和2XXX)共两个测试案例。
[0108] 测试指令包括多个参数,包括指令数、固态硬盘信息(包括SSD主控芯片型号、颗粒型号、固件版本号)、案例编号,在多个参数之间采用间隔符如逗号分开。
[0109] 依照本发明的实施例如上文所述,这些实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施例。显然,根据以上描述,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地利用本发明以及在本发明基础上的修改使用。本发明仅受权利要求书及其全部范围和等效物的限制。