CN112463473B - 一种存储数据流单元测试方法、系统、终端及存储介质 - Google Patents

一种存储数据流单元测试方法、系统、终端及存储介质 Download PDF

Info

Publication number
CN112463473B
CN112463473B CN202011227030.8A CN202011227030A CN112463473B CN 112463473 B CN112463473 B CN 112463473B CN 202011227030 A CN202011227030 A CN 202011227030A CN 112463473 B CN112463473 B CN 112463473B
Authority
CN
China
Prior art keywords
data stream
branch
test
error
input
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
CN202011227030.8A
Other languages
English (en)
Other versions
CN112463473A (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.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent 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 Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202011227030.8A priority Critical patent/CN112463473B/zh
Publication of CN112463473A publication Critical patent/CN112463473A/zh
Application granted granted Critical
Publication of CN112463473B publication Critical patent/CN112463473B/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/26Functional testing
    • 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
    • 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

Landscapes

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

Abstract

本发明提供一种存储数据流单元测试方法、系统、终端及存储介质,包括:在存储系统的输入输出代码中定义全局变量;通过向所述输入输出代码的数据流处理分支注入错误代码生成错误处理分支;利用预设的启动命令行将所述全局变量设置为测试状态;在所述测试状态下将所述错误处理分支作为处理输入输出数据流的工作分支。本发明实现了真实环境下IO流单元测试,无需搭建测试环境,提高了单元测试的效率,缩短了产品的研发周期。

Description

一种存储数据流单元测试方法、系统、终端及存储介质
技术领域
本发明涉及存储系统测试技术领域,具体涉及一种存储数据流单元测试方法、系统、终端及存储介质。
背景技术
IO流的单元测试可以有多种。现有的单元测试大都是构造一套测试环境,在系统外运行一遍所有的测试用例,或者在系统上运行一遍所有的测试用例,然后重启再恢复环境,不能随测随用。它们都不是在代码真正运行的环境上执行的,只是用模拟的环境运行的IO。跟真实的环境还是有差异,真实环境下的IO可能还有差异,可能覆盖不到部分真实情景。为了构建更真实的环境,需将测试用例在系统正常运行下跑起来,以测试IO流功能。
发明内容
针对现有技术的上述不足,本发明提供一种存储数据流单元测试方法、系统、终端及存储介质,以解决上述技术问题。
第一方面,本发明提供一种存储数据流单元测试方法,包括:
在存储系统的输入输出代码中定义全局变量;
通过向所述输入输出代码的数据流处理分支注入错误代码生成错误处理分支;
利用预设的启动命令行将所述全局变量设置为测试状态;
在所述测试状态下将所述错误处理分支作为处理输入输出数据流的工作分支。
进一步的,所述通过向所述输入输出代码的数据流处理分支注入错误代码生成错误处理分支,包括:
根据单元测试的测试用例设置错误代码,并将所述错误代码注入所述数据流处理分支;
预留未注入错误代码的数据流处理分支作为正常处理分支。
进一步的,所述方法还包括:
利用预设的暂停命令行将所述全局变量设置为正常状态;
在所述正常状态下将所述正常处理分支作为处理输入输出数据流的工作分支。
进一步的,所述方法还包括:
在所述测试状态下,监控所述输入输出数据流的传输参数,并将所述传输参数作为测试结果输出。
第二方面,本发明提供一种存储数据流单元测试系统,包括:
变量设置单元,配置用于在存储系统的输入输出代码中定义全局变量;
错误注入单元,配置用于通过向所述输入输出代码的数据流处理分支注入错误代码生成错误处理分支;
状态设置单元,配置用于利用预设的启动命令行将所述全局变量设置为测试状态;
分支选择单元,配置用于在所述测试状态下将所述错误处理分支作为处理输入输出数据流的工作分支。
进一步的,所述错误注入单元包括:
错误设置模块,配置用于根据单元测试的测试用例设置错误代码,并将所述错误代码注入所述数据流处理分支;
分支预留模块,配置用于预留未注入错误代码的数据流处理分支作为正常处理分支。
进一步的,所述系统还包括:
测试暂停单元,配置用于利用预设的暂停命令行将所述全局变量设置为正常状态;
分支切换单元,配置用于在所述正常状态下将所述正常处理分支作为处理输入输出数据流的工作分支。
进一步的,所述系统还包括:
结果输出单元,配置用于在所述测试状态下,监控所述输入输出数据流的传输参数,并将所述传输参数作为测试结果输出。
第三方面,提供一种终端,包括:
处理器、存储器,其中,
该存储器用于存储计算机程序,
该处理器用于从存储器中调用并运行该计算机程序,使得终端执行上述的终端的方法。
第四方面,提供了一种计算机存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
本发明的有益效果在于,
本发明提供的存储数据流单元测试方法、系统、终端及存储介质,通过增加nobble错误注入代码、使用全局变量来实现外部控制,从而控制IO流在系统正常运行下进行单元测试。通过该种单元测试,在存储系统中能更好的测试IO流,模拟出各种真实情景、覆盖真实的流程。本发明实现了真实环境下IO流单元测试,无需搭建测试环境,提高了单元测试的效率,缩短了产品的研发周期。
此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例的方法的示意性流程图。
图2是本发明一个实施例的系统的示意性框图。
图3为本发明实施例提供的一种终端的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
下面对本发明中出现的关键术语进行解释。
UT Unit Test单元测试
图1是本发明一个实施例的方法的示意性流程图。其中,图1执行主体可以为一种存储数据流单元测试系统。
如图1所示,该方法包括:
步骤110,在存储系统的输入输出代码中定义全局变量;
步骤120,通过向所述输入输出代码的数据流处理分支注入错误代码生成错误处理分支;
步骤130,利用预设的启动命令行将所述全局变量设置为测试状态;
步骤140,在所述测试状态下将所述错误处理分支作为处理输入输出数据流的工作分支。
具体的,所述存储数据流单元测试方法包括:
S1、在存储系统的输入输出代码中定义全局变量。
定义一个boolean型的全局变量start_test,如果全局变量start_test为真时为测试状态,如果全局变量start_test为假时为正常状态。
S2、通过向所述输入输出代码的数据流处理分支注入错误代码生成错误处理分支。
根据需要执行的单元测试中的测试用例设置错误代码,将Nobble错误代码注入数据流处理分支,比如介质错误、IO超时等。
同时需要预留一个正常的数据流处理分支作为正常处理分支。
S3、利用预设的启动命令行将所述全局变量设置为测试状态。在所述测试状态下将所述错误处理分支作为处理输入输出数据流的工作分支。
增加一个启动单元测试的命令行,如果输入的参数是开启IO流单元测试,则更改全局变量start_test的值为真,进入启动IO流单元测试流程,将错误处理分支作为处理输入输出数据流的工作分支,从而可以使得外部输入命令即可开始测试。
另外,增加一个关闭单元测试的命令行,如果输入的参数是关闭IO流单元测试,则更改全局变量start_test的值为假,使得后续的IO流都跳过Nobble错误注入分支,进入正常的IO流处理分支。
如图2所示,该系统200包括:
变量设置单元210,配置用于在存储系统的输入输出代码中定义全局变量;
错误注入单元220,配置用于通过向所述输入输出代码的数据流处理分支注入错误代码生成错误处理分支;
状态设置单元230,配置用于利用预设的启动命令行将所述全局变量设置为测试状态;
分支选择单元240,配置用于在所述测试状态下将所述错误处理分支作为处理输入输出数据流的工作分支。
可选地,作为本发明一个实施例,所述错误注入单元包括:
错误设置模块,配置用于根据单元测试的测试用例设置错误代码,并将所述错误代码注入所述数据流处理分支;
分支预留模块,配置用于预留未注入错误代码的数据流处理分支作为正常处理分支。
可选地,作为本发明一个实施例,所述系统还包括:
测试暂停单元,配置用于利用预设的暂停命令行将所述全局变量设置为正常状态;
分支切换单元,配置用于在所述正常状态下将所述正常处理分支作为处理输入输出数据流的工作分支。
可选地,作为本发明一个实施例,所述系统还包括:
结果输出单元,配置用于在所述测试状态下,监控所述输入输出数据流的传输参数,并将所述传输参数作为测试结果输出。
图3为本发明实施例提供的一种终端300的结构示意图,该终端300可以用于执行本发明实施例提供的存储数据流单元测试方法。
其中,该终端300可以包括:处理器310、存储器320及通信单元330。这些组件通过一条或多条总线进行通信,本领域技术人员可以理解,图中示出的服务器的结构并不构成对本发明的限定,它既可以是总线形结构,也可以是星型结构,还可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
其中,该存储器320可以用于存储处理器310的执行指令,存储器320可以由任何类型的易失性或非易失性存储终端或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。当存储器320中的执行指令由处理器310执行时,使得终端300能够执行以下上述方法实施例中的部分或全部步骤。
处理器310为存储终端的控制中心,利用各种接口和线路连接整个电子终端的各个部分,通过运行或执行存储在存储器320内的软件程序和/或模块,以及调用存储在存储器内的数据,以执行电子终端的各种功能和/或处理数据。所述处理器可以由集成电路(Integrated Circuit,简称IC)组成,例如可以由单颗封装的IC所组成,也可以由连接多颗相同功能或不同功能的封装IC而组成。举例来说,处理器310可以仅包括中央处理器(Central Processing Unit,简称CPU)。在本发明实施方式中,CPU可以是单运算核心,也可以包括多运算核心。
通信单元330,用于建立通信信道,从而使所述存储终端可以与其它终端进行通信。接收其他终端发送的用户数据或者向其他终端发送用户数据。
本发明还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本发明提供的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-only memory,简称:ROM)或随机存储记忆体(英文:random access memory,简称:RAM)等。
因此,本发明通过增加nobble错误注入代码、使用全局变量来实现外部控制,从而控制IO流在系统正常运行下进行单元测试。通过该种单元测试,在存储系统中能更好的测试IO流,模拟出各种真实情景、覆盖真实的流程。本发明实现了真实环境下IO流单元测试,无需搭建测试环境,提高了单元测试的效率,缩短了产品的研发周期,本实施例所能达到的技术效果可以参见上文中的描述,此处不再赘述。
本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中如U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质,包括若干指令用以使得一台计算机终端(可以是个人计算机,服务器,或者第二终端、网络终端等)执行本发明各个实施例所述方法的全部或部分步骤。
本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于终端实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,系统或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (8)

1.一种存储数据流单元测试方法,其特征在于,包括:
在存储系统的输入输出代码中定义全局变量;
通过向所述输入输出代码的数据流处理分支注入错误代码生成错误处理分支;
利用预设的启动命令行将所述全局变量设置为测试状态;
在所述测试状态下将所述错误处理分支作为处理输入输出数据流的工作分支;
所述通过向所述输入输出代码的数据流处理分支注入错误代码生成错误处理分支,包括:
根据单元测试的测试用例设置错误代码,并将所述错误代码注入所述数据流处理分支;
预留未注入错误代码的数据流处理分支作为正常处理分支。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
利用预设的暂停命令行将所述全局变量设置为正常状态;
在所述正常状态下将所述正常处理分支作为处理输入输出数据流的工作分支。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述测试状态下,监控所述输入输出数据流的传输参数,并将所述传输参数作为测试结果输出。
4.一种存储数据流单元测试系统,其特征在于,包括:
变量设置单元,配置用于在存储系统的输入输出代码中定义全局变量;
错误注入单元,配置用于通过向所述输入输出代码的数据流处理分支注入错误代码生成错误处理分支;
状态设置单元,配置用于利用预设的启动命令行将所述全局变量设置为测试状态;
分支选择单元,配置用于在所述测试状态下将所述错误处理分支作为处理输入输出数据流的工作分支;
所述错误注入单元包括:
错误设置模块,配置用于根据单元测试的测试用例设置错误代码,并将所述错误代码注入所述数据流处理分支;
分支预留模块,配置用于预留未注入错误代码的数据流处理分支作为正常处理分支。
5.根据权利要求4所述的系统,其特征在于,所述系统还包括:
测试暂停单元,配置用于利用预设的暂停命令行将所述全局变量设置为正常状态;
分支切换单元,配置用于在所述正常状态下将所述正常处理分支作为处理输入输出数据流的工作分支。
6.根据权利要求4所述的系统,其特征在于,所述系统还包括:
结果输出单元,配置用于在所述测试状态下,监控所述输入输出数据流的传输参数,并将所述传输参数作为测试结果输出。
7.一种终端,其特征在于,包括:
处理器;
用于存储处理器的执行指令的存储器;
其中,所述处理器被配置为执行权利要求1-3任一项所述的方法。
8.一种存储有计算机程序的计算机可读存储介质,其特征在于,该程序被处理器执行时实现如权利要求1-3中任一项所述的方法。
CN202011227030.8A 2020-11-06 2020-11-06 一种存储数据流单元测试方法、系统、终端及存储介质 Active CN112463473B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011227030.8A CN112463473B (zh) 2020-11-06 2020-11-06 一种存储数据流单元测试方法、系统、终端及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011227030.8A CN112463473B (zh) 2020-11-06 2020-11-06 一种存储数据流单元测试方法、系统、终端及存储介质

Publications (2)

Publication Number Publication Date
CN112463473A CN112463473A (zh) 2021-03-09
CN112463473B true CN112463473B (zh) 2023-01-10

Family

ID=74826291

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011227030.8A Active CN112463473B (zh) 2020-11-06 2020-11-06 一种存储数据流单元测试方法、系统、终端及存储介质

Country Status (1)

Country Link
CN (1) CN112463473B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150255175A1 (en) * 2014-03-10 2015-09-10 Advantest Corporation Memory testing and failure data filtering
CN107450515A (zh) * 2017-07-31 2017-12-08 北京新能源汽车股份有限公司 故障诊断自动测试方法及装置
CN109815073A (zh) * 2019-01-21 2019-05-28 成都能通科技有限公司 一种基于pxi平台的高速串口srio的测试方法
US20190205194A1 (en) * 2018-01-02 2019-07-04 International Business Machines Corporation Hardware error detection on a high-speed serial connection

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150255175A1 (en) * 2014-03-10 2015-09-10 Advantest Corporation Memory testing and failure data filtering
CN107450515A (zh) * 2017-07-31 2017-12-08 北京新能源汽车股份有限公司 故障诊断自动测试方法及装置
US20190205194A1 (en) * 2018-01-02 2019-07-04 International Business Machines Corporation Hardware error detection on a high-speed serial connection
CN109815073A (zh) * 2019-01-21 2019-05-28 成都能通科技有限公司 一种基于pxi平台的高速串口srio的测试方法

Also Published As

Publication number Publication date
CN112463473A (zh) 2021-03-09

Similar Documents

Publication Publication Date Title
CN109510742B (zh) 一种服务器网卡远程测试方法、装置、终端及存储介质
CN112463195B (zh) 一种集群分组在线升级的方法、系统、终端及存储介质
CN110427258B (zh) 基于云平台的资源调度控制方法及装置
CN108958843A (zh) 基于轻量化脚本的插件构建方法、系统、设备及介质
CN105512562B (zh) 一种漏洞挖掘方法、装置及电子设备
CN112882930B (zh) 自动化测试方法、装置、存储介质及电子设备
CN110554917A (zh) 高效遍历较大数据量集合的方法、系统、终端及存储介质
CN115098190A (zh) 一种提高ssd系统启动速度的方法、装置、终端及存储介质
CN112463473B (zh) 一种存储数据流单元测试方法、系统、终端及存储介质
CN111338964B (zh) 一种有序批量测试方法、系统、终端及存储介质
CN113076231A (zh) 服务器应用场景设置方法、系统、终端及存储介质
CN112003730A (zh) 一种集群快速部署的方法、系统、终端及存储介质
CN109815091B (zh) 一种aep高温告警灵敏度测试方法、装置、终端及存储介质
CN109920466B (zh) 一种硬盘测试数据解析方法、装置、终端及存储介质
CN109117406B (zh) 一种pcie热拔插测试方法、装置、终端及存储介质
CN111176924A (zh) 一种gpu掉卡模拟方法、系统、终端及存储介质
CN110673871A (zh) 在线升级装置、控制方法、电子设备及计算机可读介质
CN115168840A (zh) 一种故障注入方法、装置及计算机可读存储介质
CN110175096B (zh) 一种gpu加压测试方法、系统、终端及存储介质
CN110703988B (zh) 一种分布式存储的存储池创建方法、系统、终端及存储介质
CN110543459A (zh) 一种nfs下文件锁状态获取方法、系统、终端及存储介质
CN112631949A (zh) 一种调试方法、装置、计算机设备及存储介质
CN111291380A (zh) 一种命令行加固方法、系统、终端及存储介质
CN112506774A (zh) 一种可测性优化方法、装置、电子设备及存储介质
CN111752677A (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
GR01 Patent grant
GR01 Patent grant