CN112416740A - 测试用例有效性的评估方法、电子设备和存储介质 - Google Patents

测试用例有效性的评估方法、电子设备和存储介质 Download PDF

Info

Publication number
CN112416740A
CN112416740A CN201911366396.0A CN201911366396A CN112416740A CN 112416740 A CN112416740 A CN 112416740A CN 201911366396 A CN201911366396 A CN 201911366396A CN 112416740 A CN112416740 A CN 112416740A
Authority
CN
China
Prior art keywords
test case
faults
fault
validity
software
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
CN201911366396.0A
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.)
Shanghai Bilibili Technology Co Ltd
Original Assignee
Shanghai Bilibili 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 Shanghai Bilibili Technology Co Ltd filed Critical Shanghai Bilibili Technology Co Ltd
Priority to CN201911366396.0A priority Critical patent/CN112416740A/zh
Publication of CN112416740A publication Critical patent/CN112416740A/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3644Software debugging by instrumenting at runtime

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

本发明涉及一种测试用例有效性的评估方法、电子设备和存储介质,属于软件测试技术领域。所述测试用例有效性的评估方法包括:向软件中注入多个故障,所述故障符合预设的故障规则,所述故障规则预先存储在预先建立的故障规则库中;利用待评估的测试用例,执行所述软件;记录执行所述软件的结果,并统计所述测试用例未检出的故障的数量;根据注入的故障数量及所述未检出的故障的数量计算所述测试用例有效的概率。本发明实施例能够自动化地度量测试用例的有效性,不仅效率高,也降低了测试用例有效性度量的成本;而且,能够可靠地评估测试用例的有效性。

Description

测试用例有效性的评估方法、电子设备和存储介质
技术领域
本发明涉及计算机技术领域,特别涉及软件测试技术领域,具体是指一种测试用例有效性的评估方法、电子设备和存储介质。
背景技术
测试用例是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求,是将软件测试的行为活动做一个测试用例科学化的组织归纳,目的是能够将软件测试的行为转化成可管理的模式,而且测试用例也是将测试具体量化的方法之一。一组测试用例能调用被测系统特定业务代码,能够触发代码各分支流程。当业务代码出问题时,可以发现该问题,我们认为测试用例是有效的;反之是无效的。可以认为,测试用例是软件测试的基石,而测试用例的有效性也直接影响测试的质量。
为了评估测试用例的有效性,现有技术中通常采用测试用例评审方法,一方面,这种方法会因评审人员对被测系统熟悉程度、及测试用例设计水平和经验不同,影响测试用例有效性评估的结果,从而给评估的可靠性带来了很大的影响,而且,也间接地影响了测试用例的有效性,导致测试用例的有效性无法保障,不能确保有效地发现BUG;另一方面,由于人工操作,不仅效率低,而且测试用例有效性度量的成本高。
发明内容
为了克服上述问题,本发明提供了一种测试用例有效性的评估方法,包括:向软件中注入多个故障,所述故障符合预设的故障规则,所述故障规则预先存储在预先建立的故障规则库中;利用待评估的测试用例,执行所述软件;记录执行所述软件的结果,并统计所述测试用例未检出的故障的数量;根据注入的故障数量及所述未检出的故障的数量计算所述测试用例有效的概率。
可选的,根据所述未检出的故障调整完善所述测试用例。
可选的,所述故障规则库的建立方法,可以包括:根据新出现的BUG进行故障规则学习以提炼新的故障规则;将所述新的故障规则添加到所述故障规则库中。
可选的,所述的根据新出现的BUG进行故障规则学习以提炼新的故障规则,可以包括:监听BUG管理系统或线上故障处理系统新出现的BUG;收集和分析所述BUG,提炼新的故障规则。
可选的,所述测试用例有效性的评估方法采用热部署方法。
可选的,所述测试用例有效性的评估方法,还包括:选择符合所述故障规则的故障;将与所述故障相关的多个测试用例作为测试用例集;以一所述测试用例集为一组进行测试用例有效性的评估。
上述测试用例有效性的评估方法,可以根据公式“测试用例有效的概率=1-未检出的故障的数量/注入的故障数量”评估该测试用例有效性。
本发明也提供了一种电子设备,包括:处理器和存储器,所述存储器存储有计算机程序,所述处理器运行所述计算机程序,实现上述任一项所述的方法。
进一步地,所述电子设备可以包括处理器和存储器,所述存储器存储有故障规则库,所述故障规则库用于存储若干条故障规则;所述处理器执行向软件中注入多个故障,所述故障符合所述故障规则;利用待评估的测试用例,执行所述软件;记录执行所述软件的结果,并统计所述测试用例未检出的故障的数量;根据注入的故障数量及所述未检出的故障的数量计算所述测试用例有效的概率。
本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的方法。
通过本发明提供的测试用例有效性的评估方法,包括:向软件中注入多个故障,所述故障符合预设的故障规则,所述故障规则预先存储在预先建立的故障规则库中;利用待评估的测试用例,执行所述软件;记录执行所述软件的结果,并统计所述测试用例未检出的故障的数量;根据注入的故障数量及所述未检出的故障的数量计算所述测试用例有效的概率。能够自动化地度量测试用例的有效性,不仅效率高,也降低了测试用例有效性度量的成本;而且,能够可靠地评估测试用例的有效性。
附图说明
图1是本发明一实施例的测试用例有效性的评估方法的流程示意图;
图2是故障规则库的建立方法的流程示意图;
图3是图2中S11包括的方法的流程示意图;
图4是本发明一实施例中未注入故障时执行代码的结果示意图;
图5是向图4中的代码注入故障后执行所述代码的结果示意图;
图6是本发明一实施例的电子设备的示意框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
请参阅图1所示,为本发明一实施例的测试用例有效性的评估方法的流程示意图,包括了以下步骤:
S1:向软件中注入多个故障,所述故障符合预设的故障规则,所述故障规则预先存储在预先建立的故障规则库中;
S2:利用待评估的测试用例,执行所述软件;
S3:记录执行所述软件的结果,并统计所述测试用例未检出的故障的数量;
S4:根据注入的故障数量及所述未检出的故障的数量计算所述测试用例有效的概率。
由此,本发明的测试用例有效性的评估方法能够自动化地度量测试用例的有效性,不仅效率高,也降低了测试用例有效性度量的成本;而且,能够可靠地评估测试用例的有效性,使得无效测试用例被准确并及时地识别和清理,并为做好被测系统的持续集成和持续交付打好基础。
进一步地,本发明的测试用例有效性的评估方法还包括:根据未检出的故障调整完善测试用例,以提高测试用例发现BUG的能力,从而提高测试用例的有效性。
然而,随着软件系统不断迭代,累积的测试用例越来越多,每次迭代的回归测试量会越来越大,使得找出并清理那些无效测试用例(发现不了BUG的测试用例)变得越来越困难。所以,以提高测试用例的有效性为目的可以在很大程度上减轻负担,因此,本发明的故障规则库的建立,采用了以下所示的方法,如图2所示的步骤包括了:
S11:根据新出现的BUG进行故障规则学习以提炼新的故障规则;
S12:将所述新的故障规则添加到所述故障规则库中。
由此,使上述的故障规则库得到持续更新完善,不断地提高测试用例发现BUG的能力,从而提高测试用例的有效性。
图3为图2中S11步骤的流程示意图,包括以下步骤:
S111:监听BUG管理系统或线上故障处理系统新出现的BUG;
S112:收集和分析所述BUG,提炼新的故障规则。
能够使故障规则库持续升级更新,进一步持续提高测试用例的有效性。
另外,本发明的测试用例有效性的评估方法优选地采用热部署方法,以减少每次注入故障后被测系统部署的时间。
可选的,所述测试用例有效性的评估方法,还包括:选择符合所述故障规则的故障;将与所述故障相关的多个测试用例作为测试用例集;以一所述测试用例集为一组进行测试用例有效性的评估。能够提高测试用例有效性的评估效率。
上述测试用例有效性的评估方法,可以根据公式“测试用例有效的概率=1-未检出的故障的数量/注入的故障数量”评估该测试用例有效性。能够快速评估测试用例有效性。
为了能够更清楚地理解本发明的技术内容,特举以下实施例详细说明。
例如,针对待评估的A组测试用例和B组测试用例分别建立故障规则库,用于存储故障规则。图4中标记400的代码(软件)在未注入故障时,利用A组测试用例,执行所述代码得到执行结果410为全部通过(实际中,字体为绿色);利用B组测试用例,执行所述代码得到执行结果420为全部通过(实际中,字体为绿色)。然后,对该标记400的代码注入故障,执行所述代码,与图4中未注入故障时的执行结果相应地做对比。比如:把关系运算符“!=”改为“==”、把条件语句if语句改恒为ture。举例来说,如向图4中标记400的代码注入故障,把条件sub<72*time.Hour改为sub<=72*time.Hour,然后利用A组测试用例,执行所述代码,如图5所示,执行的结果510中511标记的字体为异常颜色,即相应地执行失败(实际中,执行失败字体为红色,执行通过字体为绿色),发现了本次故障注入,可以判定A组测试用例有效性足够;利用B组测试用例,执行所述代码,而结果520为执行通过(实际中,字体全部为绿色),没有发现本次故障注入,可以判定B组测试用例有效性不足。根据上述方式,一方面,记录执行结果,根据未发现的故障调整完善测试用例,以提高测试用例的有效性;另一方面,统计未发现的故障数量,根据注入的故障数量及所述未检出的故障的数量计算所述测试用例有效的概率,公式是:测试用例有效性(%)=(注入故障总数-未发现注入故障数)/注入故障总数。举例来说,一被测系统的测试用例总数为900,注入故障总数为500,未发现注入故障数量为100,则该系统的测试用例目前有效性为:(500-100)/500=90%。
根据以上内容,本实施例的测试用例有效性的评估方法能够自动化地度量测试用例的有效性,效率高,也降低了测试用例有效性度量的成本;而且,能够可靠地评估测试用例的有效性。另外,根据未发现的故障调整完善测试用例,提高了测试用例的有效性。
然而,随着软件系统不断迭代,累积的测试用例越来越多,每次迭代的回归测试量会越来越大,使得找出并清理那些无效测试用例(发现不了BUG的测试用例)变得越来越困难。可以采用如下实施形态使测试用例不断地升级更新,从而不断地提高测试用例的有效性,在很大程度上减轻负担。例如,对BUG管理系统或线上故障处理系统设置监听,将新出现在BUG管理系统中等级为“严重”、“致命”、“重复出现”中的BUG、以及线上故障处理系统新出现的BUG作为典型BUG,收集这些典型BUG,获取并分析其数据以提炼新的故障规则,将所述新的故障规则添加到测试用例的故障规则库中。
例1,某漫画APP中,监听BUG管理系统新出现的典型BUG:“首页-排行榜”中“风格、作者”重复,从BUG管理系统中获取并分析详情数据,原因是:开发优化漫画的“风格和作者”DB查询的过程中,在设计时没有添加幂等逻辑,所以执行了多次导致上述问题。一方面,采取改进措施:批量操作需要添加的幂等逻辑;另一方面,根据上述数据提炼新的故障规则:非幂等函数或方法。将该新的故障规则添加到测试用例的故障规则库中。当注入故障符合该新的故障规则后,使用相同参数重复执行,会导致不同结果。
例2,某交易平台APP中,监听BUG管理系统新出现的典型BUG:做“消耗代币业务”操作时,金额数值为负数也能操作成功,从BUG管理系统中获取并分析详情数据,原因是:开发时未校验金额的合理性。一方面,采取改进措施:添加校验金额的合理性的逻辑;另一方面,根据上述数据提炼新的故障规则:涉及金额类的函数或方法,对参数数值取反。将该新的故障规则添加到测试用例的故障规则库中。当注入故障符合该新的故障规则后,会出现处理异常。
根据上述内容,能够使测试用例的故障规则库持续升级更新,进而持续提高测试用例的有效性,进一步确保有效地发现BUG。
本发明一实施例还提供了一种电子设备,包括:存储器和处理器,所述存储器存储有故障规则库,所述故障规则库用于存储若干条故障规则;所述处理器执行向软件中注入多个故障,所述故障符合所述故障规则;利用待评估的测试用例,执行所述软件;记录执行所述软件的结果,并统计所述测试用例未检出的故障的数量;根据注入的故障数量及所述未检出的故障的数量计算所述测试用例有效的概率。运行本实施例的电子设备,能够自动化地度量测试用例的有效性,不仅效率高,也降低了测试用例有效性度量的成本;而且,能够可靠地评估测试用例的有效性。
本发明一实施例还提供了一种计算机可读存储介质,其中存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的测试用例有效性的评估方法。读取本实施例的存储介质中存储的计算机程序,然后执行该计算机程序,能够自动化地度量测试用例的有效性,不仅效率高,也降低了测试用例有效性度量的成本;而且,能够可靠地评估测试用例的有效性。
图6是本发明一实施例的测试用例有效性的评估装置的示意框图,该装置包括:故障规则学习装置200、故障规则库装置201、评估执行装置202、注入故障装置203和统计报告装置204,所述故障规则学习装置200用于监听BUG管理系统或线上故障处理系统新出现的BUG,对其详情数据进行分析,提炼新的故障规则添加到故障规则库中;故障规则库装置201用于存储故障规则;评估执行装置202用于调度执行评估任务;注入故障装置203用于往被测系统中注入故障(BUG);统计报告装置204用于记录执行结果和统计报告测试用例有效性。
根据上述内容,本发明提供的测试用例有效性的评估方法,包括:建立故障规则库以存储若干条故障规则;向软件中注入多个故障,所述故障符合所述故障规则;利用待评估的测试用例,执行所述软件;记录执行所述软件的结果,并统计所述测试用例未检出的故障的数量;根据注入的故障数量及所述未检出的故障的数量计算所述测试用例有效的概率。能够自动化地度量测试用例的有效性,不仅效率高,也降低了测试用例有效性度量的成本;而且,能够可靠地评估测试用例的有效性。
在此说明书中,本发明已参照其特定的实施例作了描述。但是,很显然仍可以作出各种修改和变换而不背离本发明的精神和范围。因此,说明书和附图应被认为是说明性的而非限制性的。

Claims (10)

1.一种测试用例有效性的评估方法,其特征在于,包括:
向软件中注入多个故障,所述故障符合预设的故障规则,所述故障规则预先存储在预先建立的故障规则库中;
利用待评估的测试用例,执行所述软件;
记录执行所述软件的结果,并统计所述测试用例未检出的故障的数量;
根据注入的故障数量及所述未检出的故障的数量计算所述测试用例有效的概率。
2.根据权利要求1所述的测试用例有效性的评估方法,其特征在于,所述的测试用例有效性的评估方法,还包括:
根据所述未检出的故障调整完善所述测试用例。
3.根据权利要求1所述的测试用例有效性的评估方法,其特征在于,所述故障规则库的建立方法,包括:
根据新出现的BUG进行故障规则学习以提炼新的故障规则;
将所述新的故障规则添加到所述故障规则库中。
4.根据权利要求3所述的测试用例有效性的评估方法,其特征在于,所述的根据新出现的BUG进行故障规则学习以提炼新的故障规则,包括:
监听BUG管理系统或线上故障处理系统新出现的BUG;
收集和分析所述BUG,提炼新的故障规则。
5.根据权利要求1所述的测试用例有效性的评估方法,其特征在于,所述测试用例有效性的评估方法采用热部署方法。
6.根据权利要求1所述的测试用例有效性的评估方法,其特征在于,所述测试用例有效性的评估方法,还包括:
选择符合所述故障规则的故障;
将与所述故障相关的多个测试用例作为测试用例集;
以一所述测试用例集为一组进行测试用例有效性的评估。
7.根据权利要求1所述的测试用例有效性的评估方法,其特征在于,根据公式“测试用例有效的概率=1-未检出的故障的数量/注入的故障数量”评估该测试用例有效性。
8.一种电子设备,其特征在于,包括:处理器和存储器,所述存储器存储有计算机程序,所述处理器运行所述计算机程序,实现如权利要求1至7中任一项所述的方法。
9.根据权利要求8所述的电子设备,其特征在于,包括:
存储器,所述存储器存储有故障规则库,所述故障规则库用于存储若干条故障规则;
处理器,所述处理器执行向软件中注入多个故障,所述故障符合所述故障规则,
利用待评估的测试用例,执行所述软件,
记录执行所述软件的结果,并统计所述测试用例未检出的故障的数量,
根据注入的故障数量及所述未检出的故障的数量计算所述测试用例有效的概率。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的方法。
CN201911366396.0A 2019-12-26 2019-12-26 测试用例有效性的评估方法、电子设备和存储介质 Pending CN112416740A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911366396.0A CN112416740A (zh) 2019-12-26 2019-12-26 测试用例有效性的评估方法、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911366396.0A CN112416740A (zh) 2019-12-26 2019-12-26 测试用例有效性的评估方法、电子设备和存储介质

Publications (1)

Publication Number Publication Date
CN112416740A true CN112416740A (zh) 2021-02-26

Family

ID=74844024

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911366396.0A Pending CN112416740A (zh) 2019-12-26 2019-12-26 测试用例有效性的评估方法、电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN112416740A (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102629232A (zh) * 2012-01-09 2012-08-08 北京航空航天大学 引入测试有效性的软件可靠性验证测试方法
CN108572909A (zh) * 2017-03-10 2018-09-25 阿里巴巴集团控股有限公司 测试用例的处理方法、装置及电子设备
CN109885500A (zh) * 2019-02-27 2019-06-14 苏州浪潮智能科技有限公司 一种提高软件测试覆盖率的方法和系统
CN110580215A (zh) * 2018-06-08 2019-12-17 西安邮电大学 一种基于用户会话的Web测试用例约简优化方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102629232A (zh) * 2012-01-09 2012-08-08 北京航空航天大学 引入测试有效性的软件可靠性验证测试方法
CN108572909A (zh) * 2017-03-10 2018-09-25 阿里巴巴集团控股有限公司 测试用例的处理方法、装置及电子设备
CN110580215A (zh) * 2018-06-08 2019-12-17 西安邮电大学 一种基于用户会话的Web测试用例约简优化方法
CN109885500A (zh) * 2019-02-27 2019-06-14 苏州浪潮智能科技有限公司 一种提高软件测试覆盖率的方法和系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
温东新等: "利用软件故障注入提高软件测试覆盖率", 同济大学学报(自然科学版), pages 1253 - 1256 *

Similar Documents

Publication Publication Date Title
US9317400B2 (en) Code coverage rate determination method and system
US7757125B2 (en) Defect resolution methodology and data defects quality/risk metric model extension
US11119895B2 (en) Risk-focused testing
CN112199293A (zh) 软件质量评价方法、装置、终端设备及存储介质
CN110990249A (zh) 代码扫描结果处理方法、装置、计算机设备及存储介质
Kadry A new proposed technique to improve software regression testing cost
CN116136950B (zh) 芯片验证方法、装置、系统、电子设备及存储介质
CN101226501A (zh) 一种监控测试的方法和监控测试装置
CN115098292A (zh) 应用程序崩溃根原因识别方法、装置及电子设备
CN114691521A (zh) 一种基于人工智能的软件测试平台
Tarwani et al. Prioritization of code restructuring for severely affected classes under release time constraints
CN112598326A (zh) 模型迭代方法、装置、电子设备及存储介质
CN112506802A (zh) 测试数据的管理方法及系统
CN112416740A (zh) 测试用例有效性的评估方法、电子设备和存储介质
CN115576831A (zh) 一种测试案例推荐方法、装置、设备及存储介质
Papakitsos Robust Software Quality Assurance
CN110413516B (zh) 识别慢sql代码的方法及装置和电子设备
CN113157583A (zh) 一种测试方法、装置及设备
CN112131128A (zh) 数据测试方法、装置、存储介质和电子装置
CN117112398B (zh) 增量代码覆盖率检测方法、装置、电子设备及存储介质
Chaudhary et al. A review on software realibility growth modelling
CN112463577B (zh) 一种用于样本数据的处理方法、装置及电子设备
CN115545677B (zh) 基于自动化用例执行情况的上线流程规范检测方法和系统
Harder et al. Specification coverage as a measure of test suite quality
Munson et al. Software risk assessment through software measurement and modeling

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