CN117130945B - 一种测试方法和装置 - Google Patents

一种测试方法和装置 Download PDF

Info

Publication number
CN117130945B
CN117130945B CN202311403362.0A CN202311403362A CN117130945B CN 117130945 B CN117130945 B CN 117130945B CN 202311403362 A CN202311403362 A CN 202311403362A CN 117130945 B CN117130945 B CN 117130945B
Authority
CN
China
Prior art keywords
test
failure
fault
data
preset
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
CN202311403362.0A
Other languages
English (en)
Other versions
CN117130945A (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.)
China Securities Depository And Clearing Corp ltd
Original Assignee
China Securities Depository And Clearing Corp 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 China Securities Depository And Clearing Corp ltd filed Critical China Securities Depository And Clearing Corp ltd
Priority to CN202311403362.0A priority Critical patent/CN117130945B/zh
Publication of CN117130945A publication Critical patent/CN117130945A/zh
Application granted granted Critical
Publication of CN117130945B publication Critical patent/CN117130945B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/3688Test management for test execution, e.g. scheduling of test suites
    • 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/3692Test management for test results analysis
    • 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
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/30Computing systems specially adapted for manufacturing

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)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种测试方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括获取测试对象,以在基准测试库中选取得到对应的基准测试用例;拆解所述基准测试用例,得到多个基准数据,并调用预设的故障模型,以生成每个基准数据分别对应的故障数据;针对每个故障数据:在基准测试用例中替换相应的基准数据,以生成对应的故障测试用例,并输入至所述测试对象,且监听得到相应的测试结果;调用预设的分类模型确定每个测试结果分别对应的失效类型,并计算相应的失效特征值。从而,本发明的实施方式能够解决现有的软件健壮性测试方法处理效率低的技术问题。

Description

一种测试方法和装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种测试方法和装置。
背景技术
目前,针对软件***的健壮性测试的应用场景十分广泛,能够在软件***的开发阶段中模拟多种极端触发事件,从而辅助判断现阶段的软件***是否能够实现交付。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
现有的软件健壮性测试方法普遍基于故障注入的形式测试对应的软件运行反馈,然而,在产生相应的故障测试用例时,现有技术普遍具有偏移量不统一、产生故障测试用例效率低的技术缺陷,并且也不利于后续处理的分析软件运行数据,以及定位软件缺陷。
发明内容
有鉴于此,本发明实施例提供一种测试方法和装置,能够解决现有的软件健壮性测试方法处理效率低的技术问题。
为实现上述目的,根据本发明实施例的一个方面,提供了一种测试方法,包括响应于获取测试对象,以在基准测试库中选取得到对应的基准测试用例;
拆解所述基准测试用例,得到多个基准数据,并调用预设的故障模型,以生成每个基准数据分别对应的故障数据;
针对每个故障数据:在基准测试用例中替换相应的基准数据,以生成对应的故障测试用例,并输入至所述测试对象,且监听得到相应的测试结果;
调用预设的分类模型确定每个测试结果分别对应的失效类型,并计算相应的失效特征值。
可选地,调用预设的故障模型,以生成每个基准数据分别对应的故障数据,包括:
使用预设的故障模型,以对每个基准数据:
判断该基准数据所属的数据类型,
响应于该基准数据属于第一类型,则确定使用预设的伪随机处理方法对该基准数据进行转换处理,
响应于该基准数据属于第二类型,则确定使用预设的步长变更处理方法对该基准数据进行转换处理;
以得到对应的故障数据。
可选地,输入至所述测试对象,包括:
根据所述故障测试用例包括的多个基准数据和故障数据,确定所述测试对象分别对应的多个入参接口,以将所述故障测试用例对应注入至所述对象。
可选地,监听得到相应的测试结果,包括:
调用预设的监听工具插桩所述测试对象,以将相应的监听逻辑植入所述测试对象中;
基于所述监听逻辑获取所述测试对象的程序运行数据,并解析得到对应的程序崩溃信息,以作为测试结果。
可选地,调用预设的分类模型确定每个测试结果分别对应的失效类型,包括:
对每个测试结果:调用预设的分类模型,以解析得到对应的程序崩溃传播路径和程序返回值,并根据所述程序崩溃传播路径和程序返回值,在预设的多个失效类型中匹配得到目标失效类型;
所述多个失效类型包括:***崩溃失效、重启失效、夭折失效、沉寂失效、干扰失效、干扰成功失效以及未失效。
可选地,在预设的多个失效类型中匹配得到目标失效类型之后,包括:
响应于确定所述目标失效类型是夭折失效类型或未失效类型,则将所述测试结果标记为测试通过;
响应于确定所述目标失效类型不是夭折失效类型和未失效类型,则将所述测试结果标记为测试未通过;
并确定所述测试结果对应的测试单元,其中,所述测试单元是所述测试对象包括的一个函数或一个模块;
以将所述测试结果标记和对应的测试单元记录至测试结果表。
可选地,计算相应的失效特征值,包括:
对每个测试单元:
根据测试记录表,查询相应的测试总次数和测试通过次数,并计算对应的测试通过比例,
查询所述测试单元相应的重要性权值,并和所述测试通过比例相乘,得到所述测试单元的失效特征值;
将多个测试单元的分别对应的多个失效特征值进行求和,得到所述测试对象对应的失效特征值。
另外,本发明还提供了一种测试装置,包括获取模块,用于获取测试对象,以在基准测试库中选取得到对应的基准测试用例;处理模块,用于拆解所述基准测试用例,得到多个基准数据,并调用预设的故障模型,以生成每个基准数据分别对应的故障数据;注入模块,用于针对每个故障数据:在基准测试用例中替换相应的基准数据,以生成对应的故障测试用例,并输入至所述测试对象,且监听得到相应的测试结果;分析模块,用于调用预设的分类模型确定每个测试结果分别对应的失效类型,并计算相应的失效特征值。
上述发明中的一个实施例具有如下优点或有益效果:本发明通过获取测试对象,以在基准测试库中选取得到对应的基准测试用例,获得了生成大量故障注入数据的数据来源;并且,通过拆解所述基准测试用例,得到多个基准数据,并调用预设的故障模型,以生成每个基准数据分别对应的故障数据,得到了每个基准数据分别对应的有效可识别的故障注入数据;同时,通过针对每个故障数据:在基准测试用例中替换相应的基准数据,以生成对应的故障测试用例,并输入至所述测试对象,且监听得到相应的测试结果,完成了对应的故障注入以及程序崩溃过程跟踪的技术目的,得到了程序健壮性分析的判断依据;另外,本发明通过调用预设的分类模型确定每个测试结果分别对应的失效类型,并计算相应的失效特征值,对程序的健壮性进行了准确地量化,从而能够快速判断该程序能够用于实现交付。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明第一实施例的测试方法的主要流程的示意图;
图2是根据本发明实施例的故障数据的数据关系示意图;
图3是根据本发明实施例的软件测试框架的示意图;
图4是根据本发明第二实施例的测试方法的主要流程的示意图;
图5是根据本发明第三实施例的测试方法的主要流程的示意图;
图6是根据本发明实施例的测试装置的主要模块的示意图;
图7是本发明实施例可以应用于其中的示例性***架构图;
图8是适于用来实现本发明实施例的终端设备或服务器的计算机***的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本发明第一实施例的测试方法的主要流程的示意图,如图1所示,所述测试方法包括:
步骤S101,获取测试对象,以在基准测试库中选取得到对应的基准测试用例。
在实施例中,经过此步骤的处理,在基准数据库中获得了对所述测试对象进行软件测试的基准测试用例,其中,所述的基准测试用例是经测试验证过,能够使得被测对象正常运行的测试数据资源,以为本技术方案提供生成故障注入数据的数据支撑。如图2所示,经过此步骤的处理,能够对基准数据中包括的基准测试数据(对应于图中P1部分)进行高效地扩展,得到大量的相关联的故障测试数据(对应于图中P4部分和P5部分),从而能够解决现有技术中故障测试数据产生效率低的技术问题;其中,P1区域对应于能够满足被测对象当前正常功能需求的测试数据,P2区域对应于能够更多的被测对象功能需求的数据,但P2与P1不重叠部分对应的测试数据表征在当前的被测对象中被视为故障输入,P4区域表征在P2区域数据的基础上采用伪随机处理方法生成的故障数据,P5区域表征在P2区域数据的基础上采用参数类型的边界取值、并采用定长类型的漂移量生成的故障数据。
在实施例中,如果在基准数据库中筛选得到多个对应于所述测试对象的基准测试用例,则对于每个基准测试用例都可以使用本申请的技术方案进行对应的软件自动化测试,从而得到充足的测试结果,以便对测试对象进行全面的对比、分析。
步骤S102,拆解所述基准测试用例,得到多个基准数据,并调用预设的故障模型,以生成每个基准数据分别对应的故障数据。
在实施例中,经过本步骤的处理,能够对所述测试对象相应的多个基准数据进行高效利用,并且,通过故障模型的设立以及使用,能够确保多个故障数据的统一以及标准化生成,从而能够有效地对多个故障数据的偏移量和偏移方向进行约束,从而得到大量的符合预期的故障数据。
在一些实施例中,为了根据相应的数据类型对每个基准数据进行对应的转换处理,以避免得到的故障数据是被测对象无法识别的无效输入,可以调用预设的故障模型,以生成每个基准数据分别对应的故障数据,具体包括:使用预设的故障模型,以对每个基准数据:判断该基准数据所属的数据类型,响应于该基准数据属于第一类型,则确定使用预设的伪随机处理方法对该基准数据进行转换处理,响应于该基准数据属于第二类型,则确定使用预设的步长变更处理方法对该基准数据进行转换处理;以得到对应的故障数据。示例的,上述的数据类型可以包括整数型、浮点型、字符型等等;上述的第一类型可以是字符型字段,第二类型可以是数值性字段;上述的伪随机处理方法可以包括直接法、逆转法、接收拒绝法等等。经过此步骤的处理,能够达到确定相应的基准数据和故障数据对应于相同的数据类型,从而保证使用故障数据进行故障注入时,相应的入参借口能够顺利获取该故障数据。
步骤S103,针对每个故障数据:在基准测试用例中替换相应的基准数据,以生成对应的故障测试用例,并输入至所述测试对象,且监听得到相应的测试结果。
在实施例中,经过此步骤的处理,完成了对被测对象进行多次基于故障注入的软件测试的过程,同时,保证了每次软件测试中有且仅有一个故障注入数据,从而达到便于对比其他的测试结果,定向分析、确定测试对象(即被测软件)缺陷的技术效果。
在一些实施例中,为了在每次的故障注入的过程中,将故障测试用例正确且有序地引入被测对象的多个入参接口,可以在输入至所述测试对象时,根据所述故障测试用例包括的多个基准数据和故障数据,确定所述测试对象分别对应的多个入参接口,以将所述故障测试用例对应注入至所述对象。在进一步的实施例中,可以在基准数据库中查询每个基准数据相应的入参接口,并根据多个基准数据和多个故障数据间的一一对应关系,进一步确定每个故障数据相应的入参接口,从而正确地注入每个故障测试用例所包括的基准数据和故障数据。
在一些实施例中,为了定向且完整地监听到被测对象发生程序崩溃事件的全过程,从而全面地挖掘测试对象的程序漏洞,可以在监听得到相应的测试结果时,调用预设的监听工具插桩所述测试对象,以将相应的监听逻辑植入所述测试对象中;基于所述监听逻辑获取所述测试对象的程序运行数据,并解析得到对应的程序崩溃信息,以作为测试结果。在进一步的实施例中,可以使用crash分析方法对测试对象的运行过程进行污点标记,并在运行结束后通过污点检查收集的到上述程序崩溃信息。
步骤S104,调用预设的分类模型确定每个测试结果分别对应的失效类型,并计算相应的失效特征值。
在实施例中,经过此步骤的处理,可以达到对每个测试结果分别进行有针对性地分析,从而便于全面地暴露测试对象潜在的程序缺陷,进而有助于对应地优化被测对象,以提升被测对象的健壮性。
在一些实施例中,为了根据被测对象对于故障注入的全程反馈,确定对应的影响范围,以判别对应测试结果的所属失效类型,可以在调用预设的分类模型确定每个测试结果分别对应的失效类型时,对每个测试结果:调用预设的分类模型,以解析得到对应的程序崩溃传播路径和程序返回值,并根据所述程序崩溃传播路径和程序返回值,在预设的多个失效类型中匹配得到目标失效类型;所述多个失效类型包括:***崩溃失效、重启失效、夭折失效、沉寂失效、干扰失效、干扰成功失效以及未失效。
其中,上述的***崩溃失效可以定义为业务处理***(即测试对象)崩溃,需要通过重新启动的方式来恢复运行的事件;上述的重启时效可以定义为被测对象在运行时没有返回,作业被挂起,无法响应,必须强制关闭该作业的事件;上述的夭折时效可以定义为测试对象运行时发生异常,导致该程序异常退出,返回错误代码,并且该错误代码正好对应非法的测试值产生的错误或异常的事件;上述的沉寂失效可以定义为测试对象运行发生异常时,***应该返回相应的错误代码,但实际的测试结果中却显示没有异常的事件;上述的干扰失效可以定义为测试对象运行某被测模块时发生异常,并返回了错误代码,但该错误代码与实际的异常情况不对应的事件;上述的干扰成功失效可以定义为测试对象运行正常,但其返回值或者输出值出错的事件;上述的未失效可以定义为测试对象运行正常,返回值或者输出值正常的事件。
在一些实施例中,为了详细记录每个测试结果所暴露的测试对象的局部缺陷,可以在预设的多个失效类型中匹配得到目标失效类型之后,响应于确定所述目标失效类型是夭折失效类型或未失效类型,则将所述测试结果标记为测试通过;响应于确定所述目标失效类型不是夭折失效类型和未失效类型,则将所述测试结果标记为测试未通过;并确定所述测试结果对应的测试单元,其中,所述测试单元是所述测试对象包括的一个函数或一个模块,以将所述测试结果标记和对应的测试单元记录至测试结果表。
在一些实施例中,为了避免为测试通过的故障测试用例进行重复使用,从而导致后续计算得到错误的失效特征值,可以将每个测试通过的故障测试用例记录至测试优化数据库,并在每次软件测试前与待使用的测试用例进行对比,响应于确定所述待使用的测试用例不重复,执行相应的软件测试处理。
在一些实施例中,为了根据每次的测试结果对测试对象的健壮性进行对应的量化统计,可以在计算相应的失效特征值时,包括:对每个测试单元:根据测试记录表,查询相应的测试总次数和测试通过次数,并计算对应的测试通过比例,查询所述测试单元相应的重要性权值,并和所述测试通过比例相乘,得到所述测试单元的失效特征值;将多个测试单元的分别对应的多个失效特征值进行求和,得到所述测试对象对应的失效特征值。经过此步骤的处理,能够根据最终得到测试对象的失效特征值,快速且准确地判断所述测试对象是否能够达到交付的标准。在进一步的实施例中,可以如图5所示,根据上述多个测试单元的失效类型、测试结果标识(图中的MuT,Module under Test,即每个测试单元)以及上述测试对象的失效特征值,生成对应于所述测试对象的测试报告,用以在下游业务处理中,对测试对象进行代码改进。
图4是根据本发明第二实施例的测试方法的主要流程的示意图,所述测试方法包括:
步骤S401,获取测试对象,以在基准测试库中选取得到对应的基准测试用例。
步骤S402,拆解所述基准测试用例,得到多个基准数据。
步骤S403,确定每个基准数据分别所属的数据类型。
步骤S404,调用和每个数据类型分别对应的故障模型,以对每个基准数据分别进行转换处理。
步骤S405,得到每个基准数据分别对应的故障数据。
步骤S406,针对每个故障数据:在基准测试用例中替换相应的基准数据,以生成对应的故障测试用例。
步骤S407,调用预设的监听工具插桩所述测试对象,以将相应的监听逻辑植入所述测试对象中。
步骤S408,将多个故障测试用例逐个输入至所述测试对象。
步骤S409,基于所述监听逻辑获取所述测试对象的程序运行数据,并解析得到对应的程序崩溃信息,以作为每个故障测试用例对应的测试结果。
步骤S410,调用预设的分类模型,以解析得到每个测试结果对应的程序崩溃传播路径和程序返回值。
步骤S411,根据所述程序崩溃传播路径和程序返回值,匹配得到每个测试结果对应的目标失效类型。
步骤S412,响应于确定所述目标失效类型是夭折失效类型或未失效类型,则将所述测试结果标记为测试通过。
步骤S413,响应于确定所述目标失效类型不是夭折失效类型和未失效类型,则将所述测试结果标记为测试未通过。
步骤S414,确定所述测试结果对应的测试单元,以将所述测试结果标记和对应的测试单元记录至测试结果表。
步骤S415,根据测试结果表,计算每个测试对象相应的失效特征值。
较佳地,对每个测试单元:根据测试记录表,查询相应的测试总次数和测试通过次数,并计算对应的测试通过比例,查询所述测试单元相应的重要性权值,并和所述测试通过比例相乘,得到所述测试单元的失效特征值;将多个测试单元的分别对应的多个失效特征值进行求和,得到所述测试对象对应的失效特征值。
图5是根据本发明第三实施例的测试方法的主要流程的示意图,所述测试方法包括:
步骤S501,获取测试对象,以在基准测试库中选取得到对应的基准测试用例。
步骤S502,拆解所述基准测试用例,得到多个基准数据,并调用预设的故障模型,以生成每个基准数据分别对应的故障数据。
步骤S503,针对每个故障数据:在基准测试用例中替换相应的基准数据,以生成对应的故障测试用例。
步骤S504,调用预设的监听工具插桩所述测试对象,以将相应的监听逻辑植入所述测试对象中。
步骤S505,将多个故障测试用例逐个输入至所述测试对象。
步骤S506,基于所述监听逻辑获取所述测试对象的程序运行数据,并解析得到对应的程序崩溃信息,以作为每个故障测试用例对应的测试结果。
步骤S507,调用预设的分类模型确定每个测试结果分别对应的失效类型。
步骤S508,计算相应的失效特征值。
图6是根据本发明实施例的测试装置的主要模块的示意图,如图6所示,所述测试装置600包括获取模块601、处理模块602、注入模块603和分析模块604。其中,获取模块601用于获取测试对象,以在基准测试库中选取得到对应的基准测试用例;处理模块602用于拆解所述基准测试用例,得到多个基准数据,并调用预设的故障模型,以生成每个基准数据分别对应的故障数据;注入模块603用于针对每个故障数据:在基准测试用例中替换相应的基准数据,以生成对应的故障测试用例,并输入至所述测试对象,且监听得到相应的测试结果;以及分析模块604用于调用预设的分类模型确定每个测试结果分别对应的失效类型,并计算相应的失效特征值。
在一些实施例中,处理模块602,还用于:在调用预设的故障模型,以生成每个基准数据分别对应的故障数据时,使用预设的故障模型,以对每个基准数据:判断该基准数据所属的数据类型,响应于该基准数据属于第一类型,则确定使用预设的伪随机处理方法对该基准数据进行转换处理,响应于该基准数据属于第二类型,则确定使用预设的步长变更处理方法对该基准数据进行转换处理;以得到对应的故障数据。
在一些实施例中,注入模块603,还用于:在输入至所述测试对象时,根据所述故障测试用例包括的多个基准数据和故障数据,确定所述测试对象分别对应的多个入参接口,以将所述故障测试用例对应注入至所述对象。
在一些实施例中,注入模块603,还用于:在监听得到相应的测试结果时,调用预设的监听工具插桩所述测试对象,以将相应的监听逻辑植入所述测试对象中;基于所述监听逻辑获取所述测试对象的程序运行数据,并解析得到对应的程序崩溃信息,以作为测试结果。
在一些实施例中,分析模块604,还用于:在调用预设的分类模型确定每个测试结果分别对应的失效类型时,对每个测试结果:调用预设的分类模型,以解析得到对应的程序崩溃传播路径和程序返回值,并根据所述程序崩溃传播路径和程序返回值,在预设的多个失效类型中匹配得到目标失效类型;所述多个失效类型包括:***崩溃失效、重启失效、夭折失效、沉寂失效、干扰失效、干扰成功失效以及未失效。
在一些实施例中,分析模块604,还用于:在预设的多个失效类型中匹配得到目标失效类型之后,响应于确定所述目标失效类型是夭折失效类型或未失效类型,则将所述测试结果标记为测试通过;响应于确定所述目标失效类型不是夭折失效类型和未失效类型,则将所述测试结果标记为测试未通过;并确定所述测试结果对应的测试单元,其中,所述测试单元是所述测试对象包括的一个函数或一个模块;以将所述测试结果标记和对应的测试单元记录至测试结果表。
在一些实施例中,分析模块604,还用于:在计算相应的失效特征值时,对每个测试单元:根据测试记录表,查询相应的测试总次数和测试通过次数,并计算对应的测试通过比例,查询所述测试单元相应的重要性权值,并和所述测试通过比例相乘,得到所述测试单元的失效特征值;将多个测试单元的分别对应的多个失效特征值进行求和,得到所述测试对象对应的失效特征值。
需要说明的是,在本发明所述测试方法和所述测试装置在具体实施内容上具有相应关系,故重复内容不再说明。
图7示出了可以应用本发明实施例的测试方法或测试装置的示例性***架构700。
如图7所示,***架构700可以包括终端设备701、702、703,网络704和服务器705。网络704用以在终端设备701、702、703和服务器705之间提供通信链路的介质。网络704可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备701、702、703通过网络704与服务器705交互,以接收或发送消息等。终端设备701、702、703上可以安装有各种通讯客户端应用。
终端设备701、702、703可以是具有页面显示处理屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器705可以是提供各种服务的服务器,例如对用户利用终端设备701、702、703提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果(例如目标推送信息、产品信息--仅为示例)反馈给终端设备。
需要说明的是,本发明实施例所提供的测试方法一般由服务器705执行,相应地,计算装置一般设置于服务器705中。
应该理解,图7中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图8,其示出了适于用来实现本发明实施例的终端设备的计算机***800的结构示意图。图8示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图8所示,计算机***800包括中央处理单元(CPU)801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储部分808加载到随机访问存储器(RAM)803中的程序而执行各种适当的动作和处理。在RAM803中,还存储有计算机***800操作所需的各种程序和数据。CPU801、ROM802以及RAM803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
以下部件连接至I/O接口805:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(CRT)、液晶页面显示处理器(LCD)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至I/O接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被中央处理单元(CPU)801执行时,执行本发明的***中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括获取模块、处理模块、注入模块和分析模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括获取测试对象,以在基准测试库中选取得到对应的基准测试用例;拆解所述基准测试用例,得到多个基准数据,并调用预设的故障模型,以生成每个基准数据分别对应的故障数据;针对每个故障数据:在基准测试用例中替换相应的基准数据,以生成对应的故障测试用例,并输入至所述测试对象,且监听得到相应的测试结果;调用预设的分类模型确定每个测试结果分别对应的失效类型,并计算相应的失效特征值。
根据本发明实施例的技术方案,能够解决现有的软件健壮性测试方法处理效率低的技术问题。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (9)

1.一种测试方法,其特征在于,包括:
获取测试对象,以在基准测试库中选取得到对应的基准测试用例;
拆解所述基准测试用例,得到多个基准数据,并调用预设的故障模型,以生成每个基准数据分别对应的故障数据,包括:使用预设的故障模型,以对每个基准数据:判断该基准数据所属的数据类型,响应于该基准数据属于第一类型,则确定使用预设的伪随机处理方法对该基准数据进行转换处理,响应于该基准数据属于第二类型,则确定使用预设的步长变更处理方法对该基准数据进行转换处理;以得到对应的故障数据;
针对每个故障数据:在基准测试用例中替换相应的基准数据,以生成对应的故障测试用例,并输入至所述测试对象,且监听得到相应的测试结果;
调用预设的分类模型确定每个测试结果分别对应的失效类型,并计算相应的失效特征值。
2.根据权利要求1所述的方法,其特征在于,输入至所述测试对象,包括:
根据所述故障测试用例包括的多个基准数据和故障数据,确定所述测试对象分别对应的多个入参接口,以将所述故障测试用例对应注入至所述对象。
3.根据权利要求1所述的方法,其特征在于,监听得到相应的测试结果,包括:
调用预设的监听工具插桩所述测试对象,以将相应的监听逻辑植入所述测试对象中;
基于所述监听逻辑获取所述测试对象的程序运行数据,并解析得到对应的程序崩溃信息,以作为测试结果。
4.根据权利要求3所述的方法,其特征在于,调用预设的分类模型确定每个测试结果分别对应的失效类型,包括:
对每个测试结果:调用预设的分类模型,以解析得到对应的程序崩溃传播路径和程序返回值,并根据所述程序崩溃传播路径和程序返回值,在预设的多个失效类型中匹配得到目标失效类型;
所述多个失效类型包括:***崩溃失效、重启失效、夭折失效、沉寂失效、干扰失效、干扰成功失效以及未失效。
5.根据权利要求4所述的方法,其特征在于,在预设的多个失效类型中匹配得到目标失效类型之后,包括:
响应于确定所述目标失效类型是夭折失效类型或未失效类型,则将所述测试结果标记为测试通过;
响应于确定所述目标失效类型不是夭折失效类型和未失效类型,则将所述测试结果标记为测试未通过;
并确定所述测试结果对应的测试单元,其中,所述测试单元是所述测试对象包括的一个函数或一个模块;
以将所述测试结果标记和对应的测试单元记录至测试结果表。
6.根据权利要求5所述的方法,其特征在于,计算相应的失效特征值,包括:
对每个测试单元:
根据测试记录表,查询相应的测试总次数和测试通过次数,并计算对应的测试通过比例,
查询所述测试单元相应的重要性权值,并和所述测试通过比例相乘,得到所述测试单元的失效特征值;
将多个测试单元的分别对应的多个失效特征值进行求和,得到所述测试对象对应的失效特征值。
7.一种测试装置,其特征在于,包括:
获取模块,用于获取测试对象,以在基准测试库中选取得到对应的基准测试用例;
处理模块,用于拆解所述基准测试用例,得到多个基准数据,并调用预设的故障模型,以生成每个基准数据分别对应的故障数据,包括:使用预设的故障模型,以对每个基准数据:判断该基准数据所属的数据类型,响应于该基准数据属于第一类型,则确定使用预设的伪随机处理方法对该基准数据进行转换处理,响应于该基准数据属于第二类型,则确定使用预设的步长变更处理方法对该基准数据进行转换处理;以得到对应的故障数据;
注入模块,用于针对每个故障数据:在基准测试用例中替换相应的基准数据,以生成对应的故障测试用例,并输入至所述测试对象,且监听得到相应的测试结果;
分析模块,用于调用预设的分类模型确定每个测试结果分别对应的失效类型,并计算相应的失效特征值。
8.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-6中任一所述的方法。
9.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-6中任一所述的方法。
CN202311403362.0A 2023-10-26 2023-10-26 一种测试方法和装置 Active CN117130945B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311403362.0A CN117130945B (zh) 2023-10-26 2023-10-26 一种测试方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311403362.0A CN117130945B (zh) 2023-10-26 2023-10-26 一种测试方法和装置

Publications (2)

Publication Number Publication Date
CN117130945A CN117130945A (zh) 2023-11-28
CN117130945B true CN117130945B (zh) 2024-02-09

Family

ID=88860381

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311403362.0A Active CN117130945B (zh) 2023-10-26 2023-10-26 一种测试方法和装置

Country Status (1)

Country Link
CN (1) CN117130945B (zh)

Citations (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1420344A2 (en) * 2002-11-13 2004-05-19 Imbus Ag Method and device for prediction of the reliability of software programs
CN108694104A (zh) * 2017-04-12 2018-10-23 北京京东尚科信息技术有限公司 一种接口功能对比测试方法、装置、电子设备和储存介质
CN109062782A (zh) * 2018-06-27 2018-12-21 阿里巴巴集团控股有限公司 一种回归测试用例的选择方法、装置及设备
CN111414310A (zh) * 2020-04-01 2020-07-14 国网新疆电力有限公司电力科学研究院 自动生成测例的电网安全稳定控制装置测试方法及***
CN111597122A (zh) * 2020-07-24 2020-08-28 四川新网银行股份有限公司 一种基于历史缺陷数据挖掘的软件故障注入方法
CN111831556A (zh) * 2020-06-18 2020-10-27 中国科学院空间应用工程与技术中心 软件多故障解耦及并行定位方法及装置
CN112306877A (zh) * 2020-10-30 2021-02-02 山东山大电力技术股份有限公司 一种电力***故障运维方法及***
CN112506757A (zh) * 2020-11-17 2021-03-16 中广核工程有限公司 自动测试方法、***、计算机设备及其介质
CN112527649A (zh) * 2020-12-15 2021-03-19 建信金融科技有限责任公司 一种测试用例的生成方法和装置
CN113127331A (zh) * 2019-12-31 2021-07-16 航天信息股份有限公司 一种基于故障注入的测试方法、装置及计算机设备
CN113704079A (zh) * 2020-05-22 2021-11-26 北京沃东天骏信息技术有限公司 基于Protobuf的接口测试方法和装置
CN114115168A (zh) * 2020-09-01 2022-03-01 上汽通用汽车有限公司 故障注入测试***
CN114500345A (zh) * 2022-01-25 2022-05-13 上海安般信息科技有限公司 一种基于自定义协议配置的模糊测试与诊断***
CN114510381A (zh) * 2021-12-30 2022-05-17 锐捷网络股份有限公司 故障注入方法、装置、设备和存储介质
CN114741284A (zh) * 2022-03-30 2022-07-12 中国电子产品可靠性与环境试验研究所((工业和信息化部电子第五研究所)(中国赛宝实验室)) 任务可靠性评估方法、装置、计算机设备和存储介质
CN115185832A (zh) * 2022-06-25 2022-10-14 平安银行股份有限公司 测试用例的生成方法、装置、计算机设备及可读存储介质
CN115291585A (zh) * 2022-07-13 2022-11-04 合众新能源汽车有限公司 一种vcu的故障数据获取方法及相关装置
CN115328771A (zh) * 2022-08-02 2022-11-11 交控科技股份有限公司 测试工具的故障测试方法、装置、设备及介质
CN115470064A (zh) * 2022-07-29 2022-12-13 重庆长安汽车股份有限公司 待测设备的安全测试方法、装置、电子设备及存储介质
CN115616372A (zh) * 2022-08-30 2023-01-17 超聚变数字技术有限公司 故障注入测试方法和***
CN115993812A (zh) * 2023-01-19 2023-04-21 重庆长安新能源汽车科技有限公司 整车故障诊断测试方法、装置、***、设备及介质
CN116204428A (zh) * 2023-02-27 2023-06-02 中国建设银行股份有限公司 一种测试用例生成方法和装置
CN116302766A (zh) * 2022-09-09 2023-06-23 山东有人物联网股份有限公司 故障注入测试方法、装置、电子设备及可读存储介质
CN116737538A (zh) * 2023-04-13 2023-09-12 武汉铁路职业技术学院 轨道交通牵引传动控制单元软件自动化测试***及方法
CN116915442A (zh) * 2023-06-12 2023-10-20 中国工商银行股份有限公司 漏洞测试方法、装置、设备和介质
CN116932265A (zh) * 2023-07-24 2023-10-24 中国建设银行股份有限公司 故障模拟处理方法、装置、设备及存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10942841B2 (en) * 2017-12-07 2021-03-09 Conformiq Holding LLC User assisted automated test case generation
KR20210004656A (ko) * 2019-07-05 2021-01-13 현대자동차주식회사 차량 기능 테스트 장치 및 그 제어 방법

Patent Citations (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1420344A2 (en) * 2002-11-13 2004-05-19 Imbus Ag Method and device for prediction of the reliability of software programs
CN108694104A (zh) * 2017-04-12 2018-10-23 北京京东尚科信息技术有限公司 一种接口功能对比测试方法、装置、电子设备和储存介质
CN109062782A (zh) * 2018-06-27 2018-12-21 阿里巴巴集团控股有限公司 一种回归测试用例的选择方法、装置及设备
CN113127331A (zh) * 2019-12-31 2021-07-16 航天信息股份有限公司 一种基于故障注入的测试方法、装置及计算机设备
CN111414310A (zh) * 2020-04-01 2020-07-14 国网新疆电力有限公司电力科学研究院 自动生成测例的电网安全稳定控制装置测试方法及***
CN113704079A (zh) * 2020-05-22 2021-11-26 北京沃东天骏信息技术有限公司 基于Protobuf的接口测试方法和装置
CN111831556A (zh) * 2020-06-18 2020-10-27 中国科学院空间应用工程与技术中心 软件多故障解耦及并行定位方法及装置
CN111597122A (zh) * 2020-07-24 2020-08-28 四川新网银行股份有限公司 一种基于历史缺陷数据挖掘的软件故障注入方法
CN114115168A (zh) * 2020-09-01 2022-03-01 上汽通用汽车有限公司 故障注入测试***
CN112306877A (zh) * 2020-10-30 2021-02-02 山东山大电力技术股份有限公司 一种电力***故障运维方法及***
CN112506757A (zh) * 2020-11-17 2021-03-16 中广核工程有限公司 自动测试方法、***、计算机设备及其介质
CN112527649A (zh) * 2020-12-15 2021-03-19 建信金融科技有限责任公司 一种测试用例的生成方法和装置
CN114510381A (zh) * 2021-12-30 2022-05-17 锐捷网络股份有限公司 故障注入方法、装置、设备和存储介质
CN114500345A (zh) * 2022-01-25 2022-05-13 上海安般信息科技有限公司 一种基于自定义协议配置的模糊测试与诊断***
CN114741284A (zh) * 2022-03-30 2022-07-12 中国电子产品可靠性与环境试验研究所((工业和信息化部电子第五研究所)(中国赛宝实验室)) 任务可靠性评估方法、装置、计算机设备和存储介质
CN115185832A (zh) * 2022-06-25 2022-10-14 平安银行股份有限公司 测试用例的生成方法、装置、计算机设备及可读存储介质
CN115291585A (zh) * 2022-07-13 2022-11-04 合众新能源汽车有限公司 一种vcu的故障数据获取方法及相关装置
CN115470064A (zh) * 2022-07-29 2022-12-13 重庆长安汽车股份有限公司 待测设备的安全测试方法、装置、电子设备及存储介质
CN115328771A (zh) * 2022-08-02 2022-11-11 交控科技股份有限公司 测试工具的故障测试方法、装置、设备及介质
CN115616372A (zh) * 2022-08-30 2023-01-17 超聚变数字技术有限公司 故障注入测试方法和***
CN116302766A (zh) * 2022-09-09 2023-06-23 山东有人物联网股份有限公司 故障注入测试方法、装置、电子设备及可读存储介质
CN115993812A (zh) * 2023-01-19 2023-04-21 重庆长安新能源汽车科技有限公司 整车故障诊断测试方法、装置、***、设备及介质
CN116204428A (zh) * 2023-02-27 2023-06-02 中国建设银行股份有限公司 一种测试用例生成方法和装置
CN116737538A (zh) * 2023-04-13 2023-09-12 武汉铁路职业技术学院 轨道交通牵引传动控制单元软件自动化测试***及方法
CN116915442A (zh) * 2023-06-12 2023-10-20 中国工商银行股份有限公司 漏洞测试方法、装置、设备和介质
CN116932265A (zh) * 2023-07-24 2023-10-24 中国建设银行股份有限公司 故障模拟处理方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN117130945A (zh) 2023-11-28

Similar Documents

Publication Publication Date Title
US20170075795A1 (en) Identifying test gaps using code execution paths
US20190324834A1 (en) Implementing a post error analysis system that includes log creation facilities associated with instances of software applications
CN110674047B (zh) 软件测试方法、装置及电子设备
CN109977012B (zh) ***的联调测试方法、装置、设备及计算机可读存储介质
CN111221727A (zh) 测试方法、装置、电子设备和计算机可读介质
CN114168471A (zh) 测试方法、装置、电子设备及存储介质
CN114064435A (zh) 数据库测试方法、装置、介质与电子设备
US11449408B2 (en) Method, device, and computer program product for obtaining diagnostic information
CN113778849A (zh) 用于测试代码的方法、装置、设备以及存储介质
CN117130945B (zh) 一种测试方法和装置
CN115576831A (zh) 一种测试案例推荐方法、装置、设备及存储介质
CN113360182B (zh) ***性能诊断的方法和装置
CN113760874A (zh) 数据质量检测的方法、装置、电子设备和存储介质
CN113434382A (zh) 数据库性能监控方法、装置、电子设备及计算机可读介质
CN113220586A (zh) 一种自动化的接口压力测试执行方法、装置和***
CN113254325A (zh) 测试用例的处理方法和装置
CN115190008B (zh) 故障处理方法、故障处理装置、电子设备及存储介质
CN112965910B (zh) 自动化回归测试方法、装置、电子设备、存储介质
CN116723117A (zh) 一种监听方法和装置
CN116954975A (zh) 软件产品的故障处理方法、***、装置以及存储介质
CN114064484A (zh) 接口测试方法、装置、电子设备及可读存储介质
TW202307670A (zh) 自動產生參數測試請求的裝置及方法
CN116107908A (zh) 一种单元测试代码生成方法和装置
CN113190453A (zh) 一种用户界面测试方法、装置、服务器和介质
CN113778842A (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