CN114996127A - 固态硬盘固件模块智能化测试方法及系统 - Google Patents

固态硬盘固件模块智能化测试方法及系统 Download PDF

Info

Publication number
CN114996127A
CN114996127A CN202210539597.1A CN202210539597A CN114996127A CN 114996127 A CN114996127 A CN 114996127A CN 202210539597 A CN202210539597 A CN 202210539597A CN 114996127 A CN114996127 A CN 114996127A
Authority
CN
China
Prior art keywords
test
module
test case
case
cases
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.)
Pending
Application number
CN202210539597.1A
Other languages
English (en)
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.)
Exascend Technology Wuhan Co ltd
Original Assignee
Exascend Technology Wuhan 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 Exascend Technology Wuhan Co ltd filed Critical Exascend Technology Wuhan Co ltd
Priority to CN202210539597.1A priority Critical patent/CN114996127A/zh
Publication of CN114996127A publication Critical patent/CN114996127A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/10Test algorithms, e.g. memory scan [MScan] algorithms; Test patterns, e.g. checkerboard patterns 
    • 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)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种固态硬盘固件模块智能化测试方法及系统,1方法包括以下步骤:准备测试实施条件;获取模块测试申请指令;当接收到模块测试申请指令后,控制触发模块自动化测试;获取主模块和关联模块的测试指定工况;获取测试用例关键字;根据测试用例关键字,获取包括模块名、测试产品的协议的关键字,执行从测试用例数据库中筛选测试用例的操作指令;对筛选出的测试用例执行测试用例分配和测试的操作指令;获取测试用例的测试结果。本申请以测试用例为基础,根据测试用例的关键信息进行测试用例的模块化管理以及智能筛选,形成快速、准确、有针对性的SSD固件模块化测试流程,有效提升了固态硬盘固件模块的测试效率。

Description

固态硬盘固件模块智能化测试方法及系统
技术领域
本发明涉及固态硬盘技术领域,具体是涉及一种固态硬盘固件模块智能化测试方法及系统。
背景技术
目前SSD产品由于其性能高、功耗低等优势,已广泛应用于各种场合,如,消费级、工业级、企业级等各类应用环境。而其中的一大核心组成部分——固件,起到了至关重要的作用。加快对不同原厂新一代NAND Flash的支持与高效达成客户所需求的功能、快速抢占市场,就成了SSD各个厂商的必备能力。提高整个产品的开发速度、快速高效的进行产品测试,提早验证和发现产品缺陷并解决,对于SSD产品的稳定性和可靠性至关重要。
伴随着NAND的工艺的不断改进、固态硬盘所支持协议的不断升级而新增不同的特性和功能、以及客户所需求的功能不断变化等环境及技术背景下,SSD产品固件的模块化是加快产品研发和测试的基础。所以,在SSD产品设计和Firmware实现都会按照功能进行模块的划分,每个模块的功能相互独立,通过接口进行互联(调用)。这样不仅能够最大程度的实现并行开发、缩短开发周期,还能在出现问题的情况下,方便固件开发人员分析,快速定位问题并加快调试、解决缺陷进度。
根据主流的产品开发验证模式,开发人员在完成某一模块的单一功能后,就可以进行相应的测试,以确保基础功能的正确性的前提下,不会影响其他模块的功能。在模块代码实现过程中,既有相对独立的模块,即,不需要和其他的模块交互或是存在极少交互;也有相对复杂的模块,即,存在调用多个外部模块的功能或是提供多个接口给其他的模块所调用。在模块测试过程中,根据产品的协议要求与功能设计文档,测试部门的工程师会开发不同的测试用例进行单一与复杂功能的验证。测试用例包含以下主要要素:
a.测试用例名称;
b.该测试用例前提条件;
c.测试的步骤;
d.各个测试步骤的期望行为或是期望值等;
e.测试用例的测试结果;
SSD的设计和生产厂商都会有SQA部门,专门负责SSD研发阶段的测试用例开发和验证工作。同时,也会有内部的测试平台与工具,基于存在的测试平台与工具,加上产品支持的协议与设计要求等文档,进行Test Case的设计、实现、调试以及产品的测试,以确保SSD各项参数与功能符合产品规范和设计要求。
根据产品规范、设计要求以及固件开发人员所实现模块或特性功能的复杂程度,可能会有几十甚至成百个测试用例进行某一模块或特性功能的验证;加之SSD产品的模块数量较多,综合下来,会有上千甚至上万级别的庞大Test Case存在;而且也会随着时间和问题的积累不断完善和补充测试用例。
所有这些测试用例的存在,加之有计划的回归测试,给产品的稳定性和可靠性提供了有力保障和质量评估。同时,产品测试管理人员也利用这些测试用例评估缺陷的严重性、缺陷的优先级等要素。那么,如何利用已有的这些测试用例,进行准确快速高效的模块回归测试,就是本专利提出的一种智能选取测试用例并进行自动化固态硬盘固件模块测试的方法。
现有测试技术方案:
目前的SSD产品测试过程,主要有以下两种关于Test Case(测试用例)和TestSuites(测试套件)的管理和测试方案:
1)以Test Suites为单位进行回归测试:将所开发的单个测试用例,按照基本类别进行分类整合,并将相关类别的测试用例集中于某一测试套件中,则该Test Suites中存在若干相关模块的测试用例,以此为单位进行回归测试;如图1所示,图中:
a)Test Suites1:包含了所有为测试SSD Firmware ModuleA所使用的测试用例;
b)Test Suites2:包含了所有为测试SSD Firmware ModuleB所使用的测试用例;
c)每个Test Suites中所包含的测试用例数可以不同,但是都是针对某一固件模块相关的测试用例;
d)默认情况下,执行Test Suites 1的时候,就依次或随机执行其下的1xxx的测试用例;执行Test Suites 2的时候,就依次或随机执行其下的2xxx的测试用例;如图1所示。
2)以Test Case为单位进行回归测试:没有将测试用例归类于测试套件中,各个测试用例单独存在,只标注该测试用例所测试的功能,在进行模块化测试的时候,由项目测试人员加以手动选择和指派测试内容;如图2所示。
在图2中:
a)在各个Test Case名字标识中,包含所测试的模块名字(如,ModA,ModB等)字段,用以明确该测试用例所覆盖的测试模块;
b)每个Test Case均独立存在,测试人员可以测试所有的模块测试用例,也可以挑选出指定的测试用例进行测试;
可以看出,测试用例是SSD产品测试、评估SSD模块健壮性的基础,以上的例子中,只举了简单的Test Suites与Test Case的例子,模块数量和case数量都比较少,在实际的产品研发过程中,所涉及模块的数量有几十个,而且每个模块都有几十上百个Test Case进行测试验证,所以,上述的示意图信息将会很庞大。
在现有的测试方法中,会存在模块测试针对性较差的情况,只要模块功能有修改,就会全部安排重新进行回归测试,就会投入较多的时间成本;或是只针对特定的TestSuites进行测试,其中相关的模块并不能精确测试到,测试覆盖率不完整。
现有的测试技术所存在的问题:
目前很多情况下,SSD的固件模块测试就是由开发人员自身完成,主要选择对应的Test Suites进行各自测试或是进行极少的测试项目;对于衡量与评估模块功能比较欠缺,由于是各自进行测试,一些测试结果等也不便于集中管理分析与管控;甚至是有一些开发人员就省略步骤,不进行测试或是不清楚是否要进行某项测试,从而可能导致一些稳定性等问题,使得后续的调试与开发工作加重;与此同时,也会增加产品或项目管理与沟通的成本;
现有的测试方案,对于模块测试的针对性较差,存在只要是有模块代码的新增和修改,就全部进行所有项目的测试,花费较多时间;或是只是测试其中的单个Test Suites,一些和其他交互的模块测试用例缺失,从而导致不能很好的平衡时间与测试覆盖率之间的关系;
以Test Suites为单位进行回归测试,这种方式对于单个独立的模块回归测试效率较高,但对于多个固件模块相互交互的情况,这样的测试效率就会有所降低。如果测试所有相关的Test Suites则一些测试用例就会冗余,造成时间的浪费;例如,以3个SSD固件模块为例:
模块A、模块B、模块C所对应的Test Suites分别为Test Suites A(包含100个TestCases)、Test Suites B(包含60个Test Cases)、Test Suites C(包含150个Test Cases);每个Test Suites与模块C相关的Test Case如表1所示;
表1固件模块Test Suites与Test Case举例关系示意表
Figure BDA0003647636110000051
模块C有新添加(或修改)功能导致对应代码的变更;
模块A和模块B会调用模块C的功能;但是模块A和模块B的基础功能没有变化;
如果进行模块C的回归测试,则需要安排Test Suites C的测试;由于模块A和模块B也是调用了模块C的部分功能。所以在Test Suites A、Test Suites B中与模块C相关的测试用例进行测试就可以了,与其不相关的测试用例就可以略去。在该例子中,实际只需要执行Test Suites A中的31个Test Case、Test Suites B中的15个Test Case和Test SuitesC中的150个Test Case。
但依照前面所述,以Test Suites为单位进行回归测试就是要执行其包含的所有Test Case,因此,就要安排执行Test Suites A、Test Suites B、Test Suites C中所有的case,而这就要花费相对多的时间进行测试;如果从Test Suite中人工进行Test Case的筛选会花费比较多的时间,同时降低了Test Case选择的准确度;
以Test Case为单位进行回归测试,主要面临的是模块和Test Case数量比较多的管理问题,当选择一个模块测试的时候要进行精确的选择和区分,哪些Test Case需要安排,哪些可以省略,哪些是高优先级的测试,哪些是低优先级的安排;
还是以表1为例,如果测试模块C的功能,则需要在310个Test Case中选取196个Test Case进行测试;这对于人为区分和选择也是比较困难的,而且容易出现遗漏等误差;
不管是以Test Suites为单位还是Test Case为单位进行回归测试,都是需要人为进行模块的甄别和Test Case的筛选,就会存在人为遗漏与误差;
当测试结束后,在人工检测测试结果的过程中,需要对Test Case进行逐项分析与检查,存在误判的可能性;对测试结果的整理和汇报也会是有一个重复的操作;
从表1的示意表中可以看出,当测试的模块增多时,需要管理的Test Case会非常多,管理和分类也需要花费大量的时间,可以通过智能自动化等技术将管理的时间缩短,提高效率,测试管理人员只需要进行相应模块和Test Case的规则管理与检查即可;
当有一些Test Case发生变更(如新增和删减等)的时候,也要通知相关的测试管理人员,进行测试内容的变更,其再进行一一核对,不便于后续的变通和扩展,管理和维护的成本也较大。
发明内容
本发明的目的是为了克服上述背景技术的不足,提供一种固态硬盘固件模块智能化测试方法及系统。
第一方面,本申请提供了一种固态硬盘固件模块智能化测试方法,其特征在于,包括以下步骤:
步骤S1、准备包括在Test Case定义中新增主模块和关联模块要素进行管理的测试实施条件;
步骤S2、获取模块测试申请指令;
步骤S3、当接收到模块测试申请指令后,控制在Jenkins页面执行信息输入操作触发模块自动化测试;
步骤S41、获取主模块和关联模块的测试指定工况;
步骤S42、根据主模块和关联模块的测试指定工况,执行不同的测试用例分析与确定方法,获取测试用例关键字;
步骤S5、根据测试用例关键字,获取包括模块名、测试产品的协议的关键字,执行从测试用例数据库中筛选测试用例的操作指令;
步骤S6、对筛选出的测试用例执行测试用例分配和测试的操作指令;
步骤S7、获取测试用例的测试结果。
根据第一方面,在第一方面的第一种可能的实现方式中,所述步骤S1,还包括准备包括以下测试实施条件:
建立基础测试用例集合;
建立测试用例数据库;
建立测试结果数据库。
根据第一方面,在第一方面的第二种可能的实现方式中,所述步骤S42,具体包括以下步骤:
步骤S421、当获取到主模块和关联模块的测试指定指令时,控制执行添加指定的模块名称至后续的测试用例选择关键字中的操作指令;
步骤S422、当未获取到指定主模块和管理模块指定指令时,控制分析程序执行自动解析代码所修改的模块,并添加至后续测试用例选择的关键字中的操作指令。
根据第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述步骤S422中,解析方法包括以下步骤:
步骤S4221、获取从代码分支的修改代码中修改的文件夹名称;
步骤S4222、获取修改的文件夹名称;
步骤S4223、解析修改的文件夹中指定的文件说明,获取模块关键字,根据模块关键字获取主模块与关联模块信息。
根据第一方面,在第一方面的第四种可能的实现方式中,所述步骤S5中,所述筛选测试用例主要包括:
步骤S51、筛选出主模块的测试用例;
步骤S52、筛选出显示为测试用例的关联模块。
根据第一方面,在第一方面的第五种可能的实现方式中,所述步骤S52,具体包括以下步骤:
步骤S521、获取关联模块的测试用例的测试时间,比对关联模块的测试用例的测试时间和预设测试时间,获取管理模块的测试用例在预设测试时间内的测试完成工况;
步骤S522、根据测试完成工况,控制执行进一步筛选关联模块的测试用例的操作指令。
根据第一方面,在第一方面的第六种可能的实现方式中,所述步骤S7之后,还包括以下步骤:
步骤S8、根据测试结果中测试用例的测试成败工况,并对测试失败的测试用例执行不同的后续测试操作。
根据第一方面的第六种可能的实现方式,在第一方面的第七种可能的实现方式中,所述步骤S8之后,还包括以下步骤:
步骤S9、控制执行测试结果上传和汇报操作指令。
第二方面,本申请提供了一种固态硬盘固件模块智能化测试系统,包括:
测试实施条件准备模块,用于准备包括在Test Case定义中新增主模块和关联模块要素进行管理的测试实施条件;
模块验证请求指令获取模块,用于获取模块测试申请指令;
模块测试触发模块,与所述模块验证请求指令获取模块通信连接,用于当接收到模块测试申请指令后,控制在Jenkins页面执行信息输入操作触发模块自动化测试;
模块测试指定工况获取模块,用于获取主模块和管理模块的测试指定工况;
测试用例关键字获取模块,与所述模块测试指定工况获取模块通信连接,用于根据主模块和管理模块的测试指定工况,执行不同的测试用例分析与确定方法,获取测试用例关键字;
测试用例筛选模块,与测试用例关键字获取模块通信连接,用于根据主模块和相关模块的信息,获取包括模块名、测试长的协议的关键字,执行从测试用例书库库中筛选测试用例的操作指令;
测试用例分配和测试模块,与所述测试用例筛选模块通信连接,对筛选出的测试用例执行测试用例分配和测试的操作指令;
测试结果获取模块,用于获取测试用例的测试结果。
根据第二方面,在第二方面的第一种可能的实现方式中,所述测试用例关键字获取模块包括:
第一测试用例关键字获取子模块,与所述模块测试指定工况获取模块通信连接,用于当获取到主模块和关联模块的测试指定指令时,控制执行添加指定的模块名称至后续的测试用例选择关键字中的操作指令;
第二测试用例关键字获取子模块,与所述模块测试指定工况获取模块通信连接,用于获取到指定主模块和管理模块指定指令时,控制分析程序执行自动解析代码所修改的模块,并添加至后续测试用例选择的关键字中的操作指令。
与现有技术相比,本发明的优点如下:
本申请提供的固态硬盘固件模块智能化测试方法,以测试用例为基础,根据测试用例的关键信息进行测试用例的模块化管理以及智能筛选,形成快速、准确、有针对性的SSD固件模块化测试流程,有效提升了固态硬盘固件模块的测试效率;通过测试用例的管理,使得测试标准根据标准化和一致化的优点;通过对测试用例的自动化测试,减少和降低不必要的测试管理人员的人工操作,提升测试管理人员的工作效率,使得重复性的工作简单化,有利于测试管理人员将工作偏重于SSD固件模块测试用例的覆盖率和测试结果的分析上;利用Jenkins的优点,自动分发和执行测试用例,便于测试人员和产品工程师准确快速快速了解SSD产品的稳定性、固件质量等指标,并将一些缺陷以及问题及早通过各个测试暴露出来,减少以及降低终端用户错误率,缩短产品的研发周期、为产品的快速量产节省时间;本申请提供的固态硬盘固件模块智能化测试方法,不仅使用与NVMe SSD产品,同样适用于SATA SSD产品以及其他相关协议的产品。
附图说明
图1为以Test Suites为单位进行回归测试示意图;
图2为以Test Case为单位进行回归测试示意图;
图3为本申请实施例提供的固态硬盘固件模块智能化测试方法的方法流程图;
图4为本申请实施例提供的固态硬盘固件模块智能化测试系统的功能模块框图;
图5为本申请实施例提供的固态硬盘固件模块智能化测试系统的结构示意图。
具体实施方式
现在将详细参照本发明的具体实施例,在附图中例示了本发明的例子。尽管将结合具体实施例描述本发明,但将理解,不是想要将本发明限于所述的实施例。相反,想要覆盖由所附权利要求限定的在本发明的精神和范围内包括的变更、修改和等价物。应注意,这里描述的方法步骤都可以由任何功能块或功能布置来实现,且任何功能块或功能布置可被实现为物理实体或逻辑实体、或者两者的组合。
为了使本领域技术人员更好地理解本发明,下面结合附图和具体实施方式对本发明作进一步详细说明。
注意:接下来要介绍的示例仅是一个具体的例子,而不作为限制本发明的实施例必须为如下具体的步骤、数值、条件、数据、顺序等等。本领域技术人员可以通过阅读本说明书来运用本发明的构思来构造本说明书中未提到的更多实施例。
现有的固态硬盘固件的测试方法存在模块测试的针对性较差,存在只要是有模块代码的新增和修改,就全部进行所有项目的测试,话费较多时间,或是只是测试其中的单个Tset Suites,一些和其他交互的模块测试用例缺失,从而导致不能很好地平衡时间和测试覆盖率之间的关系的技术问题。
有鉴于此,参见图3所示,本申请提供一种固态硬盘固件模块智能化测试方法,从管理Test Case入手,基于Jenkins集成的触发机制、利用数据库关联与查询等技术,来实现一种智能选取测试用例、并实现固态硬盘固件模块自动测试的方法与结构,以达到快速进行SSD产品的模块回归测试、加速评估SSD产品的稳定性和健壮性评估、快速找出产品缺陷和Firmware质量筛选之目的。主要解决以下几个问题:
智能分析SSD固件所变更的模块,并能据分析结果定义出Test Case智能自动化选择的标准;
提高Test Case选择的效率,引入数据库技术,并与Test Case定义的关键信息关联,避免人为进行Test Case的筛选,降低人为操作的遗漏与误差;
根据模块进行Test Case选择之后,根据测试平台与环境进行自动测试,自动监测测试结果,智能分析测试结果并上传数据库;
提高测试的效率,降低人为沟通和管理成本;也使得SSD固件模块化的测试更加标准化和统一化,同时,也便于后续的模块测试数据分析与缺陷预测;
自动生成测试的覆盖率和测试结果报告,使得测试人员和产品工程师准确快速的了解SSD产品的掉电稳定性、固件质量等指标;
该方法对于存在大量Test Case情况下的模块化回归测试有较大益处。
主要包括以下步骤:
步骤S1、准备包括在Test Case定义中新增主模块和关联模块要素进行管理的测试实施条件;
步骤S2、获取模块测试申请指令,具体实现为产品开发工程是在开发代码分支上进行模块功能的开发,可以安装模块开发阶段或开发结点,自己或相产品模块负责人申请,进行基本模块功能验证;
步骤S3、当接收到模块测试申请指令后,控制在Jenkins页面执行信息输入操作触发模块自动化测试,具体实现为接收到模块测试请求后,由产品开发或模块管理人员,在Jenkins页面进行信息的输入和触发模块自动化测试,页面设置的信息主要包含以下:
1)包含实现功能模块的开发代码库分支名;
2)可指定所涉及的主模块和其他模块名;这个信息也可以省略不指定,在这种情况下,则由自动化程序进行智能代码分析,得到其代码改动的主模块和相关模块信息;
3)设置在某一测试用例失败后,是继续测试后续的测试用例还是测试中止等选项;
4)其他必要的设置选项等;
步骤S41、获取主模块和关联模块的测试指定工况;
步骤S42、根据主模块和关联模块的测试指定工况,执行不同的测试用例分析与确定方法,获取测试用例关键字;
步骤S5、根据测试用例关键字,获取包括模块名、测试产品的协议的关键字,执行从测试用例数据库中筛选测试用例的操作指令;
步骤S6、对筛选出的测试用例执行测试用例分配和测试的操作指令;
步骤S7、获取测试用例的测试结果。
本申请提供的固态硬盘固件模块智能化测试方法,以测试用例为基础,根据测试用例的关键信息进行测试用例的模块化管理以及智能筛选,形成快速、准确、有针对性的SSD固件模块化测试流程,有效提升了固态硬盘固件模块的测试效率;通过测试用例的管理,使得测试标准根据标准化和一致化的优点;通过对测试用例的自动化测试,减少和降低不必要的测试管理人员的人工操作,提升测试管理人员的工作效率,使得重复性的工作简单化,有利于测试管理人员将工作偏重于SSD固件模块测试用例的覆盖率和测试结果的分析上;利用Jenkins的优点,自动分发和执行测试用例,便于测试人员和产品工程师准确快速快速了解SSD产品的稳定性、固件质量等指标,并将一些缺陷以及问题及早通过各个测试暴露出来,减少以及降低终端用户错误率,缩短产品的研发周期、为产品的快速量产节省时间;本申请提供的固态硬盘固件模块智能化测试方法,不仅使用与NVMe SSD产品,同样适用于SATA SSD产品以及其他相关协议的产品。
在一实施例中,代码编译测试、代码模拟测试、代码烧录测试为必测项目。
在一实施例中,所述步骤S1中,主模块为该测试用例主要测试的模块功能点,关联模块为测试该主模块时,使用到的与其相互联系的模块功能,关联模块可以不限制一个模块,可以列出所有该测试用例相关联的模块,测试用例所包含的要素包括但不限于:
A、测试用例名称(或编号);
B、该测试用例前提条件,即包括运行该测试用例所要满足的条件等;
C、该测试用例支持的协议(如,ATA,NVMe等);
D、测试用例典型的测试时间(时:H;分:M;秒:S);
E、测试的步骤;
F、各个测试步骤的期望行为或期望值等;
G、测试用例的主模块,即为该测试用例主要测试的模块名;为该测试用例使用到该主模块的命令集,特性功能等;
H、测试用例的关联模块,即为该测试用例测试中所关联的模块名;无关联模块的可以写为无,如果这个测试用例是一个通用的基础测试用例,也可以写为所有。
在一实施例中,所述步骤S1,还包括准备包括以下测试实施条件:
建立基础测试用例集合,该测试用例中包含一些通用、更加基本的测试用例,主要包含基础的数据通路等基础测试,其是所有模块测试的必测项目;
建立测试用例数据库,并按照所有要素定义好的测试用例信息导入至测试用例数据库中,其中包含基础测试用例集合以及非基础测试用例,该数据库需要包含所以有的测试用例信息,所以内容会比较庞大,数据库中的信息举例如表2所示:
表2测试用例数据库信息举例表
Figure BDA0003647636110000151
对于测试用例的更新、增加与删除,均需要通过更新数据库中的文件完成,以便在测试中获取最新的测试用例信息。
建立测试结果数据库,用于存放各个测试用例执行完毕后的结果,包含但不限于以下的关键要素:
a.测试用例名称(或编号);
b.测试用例结果;
c.测试用例测试失败的原因简述;
d.测试用例的执行时间;
e.测试用例所覆盖的模块信息;
f.测试完整日志名称信息;
g.测试用例中获取的SSD的基本信息(如SSD流水号,容量,固件版本、支持的协议以及SSD健康指数信息等);
h.测试用例中获取的测试机基本信息(如机器名称,OS信息,主板型号以及其他硬件信息等);
在一实施例中,所述步骤S42,具体包括以下步骤:
步骤S421、当获取到主模块和关联模块的测试指定指令时,控制执行添加指定的模块名称至后续的测试用例选择关键字中的操作指令;
步骤S422、当未获取到指定主模块和管理模块指定指令时,控制分析程序执行自动解析代码所修改的模块,并添加至后续测试用例选择的关键字中的操作指令。
在一实施例中,所述步骤S422中,解析方法包括以下步骤:
步骤S4221、获取从代码分支的修改代码中修改的文件夹名称;
步骤S4222、获取修改的文件夹名称;
步骤S4223、解析修改的文件夹中指定的文件说明,获取模块关键字,根据模块关键字获取主模块与关联模块信息。
在一实施例中,所述步骤S5中,所述筛选测试用例主要包括:
步骤S51、筛选出主模块的测试用例;
步骤S52、筛选出显示为测试用例的关联模块。
在一实施例中,所述步骤S52,具体包括以下步骤:
步骤S521、获取关联模块的测试用例的测试时间,比对关联模块的测试用例的测试时间和预设测试时间,获取管理模块的测试用例在预设测试时间内的测试完成工况,其中,预设测试时间一般由SQA部门定义,一般定为24小时或更长时间;
步骤S522、根据测试完成工况,控制执行进一步筛选关联模块的测试用例的操作指令,如果在预设测试时间内不能完成所有的测试用例的关联模块测试,则筛选出能够在预设测试时间内完成测试的测试用例的管理模块进行测试。
在一实施例中,一旦无法获取测试用例指定模块的关键字时,控制分析程序发出相关的提示指令和报错指令,此时需要认为进行确认,是否需要更新模块检测的机制与方式。
在一实施例中,所述步骤S7之后,还包括以下步骤:
步骤S8、根据测试结果中测试用例的测试成败工况,并对测试失败的测试用例执行不同的后续测试操作,具体实现为:如果是有某项测试或是某个测试用例测试失败,则根据b.3中的设置决定是否记录失败信息后继续测试后续的测试用例,还是中止后续所有测试用例;
在一实施例中,所述步骤S8之后,还包括以下步骤:
步骤S9、控制执行测试结果上传和汇报操作指令,具体实现为所有测试用例结束后,将测试结果等信息上传至数据库,并可根据需要,将测试结果通过邮件系统发送至相关人员。
本申请主要通过将固态硬盘固件模块的测试用例添加相关的管理信息并整合至数据库,再利用数据库管理与查询等相关技术,根据获取的模块关键字,智能获取需要进行测试的测试用例集合,将这些测试用例发送至测试机器上执行,并进行测试结果检测与汇报。
该智能化方式使得所选择的测试用例标准化,使得所开发的测试用例都很好的进行管理,大大提高模块测试的能力;同时,将模块测试流程统一化,给该模块的交付、确保与其他关联模块之间的交互稳定性检验奠定了基础。
基于同一发明构思,请参考图4,本申请提供了一种固态硬盘固件模块智能化测试系统,包括:
测试实施条件准备模块10,用于准备包括在Test Case定义中新增主模块和关联模块要素进行管理的测试实施条件;
模块验证请求指令获取模块200,用于获取模块测试申请指令;
模块测试触发模块300,与所述模块验证请求指令获取模块200通信连接,用于当接收到模块测试申请指令后,控制在Jenkins页面执行信息输入操作触发模块自动化测试;
模块测试指定工况获取模块410,用于获取主模块和管理模块的测试指定工况;
测试用例关键字获取模块420,与所述模块测试指定工况获取模块通信连接,用于根据主模块和管理模块的测试指定工况,执行不同的测试用例分析与确定方法,获取测试用例关键字;
测试用例筛选模块500,与测试用例关键字获取模块420通信连接,用于根据主模块和相关模块的信息,获取包括模块名、测试长的协议的关键字,执行从测试用例书库库中筛选测试用例的操作指令;
测试用例分配和测试模块600,与所述测试用例筛选模块500通信连接,对筛选出的测试用例执行测试用例分配和测试的操作指令;
测试结果获取模块700,用于获取测试用例的测试结果。
在一实施例中,如图5所示,产品开发工程师在开发代码库分支上进模块功能开发,发出模块基本功能验证请求,产品开发或模块管理人员在Jenkins页面进行信息的输入以触发模块自动化测试,获取到模块自动化测试触发指令后,检索测试用例数据库并获取模块测试用例的关键字,从测试用例数据库中筛选与关键字相关的测试用例,代码编译测试机器、代码模拟测试机器、代码烧录测试机器、基本测试机器、基本功能测试机器、性能测试机器执行模块测试,获取测试结果。
在一实施例中,所述测试用例关键字获取模块包括:
第一测试用例关键字获取子模块,与所述模块测试指定工况获取模块通信连接,用于当获取到主模块和关联模块的测试指定指令时,控制执行添加指定的模块名称至后续的测试用例选择关键字中的操作指令;
第二测试用例关键字获取子模块,与所述模块测试指定工况获取模块通信连接,用于获取到指定主模块和管理模块指定指令时,控制分析程序执行自动解析代码所修改的模块,并添加至后续测试用例选择的关键字中的操作指令。
基于同一发明构思,本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述方法的所有方法步骤或部分方法步骤。
本发明实现上述方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
基于同一发明构思,本申请实施例还提供一种电子设备,包括存储器和处理器,存储器上储存有在处理器上运行的计算机程序,处理器执行计算机程序时实现上述方法中的所有方法步骤或部分方法步骤。
所称处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,处理器是计算机装置的控制中心,利用各种接口和线路连接整个计算机装置的各个部分。
存储器可用于存储计算机程序和/或模块,处理器通过运行或执行存储在存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现计算机装置的各种功能。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(例如声音播放功能、图像播放功能等);存储数据区可存储根据手机的使用所创建的数据(例如音频数据、视频数据等)。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(SmartMedia Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、服务器或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、服务器和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (10)

1.一种固态硬盘固件模块智能化测试方法,其特征在于,包括以下步骤:
步骤S1、准备包括在Test Case定义中新增主模块和关联模块要素进行管理的测试实施条件;
步骤S2、获取模块测试申请指令;
步骤S3、当接收到模块测试申请指令后,控制在Jenkins页面执行信息输入操作触发模块自动化测试;
步骤S41、获取主模块和关联模块的测试指定工况;
步骤S42、根据主模块和关联模块的测试指定工况,执行不同的测试用例分析与确定方法,获取测试用例关键字;
步骤S5、根据测试用例关键字,获取包括模块名、测试产品的协议的关键字,执行从测试用例数据库中筛选测试用例的操作指令;
步骤S6、对筛选出的测试用例执行测试用例分配和测试的操作指令;
步骤S7、获取测试用例的测试结果。
2.如权利要求1所述的固态硬盘固件模块智能化测试方法,其特征在于,所述步骤S1,还包括准备包括以下测试实施条件:
建立基础测试用例集合;
建立测试用例数据库;
建立测试结果数据库。
3.如权利要求1所述的固态硬盘固件模块智能化测试方法,其特征在于,所述步骤S42,具体包括以下步骤:
步骤S421、当获取到主模块和关联模块的测试指定指令时,控制执行添加指定的模块名称至后续的测试用例选择关键字中的操作指令;
步骤S422、当未获取到指定主模块和管理模块指定指令时,控制分析程序执行自动解析代码所修改的模块,并添加至后续测试用例选择的关键字中的操作指令。
4.如权利要求3所述的固态硬盘固件模块智能化测试方法,其特征在于:所述步骤S422中,解析方法包括以下步骤:
步骤S4221、获取从代码分支的修改代码中修改的文件夹名称;
步骤S4222、获取修改的文件夹名称;
步骤S4223、解析修改的文件夹中指定的文件说明,获取模块关键字,根据模块关键字获取主模块与关联模块信息。
5.如权利要求1所述的固态硬盘固件模块智能化测试方法,其特征在于,所述步骤S5中,所述筛选测试用例主要包括:
步骤S51、筛选出主模块的测试用例;
步骤S52、筛选出显示为测试用例的关联模块。
6.权利要求5所述的固态硬盘固件模块智能化测试方法,其特征在于,所述步骤S52,具体包括以下步骤:
步骤S521、获取关联模块的测试用例的测试时间,比对关联模块的测试用例的测试时间和预设测试时间,获取管理模块的测试用例在预设测试时间内的测试完成工况;
步骤S522、根据测试完成工况,控制执行进一步筛选关联模块的测试用例的操作指令。
7.如权利要求1所述的固态硬盘固件模块智能化测试方法,其特征在于,所述步骤S7之后,还包括以下步骤:
步骤S8、根据测试结果中测试用例的测试成败工况,并对测试失败的测试用例执行不同的后续测试操作。
8.权利要求7所述的固态硬盘固件模块智能化测试方法,其特征在于,所述步骤S8之后,还包括以下步骤:
步骤S9、控制执行测试结果上传和汇报操作指令。
9.一种固态硬盘固件模块智能化测试系统,其特征在于,包括:
测试实施条件准备模块,用于准备包括在Test Case定义中新增主模块和关联模块要素进行管理的测试实施条件;
模块验证请求指令获取模块,用于获取模块测试申请指令;
模块测试触发模块,与所述模块验证请求指令获取模块通信连接,用于当接收到模块测试申请指令后,控制在Jenkins页面执行信息输入操作触发模块自动化测试;
模块测试指定工况获取模块,用于获取主模块和管理模块的测试指定工况;
测试用例关键字获取模块,与所述模块测试指定工况获取模块通信连接,用于根据主模块和管理模块的测试指定工况,执行不同的测试用例分析与确定方法,获取测试用例关键字;
测试用例筛选模块,与测试用例关键字获取模块通信连接,用于根据主模块和相关模块的信息,获取包括模块名、测试长的协议的关键字,执行从测试用例书库库中筛选测试用例的操作指令;
测试用例分配和测试模块,与所述测试用例筛选模块通信连接,对筛选出的测试用例执行测试用例分配和测试的操作指令;
测试结果获取模块,用于获取测试用例的测试结果。
10.如权利要求9所述的固态硬盘固件模块智能化测试系统,其特征在于,所述测试用例关键字获取模块包括:
第一测试用例关键字获取子模块,与所述模块测试指定工况获取模块通信连接,用于当获取到主模块和关联模块的测试指定指令时,控制执行添加指定的模块名称至后续的测试用例选择关键字中的操作指令;
第二测试用例关键字获取子模块,与所述模块测试指定工况获取模块通信连接,用于获取到指定主模块和管理模块指定指令时,控制分析程序执行自动解析代码所修改的模块,并添加至后续测试用例选择的关键字中的操作指令。
CN202210539597.1A 2022-05-17 2022-05-17 固态硬盘固件模块智能化测试方法及系统 Pending CN114996127A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210539597.1A CN114996127A (zh) 2022-05-17 2022-05-17 固态硬盘固件模块智能化测试方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210539597.1A CN114996127A (zh) 2022-05-17 2022-05-17 固态硬盘固件模块智能化测试方法及系统

Publications (1)

Publication Number Publication Date
CN114996127A true CN114996127A (zh) 2022-09-02

Family

ID=83027066

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210539597.1A Pending CN114996127A (zh) 2022-05-17 2022-05-17 固态硬盘固件模块智能化测试方法及系统

Country Status (1)

Country Link
CN (1) CN114996127A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116524986A (zh) * 2023-04-23 2023-08-01 深圳市晶存科技有限公司 存储产品的系统级测试方法和系统
CN116705129A (zh) * 2023-05-08 2023-09-05 深圳市晶存科技有限公司 固态硬盘的测试方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116524986A (zh) * 2023-04-23 2023-08-01 深圳市晶存科技有限公司 存储产品的系统级测试方法和系统
CN116524986B (zh) * 2023-04-23 2024-04-19 深圳市晶存科技有限公司 存储产品的系统级测试方法和系统
CN116705129A (zh) * 2023-05-08 2023-09-05 深圳市晶存科技有限公司 固态硬盘的测试方法
CN116705129B (zh) * 2023-05-08 2024-05-07 深圳市晶存科技有限公司 固态硬盘的测试方法

Similar Documents

Publication Publication Date Title
CN107665171B (zh) 自动回归测试方法及装置
CN108459962B (zh) 代码规范性检测方法、装置、终端设备及存储介质
CN114996127A (zh) 固态硬盘固件模块智能化测试方法及系统
CN114546738B (zh) 服务器通用测试方法、系统、终端及存储介质
CN112069073A (zh) 测试用例的管理方法、终端和存储介质
CN112433948A (zh) 一种基于网络数据分析的仿真测试系统及方法
CN110147312A (zh) 软件开发测试方法、装置、计算机装置及存储介质
CN110888804B (zh) 接口测试方法以及接口测试平台
CN117009243A (zh) 芯片性能自动化测试方法、装置、计算机设备及存储介质
CN112148587A (zh) 一种软件测试管理系统和方法
CN111708712A (zh) 用户行为测试用例的生成方法、流量回放方法及电子设备
CN115080389A (zh) 提升指标统计效率的测试系统、方法、设备及存储介质
CN111767218B (zh) 一种用于持续集成的自动化测试方法、设备及存储介质
CN113254326A (zh) 利用Jenkins发布固态硬盘固件代码的方法和系统
CN117493188A (zh) 接口测试方法及装置、电子设备及存储介质
CN110750435A (zh) 一种测试用例的管理方法和装置
CN116090380B (zh) 数字集成电路验证的自动化方法及装置、存储介质和终端
CN113791980B (zh) 测试用例的转化分析方法、装置、设备及存储介质
KR20120111618A (ko) Plc 명령어 테스트 장치 및 방법
CN114546749A (zh) 一种芯片随机测试用例回归方法、装置、设备及可读介质
CN114528214A (zh) 单元测试方法和装置
CN110968342B (zh) 一种版本比对方法、装置及系统
CN115437903A (zh) 接口测试方法、装置、设备、存储介质及程序
CN107102938B (zh) 测试脚本的更新方法及装置
CN114401032B (zh) 面向卫星通信综测仪的测试方法及系统

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