CN116431471A - 一种测试方法、装置、电子设备和可读存储介质 - Google Patents

一种测试方法、装置、电子设备和可读存储介质 Download PDF

Info

Publication number
CN116431471A
CN116431471A CN202310216531.3A CN202310216531A CN116431471A CN 116431471 A CN116431471 A CN 116431471A CN 202310216531 A CN202310216531 A CN 202310216531A CN 116431471 A CN116431471 A CN 116431471A
Authority
CN
China
Prior art keywords
test
parameter combination
parameter
target
heat
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
CN202310216531.3A
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.)
Netease Hangzhou Network Co Ltd
Original Assignee
Netease Hangzhou Network 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 Netease Hangzhou Network Co Ltd filed Critical Netease Hangzhou Network Co Ltd
Priority to CN202310216531.3A priority Critical patent/CN116431471A/zh
Publication of CN116431471A publication Critical patent/CN116431471A/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
    • 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
    • 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

本公开实施例提供了一种测试方法、装置、电子设备和可读存储介质,所述方法包括:获取待测试软件的日志数据,并从所述日志数据中获取创建实例所采用的参数组合;统计各所述参数组合的热度分值,并根据各所述参数组合的热度分值确定放入参数组合栈中的目标参数组合;采用所述目标参数组合创建对应的测试实例进行功能测试,并在测试完成之后,重新确定所述目标参数组合的热度分值;在对所述参数组合栈中的所述目标参数组合测试完成之后,重新确定下一轮放入所述参数组合栈的所述目标参数组合。根据本公开实施例,解决现有技术中对于无穷大的测试集合难于完成测试的问题,在版本上线后继续测试,提升测试可用时间,尽可能地先于用户发现问题。

Description

一种测试方法、装置、电子设备和可读存储介质
技术领域
本公开涉及计算机技术领域,特别是涉及一种测试方法、一种测试装置、一种电子设备和一种计算机可读存储介质。
背景技术
SaaS被称为软件即服务(Software-as-a-Service),通过互联网浏览器给用户提供软件服务,SaaS产品如虚拟机、容器、数据库、存储等,随着业务发展,会不断进行功能的更新,例如升降级、扩缩容、备份恢复、指定时间恢复、容灾、数据迁移等,每当添加新功能或更新旧功能时,都需要进行全功能的回归测试,从而确保更改不会影响产品的现有功能。
通常各种产品提供多样化参数设置满足不同用户需要,包括区域、架构、版本、规格等多个参数,这些参数自由选择,能够组合出成百上千种实例类型,如果以用户的角度执行每个可能性的测试,则需要对每种类型的实例进行全功能测试,那么工作量就会大到难以完成。
目前在软件测试领域中,通常使用等价类划分法,将测试集合科学地从无穷大减少到有限小,对所有可能进行合理的分类,划分出有效等价类与无效等价类,那么可以找出几种有代表性类型的实例作为有效等价类,通过完成有效等价类的测试,能够以最少的测试量,达成最高的测试质量。但是,如果等价类划分不准确,往往会漏掉某种关键情况的测试,因此,有效等价类和无效等价类合起来,才是完整的测试范围,两种等价类都考虑,才能确保软件具有更高的可靠性,而无效等价类又是无穷大的,特别是敏捷开发的项目,版本周期短,在有限的测试资源与时间内,更是难以完成此类项目测试。
发明内容
鉴于上述问题,提出了本公开实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种测试方法和相应的一种测试装置、一种电子设备,以及一种计算机可读存储介质。
本公开实施例公开了一种测试方法,所述方法包括:
获取待测试软件的日志数据,并从所述日志数据中获取创建实例所采用的参数组合;
统计各所述参数组合的热度分值,并根据各所述参数组合的热度分值确定放入参数组合栈中的目标参数组合;
采用所述目标参数组合创建对应的测试实例进行功能测试,并在测试完成之后,重新确定所述目标参数组合的热度分值;
在对所述参数组合栈中的所述目标参数组合测试完成之后,重新确定下一轮放入所述参数组合栈的所述目标参数组合。
本公开实施例还公开了一种测试装置,所述装置包括:
获取模块,用于获取待测试软件的日志数据,并从所述日志数据中获取创建实例所采用的参数组合;
统计及确定模块,用于统计各所述参数组合的热度分值,并根据各所述参数组合的热度分值确定放入参数组合栈中的目标参数组合;
功能测试及确定模块,用于采用所述目标参数组合创建对应的测试实例进行功能测试,并在测试完成之后,重新确定所述目标参数组合的热度分值;
第一确定模块,用于在对所述参数组合栈中的所述目标参数组合测试完成之后,重新确定下一轮放入所述参数组合栈的所述目标参数组合。
本公开实施例还公开了一种电子设备,包括:处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述一种测试方法。
本公开实施例还公开了一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如上所述一种测试方法。
本公开实施例包括以下优点:
在本公开实施例中,可以获取待测试软件的日志数据,从日志数据中获取创建实例采用的参数组合,可以统计各参数组合的热度分值,并根据热度分值确定可以放入参数组合栈中的目标参数组合,可以采用目标参数组合创建对应的测试实例进行功能测试,并在测试完成之后,重新确定目标参数组合的热度分值,在对参数组合栈中的目标参数组合测试完成之后,可以重新确定下一轮放入参数组合栈的目标参数组合。通过采用上述方法,解决现有技术中对于无穷大的测试集合难于完成测试的问题,在新的软件版本上线后从上线运行的软件中导出日志数据进行继续测试,增大测试可用时间。通过热度分值确定参数组合的测试优先级顺序,从而能够尽早地完成热点类型实例的测试,保证热点类型实例的质量,尽可能地先于用户发现问题,减少问题的发生。
附图说明
图1是本公开实施例提供的一种测试方法的步骤流程图;
图2是本公开实施例提供的另一种测试方法的步骤流程图;
图3是本公开实施例的一种获取参数组合存储于参数库的流程示意图;
图4是本公开实施例的一种循环测试的执行流程示意图;
图5是本公开实施例的一种分级告警的流程示意图;
图6是本公开实施例提供的一种测试装置的结构框图;
图7是本公开实施例提供的一种电子设备的结构框图。
具体实施方式
为使本公开的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本公开作进一步详细的说明,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本公开保护的范围。
目前在软件测试领域中,通常使用等价类划分法,将测试集合科学地从无穷大减少到有限小,对所有可能进行合理的分类,划分出有效等价类与无效等价类,那么可以找出几种有代表性类型的实例作为有效等价类,通过完成有效等价类的测试,能够以最少的测试量,达成最高的测试质量。但是,如果等价类划分不准确,往往会漏掉某种关键情况的测试,因此,有效等价类和无效等价类合起来,才是完整的测试范围,两种等价类都考虑,才能确保软件具有更高的可靠性,而无效等价类又是无穷大的,特别是敏捷开发的项目,版本周期短,在有限的测试资源与时间内,更是难以完成此类项目测试。
基于此,本公开涉及提供基于优先级智能分类的测试方法,以解决现有技术中对于无穷大的测试集合难于完成测试的问题,在版本上线后继续测试,提升测试可用时间,尽可能地先于用户发现问题。
本公开实施例,可以获取待测试软件的日志数据,从日志数据中获取创建实例采用的参数组合,可以统计各参数组合的热度分值,并根据热度分值确定可以放入参数组合栈中的目标参数组合,可以采用目标参数组合创建对应的测试实例进行功能测试,并在测试完成之后,重新确定目标参数组合的热度分值,在对参数组合栈中的目标参数组合测试完成之后,可以重新确定下一轮放入参数组合栈的目标参数组合。通过采用上述方法,解决现有技术中对于无穷大的测试集合难于完成测试的问题,在新的软件版本上线后从上线运行的软件中导出日志数据进行继续测试,增大测试可用时间。通过热度分值确定参数组合的测试优先级顺序,从而能够尽早地完成热点类型实例的测试,保证热点类型实例的质量,尽可能地先于用户发现问题,减少问题的发生。
参照图1,示出了本公开实施例提供的一种测试方法的步骤流程图,具体可以包括如下步骤:
步骤101,获取待测试软件的日志数据,并从所述日志数据中获取创建实例所采用的参数组合。
本公开实施例中负责执行一种测试方法中各个步骤的可以是服务器,也可以是终端设备。其中,终端设备可以为计算机、手机、平板电脑、游戏机、PDA等各种终端设备,本申请实施例对终端设备的具体类型不作限定。
在本公开实施例中,可以获取待测试软件的日志数据,并从该日志数据中获取创建实例所采用的参数组合。其中,待测试软件可以是办公软件、互联网软件、多媒体软件、分析软件、协作软件和商务软件等各种类型的软件。可选地,待测试软件可以是SaaS产品。
步骤102,统计各所述参数组合的热度分值,并根据各所述参数组合的热度分值确定放入参数组合栈中的目标参数组合。
在本公开实施例中,可以统计各参数组合的热度分值,其中,热度分值用于确定参数组合使用的频繁程度。参数组合使用越频繁则对应的热度分值越高。然后可以根据各参数组合的热度分值确定加入到参数组合栈中的目标参数组合。加入参数组合栈中的目标参数组合即为本轮选中进行功能测试的参数组合。
步骤103,采用所述目标参数组合创建对应的测试实例进行功能测试,并在测试完成之后,重新确定所述目标参数组合的热度分值。
在本公开实施例中,在确定目标参数组合之后,即可以采用该目标参数组合创建对应的测试实例进行功能测试。在对每一个目标参数组合进行功能测试之后,均需要重新确定该目标参数组合的热度分值。
步骤104,在对所述参数组合栈中的所述目标参数组合测试完成之后,重新确定下一轮放入所述参数组合栈的所述目标参数组合。
在对参数组合栈中的目标参数组合测试完成之后,可以重新确定下一轮进入参数组合栈的目标参数组合,循环进行持续测试。
综上,在本公开实施例中,可以获取待测试软件的日志数据,从日志数据中获取创建实例采用的参数组合,可以统计各参数组合的热度分值,并根据热度分值确定可以放入参数组合栈中的目标参数组合,可以采用目标参数组合创建对应的测试实例进行功能测试,并在测试完成之后,重新确定目标参数组合的热度分值,在对参数组合栈中的目标参数组合测试完成之后,可以重新确定下一轮放入参数组合栈的目标参数组合。通过采用上述方法,解决现有技术中对于无穷大的测试集合难于完成测试的问题,在新的软件版本上线后从上线运行的软件中导出日志数据进行继续测试,增大测试可用时间。通过热度分值确定参数组合的测试优先级顺序,从而能够尽早地完成热点类型实例的测试,保证热点类型实例的质量,尽可能地先于用户发现问题,减少问题的发生。
参照图2,示出了本公开实施例提供的另一种测试方法的步骤流程图,具体可以包括如下步骤:
步骤201,获取待测试软件的日志数据,并从所述日志数据中获取创建实例所采用的参数组合。
本公开实施例中负责执行一种测试方法中各个步骤的可以是服务器,也可以是终端设备。其中,终端设备可以为计算机、手机、平板电脑、游戏机、PDA等各种终端设备,本申请实施例对终端设备的具体类型不作限定。
在本公开实施例中,可以获取待测试软件的日志数据,并从该日志数据中获取创建实例所采用的参数组合。
在具体实施中,可以分析待测试软件的日志数据,采用参数收集器从日志数据中收集用户创建实例时所使用过的参数组合,为执行测试提供测试参数样本。在一种示例中,收集方法可以是每当日志数据中出现一组新的参数组合时,将该参数组合收集保存在参数库中。
在本公开一种可选的实施例中,日志数据为API日志数据,步骤201中获取待测试软件的日志数据,具体可以包括如下子步骤:
子步骤S11,确定所述待测试软件的日志库,以API地址作为扫描关键字定时扫描所述日志库,获得对应的所述API日志数据。
在本公开实施例中,日志数据为API(Application Programming Interface,应用程序编程接口)日志数据,具体的,响应用户操作,生成用户所操作的API日志数据,并保存在日志库中。
获取日志数据时,可以对日志库进行扫描,以API地址作为扫描关键字定时扫描日志库,获得对应的API日志数据。
在具体实施例中,可以由调度器负责扫描日志库。调度器启动日志扫描任务,首先生成扫描的参数,包括起始时间与结束时间,起始时间是以上一次扫描的结束时间加1分钟作为本次扫描的起始时间,比如上次扫了10:01分所有日志,那么本次应从10:02分开始,再以当前时间减1分钟作为本次扫描的结束时间,减1分钟的目的是为了防止日志延迟以及时间边界极限情况产生的漏扫或多扫日志的问题,如果是第一次扫描,则以当前时间为扫描的起始时间,等待10分钟,再以当前时间减1分钟作为扫描的结束时间。扫描的参数还包括所需扫描的API地址,可以以API地址作为扫描关键字,扫描起始时间到结束时间的时间范围内产生的API日志数据,其中可以包括起始时间分钟单位内的日志到结束时间分钟单位内的日志。参照图3所示,为本公开实施例的一种获取参数组合存储于参数库的流程示意图。待测试软件可以为SaaS平台,获取SaaS平台的日志数据,对日志数据进行分析处理,获得对应的参数组合存储于参数库,调度器负责按照扫描参数扫描日志库。
步骤202,统计各所述参数组合的热度分值,并根据各所述参数组合的热度分值确定放入参数组合栈中的目标参数组合。
参数组合存储于参数库中,各个参数组合分别具有对应的热度分值。其中,预设初始分值可以为0。
在本公开一种可选的实施例中,步骤202中统计各所述参数组合的热度分值,具体可以包括如下子步骤:
子步骤S21,若当次扫描获得的参数组合已存在所述参数库中,则将对应的所述参数组合的热度分值增加预设分值。
子步骤S22,若当次扫描获得的参数组合未存在所述参数库中,则将所述参数组合添加至所述参数组中,并将所述参数组合的热度分值设定为预设初始分值。
参数组合在参数库中唯一,如果当次扫描获得的参数组合已经存在参数库中,则可以将对应的参数组合的热度分值增加预设分值;如果当次扫描获得的参数组合还未存在参数库中,则可以将该参数组合添加至参数组中,并将该参数组合的热度分值设定为预设的初始分值。例如,如果参数组合存在于参数库中,则它的热度分值加1,如果参数组合不存在于参数库中,则在参数库插入该参数组合时,它的热度分值设定为0。
参数组合存入参数库后,本次扫描完成,并通知调度器,调度器等待10分钟后,启动下一次日志扫描。
在本公开一种可选的实施例中,步骤202中根据各所述参数组合的热度分值确定放入参数组合栈中的目标参数组合,具体可以包括如下子步骤:
对各所述参数组合的热度分值进行排序,将排序结果中热度分值高的参数组合优先确定为放入所述参数组合栈中的所述目标参数组合。
在本公开实施例中,参数组合的使用频率越高,获得的测试机会越多。
在具体实施中,测试执行开始先从参数库中取出所有参数组合与每个参数组合对应的热度分值,按照热度分值进行排序,确定可以放入参数组合栈的目标参数组合。
对于可以放入参数组合栈的目标参数组合,低分的先入栈,高分的后入栈,为后续的循环测试生成一个参数组合栈。
步骤203,采用所述目标参数组合创建对应的测试实例进行功能测试。
在本公开一种可选的实施例中,步骤203中采用所述目标参数组合创建对应的测试实例进行功能测试,具体可以包括如下子步骤:
子步骤S31,确定与所述目标参数组合对应的目标API地址,并采用所述目标参数组合与对应的所述目标API地址创建对应的所述测试实例。
子步骤S32,确定与所述目标API地址对应的功能用例列表,并按照所述功能用例列表中的各项功能对所述测试实例进行功能测试。
各参数组合分别具有对应的API地址,API地址映射所需测试的功能用例列表,即API地址具有对应的功能用例列表。
执行测试时,从参数组合栈中取出一组目标参数组合,确定与该目标参数组合对应的目标API地址,以及确定与该目标API地址对应的功能用例列表,可以采用目标参数组合与对应的目标API地址创建测试实例,然后按照对应的功能用例列表中的各项功能对测试实例进行功能测试。也就是说测试可以回放执行在先的功能请求,使用同样的参数执行功能请求。
实例创建完成后,找到该API地址对应的功能用例列表,遍历执行测试,从而实现了不同类型的实例,采用相对应的功能测试。
步骤204,测试完成之后,将各所述参数组合的热度分值求和,获得热度总分值。
步骤205,计算所述目标参数组合的热度分值与所述热度总分值的比值。
步骤206,将所述目标参数组合的热度分值与所述比值的乘积确定为所述目标参数组合的新的热度分值。
被测试过的目标参数组合的热度分值会重新计算,公式可以如下所示:
被测试参数组合新的热度分值=被测试参数组合当前的热度分值*(被测试参数组合当前的热度分值/所有参数组合的热度总分值),从而降低参数库中该组参数组合的热度分值,实现按热度比例的降级规则,使热度较低的实例类型有机会能被测试,同时对于热度较高的实例类型也保持着对应较高的测试频率。使已测试过的实例类型,降低在下一轮测试的优先级,并使未测试过的实例类型在下一轮测试优先级更高。
步骤207,在对所述参数组合栈中的所述目标参数组合测试完成之后,重新确定下一轮放入所述参数组合栈的所述目标参数组合。
在对参数组合栈中的某组目标参数组合测试完成之后,判断参数组合栈是否为空,如果不为空,则取出下一组目标参数组合继续测试,如此循环地完成所有类型实例的功能测试,直到参数组合栈为空,又进行下一轮测试,由参数生成器再次从参数库中取出新的所有参数组合与每组参数组合对应的热度分值生成参数组合栈,进入下一轮测试,如此循环不断持续测试。
在本公开实施例中,在对参数组合栈中的目标参数组合测试完成之后,可以重新确定下一轮进入参数组合栈的目标参数组合,循环进行持续测试。
本公开实施例的测试方法是一种循环测试方案。参照图4所示,为本公开实施例的一种循环测试的执行流程示意图。测试开始执行,会先从参数库中取出所有参数组合,确定放入参数组合栈中的目标参数组合,对目标参数组合的热度分值进行排序,低分值先入栈,再从栈取出一个目标参数组合进行实例创建,对该实例进行各功能测试,完成所有功能测试后,回收该实例,再找到参数库中该参数组合进行热度分值重算,再从栈取出下一个目标参数组合进行实例创建与测试,如此循环,直到栈空为止,又会从参数库中取出所有参数组合,再次生成参数组合栈进行同样方法的测试,如此循环,从而实现穷举实例进行全功能的测试,以及按用户常用的实例类型优先进行测试。
在本公开一种可选的实施例中,具体还可以执行如下步骤:
在进行功能测试的过程中,持续从所述日志数据中收集参数组合,并持续更新各所述参数组合的热度分值。
在对上一轮所述参数组合栈中的所述目标参数组合测试完成之后,根据更新的各所述参数组合的热度分值,确定下一轮放入所述参数组合栈的所述目标参数组合。
在测试执行过程中,参数收集器持续地收集用户新的实例使用类型,同时,也在持续更新现有实例类型的热度分值,使下一轮测试能够测试到用户所使用的新类型实例,以及能够保持常用实例类型能够有较高的测试优先级。
在本公开一种可选的实施例中,具体还可以执行如下步骤:
当在功能测试的过程中出现测试问题时,在问题库中记录所述测试问题。
确定所述问题库中各所述测试问题的处理状态;各所述处理状态分别对应预设告警触发条件。
若所述测试问题的处理状态为预设处理状态,且所述测试问题的属性信息满足所述预设处理状态所对应的预设告警触发条件时,对所述测试问题进行告警处理。
其中测试问题可以是实例创建、对创建的实例进行功能测试或者实例回收中出现问题。当出现测试问题时,可以在问题库中记录该测试问题,具体可以记录该测试问题对应的参数组合,以及对应的功能名称。相同的参数组合与功能名称聚合为同一个测试问题,并记录出现该测试问题的次数,该次数用于辅助工作人员判断测试问题的严重性,而每个测试问题有对应的处理状态,分别有待处理、接收和关闭三种处理状态,每种处理状态分别对应预设告警触发条件。
告警处理具体是由告警触发器执行的。告警触发器每分钟检测所有测试问题的处理状态,如果为待处理状态则触发告警,如果为接收状态,并且当前时间超出预估处理完成时间则触发告警,而每当一个新的测试问题被记录时,测试问题的初始处理状态为待处理状态,工作人员可以通过终端设备查看测试问题,以及设置测试问题的处理状态,当工作人员接收到测试问题时,可以将该测试问题设置为接收状态,并且设置一个预估处理完成的时间,即能暂时屏蔽告警,如果是非紧急可延后处理的测试问题,还可以设置一个更长的预估处理完成时间,从而能够对紧急问题与非紧急问题进行分级处理。
测试问题的属性信息可以包括上次告警时间、问题出现时间列表、预估处理完成时间和周期时间错误次数阈值等四个属性。其中,上次告警时间是指上一次对测试问题进行告警处理的时间。问题出现时间列表用于对测试问题的每次出现时间进行记录。具体的,在出现测试问题时,如果问题库中存在相同的处于待处理状态的测试问题,则需要进行聚合处理,并且在问题出现时间列表中记录这个发现测试问题的时间,否则,新建一个测试问题记录,设置该测试问题的初始处理状态为待处理状态,问题出现时间列表中记录出现测试问题的出现时间,其它属性初始值可以设置为空。预估处理完成时间可以是工作人员接收到测试问题后设定的预估处理完成时间。周期时间错误次数阈值是指在指定的时间周期内同一测试问题的出现次数大于预设次数阈值。
告警触发器可以持续扫描问题库,找出所有待处理状态的测试问题与接收状态的测试问题,当满足对应处理状态的告警触发条件时则触发告警,不同处理状态的测试问题,有着不同的告警触发条件。
其中对于待处理状态的测试问题,如果上次告警时间为空,则立刻触发警告,并以当前时间记录为上次告警时间,如果上次告警时间不为空,并且当前时间距离上次告警时间大于预设告警间隔时间阈值,则触发告警,并以当前时间记录为上次告警时间,从而能够使在短时间内重复发现的测试问题告警得到收敛。
其中对于接收状态的测试问题,如果没有预估处理完成时间与周期时间错误次数阈值两个属性信息,则告警触发条件与待处理状态的测试问题一致,如果当前时间超过预估处理完成时间,并且当前时间距离上次告警时间大于预设告警间隔时间阈值,则触发告警,目的是为了对于没有在预定时间完成处理的测试问题进行提醒,如果在指定的时间周期内同一个测试问题出现的次数大于预设次数阈值,并且当前时间距离上次告警时间大于预设告警间隔时间阈值,则触发告警,目的是为了监测被屏蔽告警的稳定性问题,当发生频率变高时能够告警。
当收到告警后,工作人员可以通过问题管理终端查看测试问题信息,并对测试问题进行状态设置,其中可以设置关闭状态。具体的,当工作人员对测试问题进行修复之后,可以将测试问题的处理状态设置为关闭状态,则表示测试问题完成处理,该测试问题告警停止。其中设置接收状态时,当测试问题被设置为这个处理状态时还有两种属性信息可选设置,一是预估处理完成时间设置,对于非紧急的测试问题需要延后处理,是通过设置预估处理完成时间,可以屏蔽一段时间的告警,当没在预定时间内关闭或延长预定时间,则进行超时告警;二是周期时间错误次数阈值设置,对于允许有低概率性发生错误的稳定性问题,当发生概率达到一定高度的时候能够告警。参照图5所示,为本公开实施例的一种分级告警的流程示意图。
综上,在本公开实施例中,可以获取待测试软件的日志数据,从日志数据中获取创建实例采用的参数组合,可以统计各参数组合的热度分值,并根据热度分值确定可以放入参数组合栈中的目标参数组合,可以采用目标参数组合创建对应的测试实例进行功能测试,并在测试完成之后,重新确定目标参数组合的热度分值,在对参数组合栈中的目标参数组合测试完成之后,可以重新确定下一轮放入参数组合栈的目标参数组合。通过采用上述方法,解决现有技术中对于无穷大的测试集合难于完成测试的问题,在新的软件版本上线后从上线运行的软件中导出日志数据进行继续测试,增大测试可用时间。通过热度分值确定参数组合的测试优先级顺序,从而能够尽早地完成热点类型实例的测试,保证热点类型实例的质量,尽可能地先于用户发现问题,减少问题的发生。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本公开实施例并不受所描述的动作顺序的限制,因为依据本公开实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本公开实施例所必须的。
参照图6,示出了本公开实施例提供的一种测试装置的结构框图,具体可以包括如下模块:
获取模块601,用于获取待测试软件的日志数据,并从所述日志数据中获取创建实例所采用的参数组合;
统计及确定模块602,用于统计各所述参数组合的热度分值,并根据各所述参数组合的热度分值确定放入参数组合栈中的目标参数组合;
功能测试及确定模块603,用于采用所述目标参数组合创建对应的测试实例进行功能测试,并在测试完成之后,重新确定所述目标参数组合的热度分值;
第一确定模块604,用于在对所述参数组合栈中的所述目标参数组合测试完成之后,重新确定下一轮放入所述参数组合栈的所述目标参数组合。
在本公开实施例中,所述功能测试及确定模块,包括:
求和子模块,用于将各所述参数组合的热度分值求和,获得热度总分值;
计算子模块,用于计算所述目标参数组合的热度分值与所述热度总分值的比值;
确定子模块,用于将所述目标参数组合的热度分值与所述比值的乘积确定为所述目标参数组合的新的热度分值。
在本公开实施例中,所述功能测试及确定模块,包括:
确定及创建子模块,用于确定与所述目标参数组合对应的目标API地址,并采用所述目标参数组合与对应的所述目标API地址创建对应的所述测试实例;
确定及功能测试子模块,用于确定与所述目标API地址对应的功能用例列表,并按照所述功能用例列表中的各项功能对所述测试实例进行功能测试。
在本公开实施例中,所述装置还包括:
收集及更新模块,用于在进行功能测试的过程中,持续从所述日志数据中收集参数组合,并持续更新各所述参数组合的热度分值;
第二确定模块,用于在对上一轮所述参数组合栈中的所述目标参数组合测试完成之后,根据更新的各所述参数组合的热度分值,确定下一轮放入所述参数组合栈的所述目标参数组合。
在本公开实施例中,所述日志数据为API日志数据,所述获取模块,包括:
确定及扫描子模块,用于确定所述待测试软件的日志库,以API地址作为扫描关键字定时扫描所述日志库,获得对应的所述API日志数据。
在本公开实施例中,所述参数组合存储于参数库中,所述统计及确定模块,包括:
增加子模块,用于若当次扫描获得的参数组合已存在所述参数库中,则将对应的所述参数组合的热度分值增加预设分值;
添加及设定子模块,用于若当次扫描获得的参数组合未存在所述参数库中,则将所述参数组合添加至所述参数组中,并将所述参数组合的热度分值设定为预设初始分值。
在本公开实施例中,所述装置还包括:
记录模块,用于当在功能测试的过程中出现测试问题时,在问题库中记录所述测试问题;
第三确定模块,用于确定所述问题库中各所述测试问题的处理状态;各所述处理状态分别对应预设告警触发条件;
告警模块,用于若所述测试问题的处理状态为预设处理状态,且所述测试问题的属性信息满足所述预设处理状态所对应的预设告警触发条件时,对所述测试问题进行告警处理。
综上,在本公开实施例中,可以获取待测试软件的日志数据,从日志数据中获取创建实例采用的参数组合,可以统计各参数组合的热度分值,并根据热度分值确定可以放入参数组合栈中的目标参数组合,可以采用目标参数组合创建对应的测试实例进行功能测试,并在测试完成之后,重新确定目标参数组合的热度分值,在对参数组合栈中的目标参数组合测试完成之后,可以重新确定下一轮放入参数组合栈的目标参数组合。通过采用上述方法,解决现有技术中对于无穷大的测试集合难于完成测试的问题,在新的软件版本上线后从上线运行的软件中导出日志数据进行继续测试,增大测试可用时间。通过热度分值确定参数组合的测试优先级顺序,从而能够尽早地完成热点类型实例的测试,保证热点类型实例的质量,尽可能地先于用户发现问题,减少问题的发生。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本公开实施例还提供了一种电子设备,如图7所示,包括:处理器701、存储器702及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述一种测试方法实施例的各个过程,且能达到相同的技术效果,例如:
处理器701用于执行存储器702上所存放的计算机程序时,实现如下步骤:
获取待测试软件的日志数据,并从所述日志数据中获取创建实例所采用的参数组合;
统计各所述参数组合的热度分值,并根据各所述参数组合的热度分值确定放入参数组合栈中的目标参数组合;
采用所述目标参数组合创建对应的测试实例进行功能测试,并在测试完成之后,重新确定所述目标参数组合的热度分值;
在对所述参数组合栈中的所述目标参数组合测试完成之后,重新确定下一轮放入所述参数组合栈的所述目标参数组合。
在一种可选的实施方式中,所述重新确定所述目标参数组合的热度分值,包括:
将各所述参数组合的热度分值求和,获得热度总分值;
计算所述目标参数组合的热度分值与所述热度总分值的比值;
将所述目标参数组合的热度分值与所述比值的乘积确定为所述目标参数组合的新的热度分值。
在一种可选的实施方式中,所述采用所述目标参数组合创建对应的测试实例进行功能测试,包括:
确定与所述目标参数组合对应的目标API地址,并采用所述目标参数组合与对应的所述目标API地址创建对应的所述测试实例;
确定与所述目标API地址对应的功能用例列表,并按照所述功能用例列表中的各项功能对所述测试实例进行功能测试。
在一种可选的实施方式中,所述方法还包括:
在进行功能测试的过程中,持续从所述日志数据中收集参数组合,并持续更新各所述参数组合的热度分值;
在对上一轮所述参数组合栈中的所述目标参数组合测试完成之后,根据更新的各所述参数组合的热度分值,确定下一轮放入所述参数组合栈的所述目标参数组合。
在一种可选的实施方式中,所述日志数据为API日志数据,所述获取待测试软件的日志数据,包括:
确定所述待测试软件的日志库,以API地址作为扫描关键字定时扫描所述日志库,获得对应的所述API日志数据。
在一种可选的实施方式中,所述参数组合存储于参数库中,所述统计各所述参数组合的热度分值,包括:
若当次扫描获得的参数组合已存在所述参数库中,则将对应的所述参数组合的热度分值增加预设分值;
若当次扫描获得的参数组合未存在所述参数库中,则将所述参数组合添加至所述参数组中,并将所述参数组合的热度分值设定为预设初始分值。
在一种可选的实施方式中,所述方法还包括:
当在功能测试的过程中出现测试问题时,在问题库中记录所述测试问题;
确定所述问题库中各所述测试问题的处理状态;各所述处理状态分别对应预设告警触发条件;
若所述测试问题的处理状态为预设处理状态,且所述测试问题的属性信息满足所述预设处理状态所对应的预设告警触发条件时,对所述测试问题进行告警处理。
综上,在本公开实施例中,可以获取待测试软件的日志数据,从日志数据中获取创建实例采用的参数组合,可以统计各参数组合的热度分值,并根据热度分值确定可以放入参数组合栈中的目标参数组合,可以采用目标参数组合创建对应的测试实例进行功能测试,并在测试完成之后,重新确定目标参数组合的热度分值,在对参数组合栈中的目标参数组合测试完成之后,可以重新确定下一轮放入参数组合栈的目标参数组合。通过采用上述方法,解决现有技术中对于无穷大的测试集合难于完成测试的问题,在新的软件版本上线后从上线运行的软件中导出日志数据进行继续测试,增大测试可用时间。通过热度分值确定参数组合的测试优先级顺序,从而能够尽早地完成热点类型实例的测试,保证热点类型实例的质量,尽可能地先于用户发现问题,减少问题的发生。
本公开实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现上述一种测试方法实施例的各个过程,且能达到相同的技术效果,例如:
处理器用于执行计算机可读存储介质上所存放的计算机程序时,实现如下步骤:
获取待测试软件的日志数据,并从所述日志数据中获取创建实例所采用的参数组合;
统计各所述参数组合的热度分值,并根据各所述参数组合的热度分值确定放入参数组合栈中的目标参数组合;
采用所述目标参数组合创建对应的测试实例进行功能测试,并在测试完成之后,重新确定所述目标参数组合的热度分值;
在对所述参数组合栈中的所述目标参数组合测试完成之后,重新确定下一轮放入所述参数组合栈的所述目标参数组合。
在一种可选的实施方式中,所述重新确定所述目标参数组合的热度分值,包括:
将各所述参数组合的热度分值求和,获得热度总分值;
计算所述目标参数组合的热度分值与所述热度总分值的比值;
将所述目标参数组合的热度分值与所述比值的乘积确定为所述目标参数组合的新的热度分值。
在一种可选的实施方式中,所述采用所述目标参数组合创建对应的测试实例进行功能测试,包括:
确定与所述目标参数组合对应的目标API地址,并采用所述目标参数组合与对应的所述目标API地址创建对应的所述测试实例;
确定与所述目标API地址对应的功能用例列表,并按照所述功能用例列表中的各项功能对所述测试实例进行功能测试。
在一种可选的实施方式中,所述方法还包括:
在进行功能测试的过程中,持续从所述日志数据中收集参数组合,并持续更新各所述参数组合的热度分值;
在对上一轮所述参数组合栈中的所述目标参数组合测试完成之后,根据更新的各所述参数组合的热度分值,确定下一轮放入所述参数组合栈的所述目标参数组合。
在一种可选的实施方式中,所述日志数据为API日志数据,所述获取待测试软件的日志数据,包括:
确定所述待测试软件的日志库,以API地址作为扫描关键字定时扫描所述日志库,获得对应的所述API日志数据。
在一种可选的实施方式中,所述参数组合存储于参数库中,所述统计各所述参数组合的热度分值,包括:
若当次扫描获得的参数组合已存在所述参数库中,则将对应的所述参数组合的热度分值增加预设分值;
若当次扫描获得的参数组合未存在所述参数库中,则将所述参数组合添加至所述参数组中,并将所述参数组合的热度分值设定为预设初始分值。
在一种可选的实施方式中,所述方法还包括:
当在功能测试的过程中出现测试问题时,在问题库中记录所述测试问题;
确定所述问题库中各所述测试问题的处理状态;各所述处理状态分别对应预设告警触发条件;
若所述测试问题的处理状态为预设处理状态,且所述测试问题的属性信息满足所述预设处理状态所对应的预设告警触发条件时,对所述测试问题进行告警处理。
综上,在本公开实施例中,可以获取待测试软件的日志数据,从日志数据中获取创建实例采用的参数组合,可以统计各参数组合的热度分值,并根据热度分值确定可以放入参数组合栈中的目标参数组合,可以采用目标参数组合创建对应的测试实例进行功能测试,并在测试完成之后,重新确定目标参数组合的热度分值,在对参数组合栈中的目标参数组合测试完成之后,可以重新确定下一轮放入参数组合栈的目标参数组合。通过采用上述方法,解决现有技术中对于无穷大的测试集合难于完成测试的问题,在新的软件版本上线后从上线运行的软件中导出日志数据进行继续测试,增大测试可用时间。通过热度分值确定参数组合的测试优先级顺序,从而能够尽早地完成热点类型实例的测试,保证热点类型实例的质量,尽可能地先于用户发现问题,减少问题的发生。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本公开实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本公开实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本公开实施例是参照根据本公开实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本公开实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本公开实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本公开所提供的一种测试方法、一种测试装置、一种电子设备和一种计算机可读存储介质,进行了详细介绍,本文中应用了具体个例对本公开的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本公开的方法及其核心思想;同时,对于本领域的一般技术人员,依据本公开的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本公开的限制。

Claims (10)

1.一种测试方法,其特征在于,所述方法包括:
获取待测试软件的日志数据,并从所述日志数据中获取创建实例所采用的参数组合;
统计各所述参数组合的热度分值,并根据各所述参数组合的热度分值确定放入参数组合栈中的目标参数组合;
采用所述目标参数组合创建对应的测试实例进行功能测试,并在测试完成之后,重新确定所述目标参数组合的热度分值;
在对所述参数组合栈中的所述目标参数组合测试完成之后,重新确定下一轮放入所述参数组合栈的所述目标参数组合。
2.根据权利要求1所述的方法,其特征在于,所述重新确定所述目标参数组合的热度分值,包括:
将各所述参数组合的热度分值求和,获得热度总分值;
计算所述目标参数组合的热度分值与所述热度总分值的比值;
将所述目标参数组合的热度分值与所述比值的乘积确定为所述目标参数组合的新的热度分值。
3.根据权利要求1所述的方法,其特征在于,所述采用所述目标参数组合创建对应的测试实例进行功能测试,包括:
确定与所述目标参数组合对应的目标API地址,并采用所述目标参数组合与对应的所述目标API地址创建对应的所述测试实例;
确定与所述目标API地址对应的功能用例列表,并按照所述功能用例列表中的各项功能对所述测试实例进行功能测试。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在进行功能测试的过程中,持续从所述日志数据中收集参数组合,并持续更新各所述参数组合的热度分值;
在对上一轮所述参数组合栈中的所述目标参数组合测试完成之后,根据更新的各所述参数组合的热度分值,确定下一轮放入所述参数组合栈的所述目标参数组合。
5.根据权利要求1所述的方法,其特征在于,所述日志数据为API日志数据,所述获取待测试软件的日志数据,包括:
确定所述待测试软件的日志库,以API地址作为扫描关键字定时扫描所述日志库,获得对应的所述API日志数据。
6.根据权利要求5所述的方法,其特征在于,所述参数组合存储于参数库中,所述统计各所述参数组合的热度分值,包括:
若当次扫描获得的参数组合已存在所述参数库中,则将对应的所述参数组合的热度分值增加预设分值;
若当次扫描获得的参数组合未存在所述参数库中,则将所述参数组合添加至所述参数组中,并将所述参数组合的热度分值设定为预设初始分值。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当在功能测试的过程中出现测试问题时,在问题库中记录所述测试问题;
确定所述问题库中各所述测试问题的处理状态;各所述处理状态分别对应预设告警触发条件;
若所述测试问题的处理状态为预设处理状态,且所述测试问题的属性信息满足所述预设处理状态所对应的预设告警触发条件时,对所述测试问题进行告警处理。
8.一种测试装置,其特征在于,所述装置包括:
获取模块,用于获取待测试软件的日志数据,并从所述日志数据中获取创建实例所采用的参数组合;
统计及确定模块,用于统计各所述参数组合的热度分值,并根据各所述参数组合的热度分值确定放入参数组合栈中的目标参数组合;
功能测试及确定模块,用于采用所述目标参数组合创建对应的测试实例进行功能测试,并在测试完成之后,重新确定所述目标参数组合的热度分值;
第一确定模块,用于在对所述参数组合栈中的所述目标参数组合测试完成之后,重新确定下一轮放入所述参数组合栈的所述目标参数组合。
9.一种电子设备,其特征在于,包括:处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1-7中任一项所述一种测试方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述一种测试方法。
CN202310216531.3A 2023-03-02 2023-03-02 一种测试方法、装置、电子设备和可读存储介质 Pending CN116431471A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310216531.3A CN116431471A (zh) 2023-03-02 2023-03-02 一种测试方法、装置、电子设备和可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310216531.3A CN116431471A (zh) 2023-03-02 2023-03-02 一种测试方法、装置、电子设备和可读存储介质

Publications (1)

Publication Number Publication Date
CN116431471A true CN116431471A (zh) 2023-07-14

Family

ID=87093322

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310216531.3A Pending CN116431471A (zh) 2023-03-02 2023-03-02 一种测试方法、装置、电子设备和可读存储介质

Country Status (1)

Country Link
CN (1) CN116431471A (zh)

Similar Documents

Publication Publication Date Title
US8250543B2 (en) Software tracing
US9535946B2 (en) System method, and computer readable media for identifying a user-initiated log file record in a log file
CN110008129B (zh) 一种存储定时快照的可靠性测试方法、装置及设备
US20090265681A1 (en) Ranking and optimizing automated test scripts
CN112214369A (zh) 基于模型融合的硬盘故障预测模型建立方法及其应用
CN111177165B (zh) 数据一致性检测的方法、装置及设备
CN107861876A (zh) 测试方法、装置、计算机设备及可读存储介质
CN107223257B (zh) 测试方法、测试服务器及系统
CN112540887A (zh) 故障演练方法、装置、电子设备及存储介质
CN113342685A (zh) 精准测试方法、装置、计算机设备和存储介质
WO2021008029A1 (zh) 案例执行方法、装置、设备及计算机可读存储介质
JP2018165857A (ja) 分析装置、分析システム、分析方法および分析プログラム
CN111124791A (zh) 一种系统测试方法及装置
CN112052078A (zh) 一种耗时的确定方法和装置
CN111680085A (zh) 数据处理任务分析方法、装置、电子设备和可读存储介质
CN110727602A (zh) 覆盖率数据的处理方法、装置及存储介质
CN114020432A (zh) 任务异常处理方法、装置及任务异常处理系统
CN111435327B (zh) 一种日志记录的处理方法、装置及系统
CN116431471A (zh) 一种测试方法、装置、电子设备和可读存储介质
CN116010244A (zh) 自动化测试方法、装置、电子设备及存储介质
CN106648550B (zh) 用于并发执行任务的方法与设备
US10311032B2 (en) Recording medium, log management method, and log management apparatus
CN111679924B (zh) 构件化软件系统可靠性仿真方法、装置及电子设备
US10437710B2 (en) Code coverage testing utilizing test-to-file maps
CN111176576A (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