CN117312174A - 一种程序错误路径检测方法、装置、设备及可读存储介质 - Google Patents

一种程序错误路径检测方法、装置、设备及可读存储介质 Download PDF

Info

Publication number
CN117312174A
CN117312174A CN202311608564.9A CN202311608564A CN117312174A CN 117312174 A CN117312174 A CN 117312174A CN 202311608564 A CN202311608564 A CN 202311608564A CN 117312174 A CN117312174 A CN 117312174A
Authority
CN
China
Prior art keywords
test
test instruction
instruction execution
execution path
historical
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.)
Granted
Application number
CN202311608564.9A
Other languages
English (en)
Other versions
CN117312174B (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 Metabrain Intelligent Technology Co Ltd
Original Assignee
Suzhou Metabrain 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 Metabrain Intelligent Technology Co Ltd filed Critical Suzhou Metabrain Intelligent Technology Co Ltd
Priority to CN202311608564.9A priority Critical patent/CN117312174B/zh
Publication of CN117312174A publication Critical patent/CN117312174A/zh
Application granted granted Critical
Publication of CN117312174B publication Critical patent/CN117312174B/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/362Software debugging
    • G06F11/3644Software debugging by instrumenting at runtime
    • 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/366Software debugging using diagnostics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • 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/3696Methods or tools to render software testable
    • 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

一种程序错误路径检测方法、装置、设备及可读存储介质
技术领域
本发明涉及自动化测试技术领域,特别是涉及一种程序错误路径检测方法、装置、设备及可读存储介质。
背景技术
现如今,对服务器等设备进行性能测试,逐渐由人工执行转变为自动化执行。自动化测试,即通过代码触发被测设备运行系统或应用,乃至对运行结果进行评估的过程。而在自动化测试过程中,若触发被测设备的系统或应用异常,即出现程序错误(bug)。现有的测试脚本在展示执行结果时,往往只输出执行成功或失败的结果,并在执行失败时打印返回错误信息。此时,测试人员就需要对测试过程进行人工分析,判断造成自动化测试执行失败的原因是测试环境不满足条件还是测试脚本本身不适配的问题,此分析过程非常耗费时间。
如何在自动化测试执行失败时高效定位造成程序错误的原因,是本领域技术人员需要解决的技术问题。
发明内容
本发明的目的是提供一种程序错误路径检测方法、装置、设备及可读存储介质,用于提高分析设备自动化测试执行失败原因的效率,进而提高自动化测试效率。
为解决上述技术问题,本发明提供一种程序错误路径检测方法,包括:
创建用于记录历史程序错误对应的历史测试指令执行路径的历史程序错误库;
在利用测试脚本对被测设备进行测试时,记录已执行测试指令得到当前测试中的测试指令执行路径,并监测所述测试脚本的运行状态和所述被测设备的运行状态;
当监测到异常信息时,将所述测试指令执行路径与所述历史测试指令执行路径进行比对;
若比对结果达到匹配条件,则将所述测试指令执行路径匹配到的所述历史测试指令执行路径对应的所述历史程序错误记为程序错误预测值,并关联记录所述异常信息、所述程序错误预测值和所述测试指令执行路径;
若所述比对结果未达到所述匹配条件,则将所述异常信息记为未知路径异常信息,并关联记录所述未知路径异常信息和所述测试指令执行路径。
在一些实施中,还包括:
若所述异常信息符合中断测试条件,则暂停对所述被测设备的测试以保留测试异常环境;
若所述异常信息不符合所述中断测试条件,则继续执行对所述被测设备的测试。
在一些实施中,所述异常信息符合所述中断测试条件,包括:
满足所述异常信息为所述被测设备在测试过程中生成的转储文件、所述异常信息为预先记载对应有中断测试标识的被测设备异常信息、所述异常信息为预先记载对应有所述中断测试标识的测试脚本校验失败信息中的至少一个条件。
在一些实施中,所述记录已执行测试指令得到当前测试中的测试指令执行路径,包括:
利用第一数据结构记录当前测试脚本中所述已执行测试指令的信息,利用第二数据结构记录上一测试脚本中所述已执行测试指令的信息;
若在执行所述当前测试脚本时未出现符合所述中断测试条件的所述异常信息,则将所述第一数据结构所记录的所述已执行测试指令的信息覆盖所述第二数据结构后,将所述第一数据结构清空,并以下一测试脚本为所述当前测试脚本并进入所述利用第一数据结构记录当前测试脚本中所述已执行测试指令的信息的步骤。
在一些实施中,所述第一数据结构为第一链表,所述第二数据结构为第二链表;
所述若在执行所述当前测试脚本时未出现符合所述中断测试条件的所述异常信息,则将所述第一数据结构所记录的所述已执行测试指令的信息覆盖所述第二数据结构后,将所述第一数据结构清空,并以下一测试脚本为所述当前测试脚本并进入所述利用第一数据结构记录当前测试脚本中所述已执行测试指令的信息的步骤,包括:
若在执行所述当前测试脚本时未出现符合所述中断测试条件的所述异常信息,查看所述第一链表的长度;
若所述第一链表的长度不为空,则确定对所述被测设备的测试未结束,则清空所述第二链表后,将所述第一链表的内容拷贝入所述第二链表,再清空所述第一链表,并以所述下一测试脚本为所述当前测试脚本并利用所述第一链表记录所述当前测试脚本中所述已执行测试指令的信息。
在一些实施中,所述利用第一数据结构记录当前测试脚本中所述已执行测试指令的信息,包括:
基于所述当前测试脚本启动自动化脚本调度进程后,对所述被测设备执行所述当前测试脚本内的测试指令,并在所述测试指令执行完毕后,将所述测试指令作为所述已执行测试指令并将所述已执行测试指令的信息写入所述第一数据结构;
检查所述已执行测试指令的返回结果;
若所述已执行测试指令的返回结果为校验成功,则若未执行完所述当前测试脚本,则对所述当前测试脚本内的下一个所述测试指令进入所述对所述被测设备执行所述当前测试脚本内的测试指令,并在所述测试指令执行完毕后,将所述测试指令作为所述已执行测试指令并将所述已执行测试指令的信息写入所述第一数据结构的步骤;若已执行完所述当前测试脚本,则在所述第一数据结构写入脚本执行成功的信息;
若所述已执行测试指令的返回结果为校验失败,则在所述第一数据结构内写入脚本执行失败的信息。
在一些实施中,所述利用第一数据结构记录当前测试脚本中所述已执行测试指令的信息,包括:
若监测到所述被测设备在测试过程中生成的转储文件,则暂停对所述被测设备的测试,检查所述第一数据结构中的数据;
若所述第一数据结构为空,则确定所述转储文件为在执行上一测试脚本时生成的,将所述第二数据结构覆盖所述第一数据结构后,在所述第一数据结构内写入生成转储文件的报错信息;
若所述第一数据结构不为空,则确定所述转储文件为在执行所述当前测试脚本时生成的,直接在所述第一数据结构内写入所述生成转储文件的报错信息。
在一些实施中,还包括:
创建用于记录设备系统异常信息的系统异常数据库;
当监测到所述异常信息时,若所述异常信息为被测设备异常信息,则将所述被测设备异常信息与所述系统异常数据库中的所述系统异常信息进行比对;
若匹配到目标系统异常信息,则获取并记录所述目标系统异常信息的异常说明信息。
在一些实施中,所述异常说明信息的类型包括:故障码、故障所属模块、故障解释说明、故障风险等级和中断测试标识。
在一些实施中,所述创建用于记录历史程序错误对应的历史测试指令执行路径的历史程序错误库,包括:
创建用于记录测试指令与测试指令编码的对应关系的路径指令集以及用于记录与所述历史程序错误对应的历史测试指令执行路径编码的程序错误路径集链路编码库;
以所述路径指令集和所述程序错误路径集链路编码库为所述历史程序错误库。
在一些实施中,所述将所述测试指令执行路径与所述历史测试指令执行路径进行比对,包括:
根据所述路径指令集对所述测试指令执行路径进行编码,得到测试指令执行路径编码;
按编码顺序,为所述测试指令执行路径编码中的编码匹配所述历史测试指令执行路径编码中的编码,输出与所述测试指令执行路径编码匹配度最高的所述历史测试指令执行路径编码为目标历史测试指令执行路径编码;
所述比对结果达到所述匹配条件,包括:
所述目标历史测试指令执行路径编码与所述测试指令执行路径编码的匹配度达到所述匹配条件。
在一些实施中,所述根据所述路径指令集对所述测试指令执行路径进行编码,得到测试指令执行路径编码,包括:
对所述测试指令执行路径中的各所述测试指令提取关键要素,并根据所述路径指令集对提取后的所述测试指令执行路径进行编码,得到所述测试指令执行路径编码。
在一些实施中,所述根据所述路径指令集对所述测试指令执行路径进行编码,得到测试指令执行路径编码,包括:
对所述测试指令执行路径中的各所述测试指令提取关键要素,并对所述关键要素匹配对应的测试指令集;
根据所述路径指令集对各所述测试指令集进行编码,得到每个节点均对应一个多选编码集的所述测试指令执行路径编码。
在一些实施中,所述输出与所述测试指令执行路径编码匹配度最高的所述历史测试指令执行路径编码为目标历史测试指令执行路径编码,包括:
以匹配到的编码节点上匹配的指令步骤数据量之和为匹配度参数,计算得到与所述测试指令执行路径编码匹配度参数最大的所述历史测试指令执行路径编码为所述目标历史测试指令执行路径编码并输出。
在另一些实施中,所述输出与所述测试指令执行路径编码匹配度最高的所述历史测试指令执行路径编码为目标历史测试指令执行路径编码,包括:
按对应的测试指令的权重对匹配到的编码节点上匹配的指令步骤数据量进行加权求和为匹配度参数,计算得到与所述测试指令执行路径编码匹配度参数最大的所述历史测试指令执行路径编码为所述目标历史测试指令执行路径编码并输出。
在一些实施中,所述按编码顺序,为所述测试指令执行路径编码中的编码匹配所述历史测试指令执行路径编码中的编码,输出与所述测试指令执行路径编码匹配度最高的所述历史测试指令执行路径编码为目标历史测试指令执行路径编码,包括:
采用冒泡法逐编码节点比对所述历史测试指令执行路径编码中的编码和所述测试指令执行路径编码中的编码,得到并输出与所述测试指令执行路径编码匹配度最高的所述目标历史测试指令执行路径编码。
在一些实施中,所述将所述测试指令执行路径与所述历史测试指令执行路径进行比对,包括:
按执行顺序,对所述测试指令执行路径中的测试指令提取测试指令关键字,并将所述测试指令执行路径各节点的所述测试指令关键字与所述历史测试指令执行路径中的所述测试指令比对。
在一些实施中,所述按执行顺序,对所述测试指令执行路径中的测试指令提取测试指令关键字,并将所述测试指令执行路径各节点的所述测试指令关键字与所述历史测试指令执行路径中的所述测试指令比对,包括:
按执行顺序,对所述测试指令执行路径中的所述测试指令关键字均匹配得到多选指令集;
采用冒泡法逐节点比对所述历史测试指令执行路径中的历史测试指令和所述测试指令执行路径各节点的所述多选指令集,输出与所述测试指令执行路径匹配度最高的所述历史测试指令执行路径为目标历史测试指令执行路径。
在一些实施中,还包括:
若比对结果达到所述匹配条件,将所述测试指令执行路径更新至所述历史程序错误库中与对应的所述历史程序错误进行关联存储。
在一些实施中,还包括:
若所述比对结果未达到所述匹配条件,则将所述未知路径异常信息和所述测试指令执行路径记录至人工分析表以等待人工分析后,根据输入的人工分析结果更新所述历史程序错误库。
为解决上述技术问题,本发明还提供一种程序错误路径检测装置,包括:
第一建库单元,用于创建用于记录历史程序错误对应的历史测试指令执行路径的历史程序错误库;
跟踪单元,用于在利用测试脚本对被测设备进行测试时,记录已执行测试指令得到当前测试中的测试指令执行路径,并监测所述测试脚本的运行状态和所述被测设备的运行状态;
第一比对单元,用于当监测到异常信息时,将所述测试指令执行路径与所述历史测试指令执行路径进行比对;
记录单元,用于若比对结果达到匹配条件,则将所述测试指令执行路径匹配到的所述历史测试指令执行路径对应的所述历史程序错误记为程序错误预测值,并关联记录所述异常信息、所述程序错误预测值和所述测试指令执行路径;若所述比对结果未达到所述匹配条件,则将所述异常信息记为未知路径异常信息,并关联记录所述未知路径异常信息和所述测试指令执行路径。
为解决上述技术问题,本发明还提供一种程序错误路径检测设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序,所述计算机程序被所述处理器执行时实现如上述任意一项所述程序错误路径检测方法的步骤。
为解决上述技术问题,本发明还提供一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任意一项所述程序错误路径检测方法的步骤。
本发明所提供的程序错误路径检测方法,通过创建用于记录历史程序错误对应的历史测试指令执行路径的历史程序错误库,并在利用测试脚本对被测设备进行测试时,记录已执行测试指令得到当前测试中的测试指令执行路径,并监测测试脚本的运行状态和被测设备的运行状态,在监测到异常信息时,将测试指令执行路径与历史测试指令执行路径进行比对,以匹配历史测试指令执行路径对应的历史程序错误记为程序错误预测值,若匹配到则既能预测程序错误又能为程序错误的产生原因提供依据,若无法匹配到则关联记录路径等待分析,也为分析自动化测试执行异常提供依据,实现了测试脚本侧的跟踪方案,加快分析出因测试脚本造成的程序错误以提高分析设备自动化测试执行失败原因的效率,进而提高了自动化测试效率。
本发明所提供的程序错误路径检测方法,还通过当符合终端测试条件的异常信息出现时,暂停对被测设备的测试并保留测试异常环境,以便测试人员分析程序错误的产生路径。
本发明所提供的程序错误路径检测方法,还通过设置第一数据结构跟踪当前测试脚本的测试指令,设置第二数据结构保存上一测试脚本的测试指令,从而解决由转储文件生成时间较长,若在两个测试脚本执行之间生成了转储文件而无法确定是在执行哪个测试脚本时生成的转储文件的问题。
本发明所提供的程序错误路径检测方法,还通过创建用于记录设备系统异常信息的系统异常数据库,以在测试过程中出现异常信息时匹配异常说明信息并记录,以方便测试人员的分析。
本发明所提供的程序错误路径检测方法,还通过以编码形式存储历史测试指令执行路径以及以编码形式比对测试指令执行路径和历史测试指令执行路径,从而提高路径匹配效率。
本发明所提供的程序错误路径检测方法,还通过在比对编码形式比对测试指令执行路径和历史测试指令执行路径时先提取关键要素或提取测试指令关键字,并还通过在测试指令执行路径每个节点生成对应的多选编码集或多选指令集,从而增加匹配到历史测试指令执行路径的概率。
本发明还通过一种程序错误路径检测装置、设备及可读存储介质,具有上述有益效果,在此不再赘述。
附图说明
为了更清楚的说明本发明实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种程序错误路径检测系统的架构图;
图2为本发明实施例提供的一种程序错误路径检测方法的流程图;
图3为本发明实施例提供的另一种程序错误路径检测方法的流程图;
图4为本发明实施例提供的一种程序错误路径检测装置的结构示意图;
图5为本发明实施例提供的一种程序错误路径检测设备的结构示意图。
具体实施方式
本发明的核心是提供一种程序错误路径检测方法、装置、设备及可读存储介质,用于提高分析设备自动化测试执行失败原因的效率,进而提高自动化测试效率。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面对本发明实施例一进行说明。
图1为本发明实施例提供的一种程序错误路径检测系统的架构图。
为便于理解,首先对本发明适用的系统架构进行介绍。
本发明实施例提供的程序错误路径检测方案可以基于测试主机实现,即通过在测试主机上分别部署用于对被测设备进行自动化测试的测试脚本以及用于对测试脚本进行跟踪的程序错误路径检测脚本,以分别实现对被测设备的自动化测试以及在测试过程中进行测试脚本执行过程的跟踪。
或者,如图1所示,本发明实施例提供的程序错误路径检测方案还可以基于测试主机101之外的一台(本发明实施例中定义为)跟踪主机102实现,该跟踪主机102分别与测试主机101和被测设备103建立通信连接,以监控测试脚本在被测设备103上的执行过程以及被测设备103在自动化测试过程中产生的异常信息,以及从被测设备103和测试主机101上读取其他异常信息(如测试脚本执行失败的信息),进行跟踪记录以及匹配分析。
在上述架构的基础上,下面结合附图对本发明实施例提供的程序错误路径检测方法进行说明。
下面对本发明实施例二进行说明。
图2为本发明实施例提供的一种程序错误路径检测方法的流程图。
如图2所示,本发明实施例提供的程序错误路径检测方法包括:
S201:创建用于记录历史程序错误对应的历史测试指令执行路径的历史程序错误库。
S202:在利用测试脚本对被测设备进行测试时,记录已执行测试指令得到当前测试中的测试指令执行路径,并监测测试脚本的运行状态和被测设备的运行状态。
S203:当监测到异常信息时,将测试指令执行路径与历史测试指令执行路径进行比对。
S204:若比对结果达到匹配条件,则将测试指令执行路径匹配到的历史测试指令执行路径对应的历史程序错误记为程序错误预测值,并关联记录异常信息、程序错误预测值和测试指令执行路径。
S205:若比对结果未达到匹配条件,则将异常信息记为未知路径异常信息,并关联记录未知路径异常信息和测试指令执行路径。
在具体实施中,本发明实施例提供的程序错误路径检测方法的应用场景可以包括:应用测试脚本对被测设备执行自动化测试的过程中,在测试脚本执行出现程序错误,测试人员重新执行测试脚本以分析程序错误产生路径的过程中。如本发明实施例一介绍的,本发明实施例提供的程序错误路径检测方法既可以应用于测试主机,也可以应用于测试主机之外的跟踪主机,跟踪主机通过与测试主机和被测设备分别建立通信连接以跟踪自动化测试过程。
对于S201,由于在传统自动化测试过程中缺少测试脚本侧的跟踪方案,无法从自动化测试中获取历史程序错误对应的历史测试指令执行路径,但可以从传统的人工测试中获取人工记录下的历史程序错误对应的历史测试指令执行路径,以此创建用于记录历史程序错误对应的历史测试指令执行路径的历史程序错误库。在应用本发明实施例提供的程序错误路径检测方法进行程序错误路径跟踪后,可以利用将测试指令执行路径匹配到历史程序错误的方式以及人工分析添加测试指令执行路径与新的程序错误的匹配关系以及新的测试指令执行路径与历史程序错误的匹配关系的方式更新历史程序错误库。
由于传统的自动化测试中缺少测试脚本侧的跟踪方案,测试脚本只能输出执行成功的结果或执行失败的结果,在测试脚本输出执行失败的结果时,测试人员只能通过从被测设备中读取日志信息的方式进行测试脚本执行失败的原因的分析,但被测设备的日志信息中不仅记载了被测设备执行测试指令的过程,也记载了被测设备的其他很多信息,大量的繁杂信息混在一起,难以分析程序错误产生的路径。
则对于S202,本发明实施例提供的程序错误路径检测方法在利用测试脚本对被测设备进行测试的过程中,记录已执行测试指令得到当前测试中的测试指令执行路径,并监测测试脚本的运行状态和被测设备的运行状态。
由于在一次对被测设备的自动化测试中可能会执行多个测试脚本,则记录的测试指令执行路径可以不为整个测试过程中所有已执行测试指令,如可以仅记载当前测试脚本的已执行测试指令,并在进入下一测试脚本时以新的已执行测试指令覆盖。或可以仅记载当前测试脚本及此前的有限数量测试脚本,以保证对一段连续时间内的测试脚本执行过程的跟踪,直至出现异常信息。若未监测到异常信息,则按照原本的自动化测试的流程继续执行测试脚本。
测试脚本的执行状态包括执行测试脚本中的每个测试指令为执行成功还是执行失败的信息,当测试脚本中的某个测试指令执行失败时,即为测试脚本出现的异常信息。则监测测试脚本的运行状态,可以包括:若测试脚本部署于测试主机,则在测试主机部署测试脚本监听程序,在测试主机运行测试脚本监听程序以监听测试主机执行测试脚本的测试指令执行后的返回结果(校验成功或校验失败);若测试脚本部署于被测设备,则在被测设备部署测试脚本监听程序,在被测设备运行测试脚本监听程序以监听被测设备执行测试脚本的测试指令执行后的返回结果(校验成功或校验失败)。
被测设备的运行状态则可以以被测设备在自动化测试中产生的日志进行反映。根据被测设备部署的日志生成机制,被测设备会对自身运行状态进行日常记录以及在出现设备异常时进行记录。则监测被测设备的运行状态,可以包括:在被测设备部署日志监控程序;在被测设备运行日志监控程序以读取被测设备在开始测试后生成的被测设备异常信息。其中,需监测的被测设备的异常日志类型可以包括转储文件(dump文件),事件日志(eventlog)和系统日志(syslog)中的告警日志或异常日志等。日志监控程序启动后清理被测设备中已有的转储文件和其他日志,并每间隔固定周期(如2秒)读取一次被测设备是否有新的转储文件或其他日志生成。如果产生了转储文件或监测到已备案是故障的error告警信息,则标志着系统出现了异常,运行日志监控程序远程登录管理节点,向pid号任务进程发送暂停信号,同时日志监控程序在等待转储文件刷新完毕,通过whydump读取文件中的报错信息点。将转储文件存储到其他目录下,并将读取到的报错信息内容回传。
对于S203,当监测到异常信息时,调取S202中跟踪记录的已执行测试指令形成的测试指令执行路径,将测试指令执行路径与历史程序错误库中的历史测试指令执行路径进行比对与匹配。异常信息可以为测试脚本的返回结果为校验失败,或被测设备输出报错信息,如在被测设备上输出报错日志、告警日志、错误码等。
在监测到异常信息后,可以暂停对被测设备的测试以保留测试异常环境,等待测试人员进行人工分析,避免破坏异常信息产生时的环境导致线索丢失。但对于一些不影响被测设备运行的异常信息,可以不针对其中断测试,避免频繁中断测试造成自动化测试效率低下。则本发明实施例提供的程序错误路径检测方法还可以包括:若异常信息符合中断测试条件,则暂停对被测设备的测试以保留测试异常环境;若异常信息不符合中断测试条件,则继续执行对被测设备的测试。可以通过预先为不同类型的异常信息配置中断测试标识,以在跟踪测试脚本的执行过程中出现异常信息时确定是否需要中断对被测设备的测试。或者,可以划分需要中断测试的异常信息的类别,例如异常信息符合中断测试条件,可以包括:满足异常信息为被测设备在测试过程中生成的转储文件、异常信息为预先记载对应有中断测试标识的被测设备异常信息、异常信息为预先记载对应有中断测试标识的测试脚本校验失败信息中的至少一个条件。即是说,如果被测设备在自动化测试过程中生成了转储文件,说明被测设备出现重大异常,此时需要暂停对被测设备的测试。而对于非转储文件的异常信息,不论是被测设备异常信息还是测试脚本校验失败信息,均可以通过预先为具体异常信息类别标记中断测试标识的方式来区别处理。
此外,为进一步提高当设备自动化测试时出现异常信息时的解决效率,本发明实施例提供的程序错误路径检测方法还可以包括:创建用于记录设备系统异常信息的系统异常数据库;当监测到异常信息时,若异常信息为被测设备异常信息,则将被测设备异常信息与系统异常数据库中的系统异常信息进行比对;若匹配到目标系统异常信息,则获取并记录目标系统异常信息的异常说明信息。其中,异常说明信息的类型可以包括:故障码、故障所属模块、故障解释说明、故障风险等级(error,waring)和中断测试标识。可以通过被测设备的生产信息、收集被测设备的历史运行信息以及运维信息的方式得到被测设备可能会产生的异常信息对应的异常说明信息。通过创建用于记录设备系统异常信息的系统异常数据库,以在测试过程中出现异常信息时匹配异常说明信息并记录,以方便测试人员的分析。
对于S204,若匹配到与测试指令执行路径相似度较高的历史测试指令执行路径,即二者具有较多相同的测试指令且执行顺序一致,则认为比对结果达到匹配条件,为测试指令执行路径匹配到了历史测试指令执行路径,即匹配到了历史程序错误,记为程序错误预测值。关联记录异常信息、程序错误预测值和测试指令执行路径,输出测试脚本分析日志。
对于匹配到历史测试指令执行路径的测试指令执行路径,可以用于更新历史程序错误库。则本发明实施例提供的程序错误路径检测方法还可以包括:若比对结果达到匹配条件,将测试指令执行路径更新至历史程序错误库中与对应的历史程序错误进行关联存储。
匹配历史测试指令执行路径的方式,可以为找到一个相似度最高的历史测试指令执行路径查看是否达到相似度阈值(如70%),也可以为按照相似度阈值匹配到几个历史测试指令执行路径均记为匹配的历史测试指令执行路径并关联对应的历史程序错误。
对于S205,若未匹配到与测试指令执行路径相同或相近的历史测试指令执行路径,即无法确定继续执行测试脚本会出现怎样的程序错误,则先将异常信息记为未知路径异常信息,并关联记录未知路径异常信息和测试指令执行路径,输出测试脚本分析日志。
对于未匹配到历史测试指令执行路径的测试指令执行路径,也可以用于更新历史程序错误库。则本发明实施例提供的程序错误路径检测方法还可以包括:若比对未达到匹配条件,则将未知路径异常信息和测试指令执行路径记录至人工分析表以等待人工分析后,根据输入的人工分析结果更新历史程序错误库。
如上文介绍的,若异常信息不为需中断测试的异常信息,则继续进行对被测设备的测试,若再次出现异常信息,则进入S203,直至完成所有测试脚本的测试或出现需要中断测试的异常信息。
本发明实施例提供的程序错误路径检测方法,通过创建用于记录历史程序错误对应的历史测试指令执行路径的历史程序错误库,并在利用测试脚本对被测设备进行测试时,记录已执行测试指令得到当前测试中的测试指令执行路径,并监测测试脚本的运行状态和被测设备的运行状态,在监测到异常信息时,将测试指令执行路径与历史测试指令执行路径进行比对,以匹配历史测试指令执行路径对应的历史程序错误记为程序错误预测值,若匹配到则既能预测程序错误又能为程序错误的产生原因提供依据,若无法匹配到则关联记录路径等待分析,也为分析自动化测试执行异常提供依据,实现了测试脚本侧的跟踪方案,加快分析出因测试脚本造成的程序错误以提高分析设备自动化测试执行失败原因的效率,进而提高了自动化测试效率。
下面对本发明实施例三进行说明。
在上述实施例的基础上,本发明实施例进一步对跟踪记录测试指令执行路径的方法进行说明。
在本发明实施例提供的程序错误路径检测方法中,S202中记录已执行测试指令得到当前测试中的测试指令执行路径,可以包括:利用第一数据结构记录当前测试脚本中已执行测试指令的信息,利用第二数据结构记录上一测试脚本中已执行测试指令的信息;若在执行当前测试脚本时未出现符合中断测试条件的异常信息,则将第一数据结构所记录的已执行测试指令的信息覆盖第二数据结构后,将第一数据结构清空,并以下一测试脚本为当前测试脚本并进入利用第一数据结构记录当前测试脚本中已执行测试指令的信息的步骤。
在上述实施例中介绍了,测试指令执行路径可以仅记载当前测试脚本的已执行测试指令,并在进入下一测试脚本时以新的已执行测试指令覆盖,也可以仅记载当前测试脚本及此前的有限数量测试脚本,以保证对一段连续时间内的测试脚本执行过程的跟踪,直至出现异常信息。在实际应用中,由于被测设备生成转储文件需要较长时间(通常为5分钟左右),这是远远超出两个测试脚本之间的间隔时间的,即如果在上一测试脚本执行末尾触发了被测设备的测试环境的异常,此时大概需要5分钟左右的时间生成转储文件,而自动化测试进程已经开始执行当前测试脚本了,此时虽然监测到了转储文件,但无法知晓转储文件是在执行哪个测试脚本时生成的。
故在本发明实施例中,采用两个数据结构来跟踪测试脚本的执行过程,两个数据结构采用相同结构。第一数据结构用于实时跟踪当前测试脚本的执行过程,第二数据结构则用于保存上一测试脚本的执行过程,并在确保当前测试脚本执行完毕且未出现异常信息时再覆盖上一测试脚本。
具体地,利用第一数据结构记录当前测试脚本中已执行测试指令的信息,可以包括:基于当前测试脚本启动自动化脚本调度进程后,对被测设备执行当前测试脚本内的测试指令,并在测试指令执行完毕后,将测试指令作为已执行测试指令并将已执行测试指令的信息写入第一数据结构;检查已执行测试指令的返回结果;若已执行测试指令的返回结果为校验成功,则若未执行完当前测试脚本,则对当前测试脚本内的下一个测试指令进入对被测设备执行当前测试脚本内的测试指令,并在测试指令执行完毕后,将测试指令作为已执行测试指令并将已执行测试指令的信息写入第一数据结构的步骤;若已执行完当前测试脚本,则在第一数据结构写入脚本执行成功的信息;若已执行测试指令的返回结果为校验失败,则在第一数据结构内写入脚本执行失败的信息。
即是说,利用第一数据结构实时跟踪当前测试脚本的执行过程中,依次监测各测试指令的返回结果,若返回结果为校验成功则作为已执行测试指令记录入第一数据结构,若返回结果为校验失败则作为异常信息,并在第一数据结构内写入脚本执行失败的信息。若当前测试指令返回结果为校验成功则继续进行下一测试指令,结合本发明实施例二的说明,若校验失败未对应有中断测试标识,也继续执行下一测试指令,直至完成当前测试脚本。
此外,对于设备异常信息中出现转储文件这一特殊的异常信息,利用第一数据结构记录当前测试脚本中已执行测试指令的信息,还可以包括:若监测到被测设备在测试过程中生成的转储文件,则暂停对被测设备的测试,检查第一数据结构中的数据;若第一数据结构为空,则确定转储文件为在执行上一测试脚本时生成的,将第二数据结构覆盖第一数据结构后,在第一数据结构内写入生成转储文件的报错信息;若第一数据结构不为空,则确定转储文件为在执行当前测试脚本时生成的,直接在第一数据结构内写入生成转储文件的报错信息。即是说,通过设置两个数据结构分别跟踪当前测试脚本和保存上一测试脚本的已执行测试指令,由于单个测试脚本的执行时间超出转储文件的执行时间,故可以在被测设备生成转储文件时,根据当前第一数据结构的状态来确定转储文件生成的时段,精准定位异常原因。
考虑到采用第一数据结构和第二数据结构记录的测试指令为按时间顺序顺次执行的测试指令,第一数据结构和第二数据结构可以采用链表结构。则在本发明实施例中,第一数据结构可以为第一链表,第二数据结构可以为第二链表。若在执行当前测试脚本时未出现符合中断测试条件的异常信息,则将第一数据结构所记录的已执行测试指令的信息覆盖第二数据结构后,将第一数据结构清空,并以下一测试脚本为当前测试脚本并进入利用第一数据结构记录当前测试脚本中已执行测试指令的信息的步骤,可以包括:若在执行当前测试脚本时未出现符合中断测试条件的异常信息,查看第一链表的长度;若第一链表的长度不为空,则确定对被测设备的测试未结束,则清空第二链表后,将第一链表的内容拷贝入第二链表,再清空第一链表,并以下一测试脚本为当前测试脚本并利用第一链表记录当前测试脚本中已执行测试指令的信息。
在第一链表和第二链表中,可以以{指令1,指令2,……,异常信息/返回结果}的形式跟踪记录测试脚本的执行过程。其中,指令1,指令2,……为对应测试脚本中的测试指令,异常信息为监测到异常信息时可以记录入数据结构作为跟踪状态之一,返回结果为校验成功时可以对应脚本执行成功的信息,返回结果为校验失败时可以对应脚本执行失败的信息。
下面对本发明实施例四进行说明。
在上述实施例的基础上,本发明实施例进一步对匹配历史测试指令执行路径的方法进行说明。
在本发明实施例提供的程序错误路径检测方法中,S201中创建用于记录历史程序错误对应的历史测试指令执行路径的历史程序错误库,可以包括:创建用于记录测试指令与测试指令编码的对应关系的路径指令集以及用于记录与历史程序错误对应的历史测试指令执行路径编码的程序错误路径集链路编码库;以路径指令集和程序错误路径集链路编码库为历史程序错误库。
由于测试指令的描述数据较为冗长,若直接基于原始测试指令进行比对则耗费大量时间和资源,故本发明实施例通过预先建立路径指令集以记录测试指令与测试指令编码的对应关系,在存储历史测试指令执行路径时参照路径指令集对历史测试指令执行路径中的历史测试指令进行编码,得到历史测试指令执行路径编码,在历史程序错误库中奖历史测试指令执行路径以编码的形式存储,便于存储和检索。
基于此,S203中将测试指令执行路径与历史测试指令执行路径进行比对,可以包括:根据路径指令集对测试指令执行路径进行编码,得到测试指令执行路径编码;按编码顺序,为测试指令执行路径编码中的编码匹配历史测试指令执行路径编码中的编码,输出与测试指令执行路径编码匹配度最高的历史测试指令执行路径编码为目标历史测试指令执行路径编码;S204中比对结果达到匹配条件,包括:目标历史测试指令执行路径编码与测试指令执行路径编码的匹配度达到匹配条件。
在监测到异常信息时,依照路径指令集对测试指令执行路径中的测试指令进行编码,得到测试指令执行路径编码,再将测试指令执行路径编码与历史测试指令执行路径编码进行比对,以加快比对速度。
为进一步提高比对效率,根据路径指令集对测试指令执行路径进行编码,得到测试指令执行路径编码,可以包括:对测试指令执行路径中的各测试指令提取关键要素,并根据路径指令集对提取后的测试指令执行路径进行编码,得到测试指令执行路径编码。测试指令的形式通常包括:命令、参数名以及个别参数值,若不进行提取则逐层匹配需匹配命令→相同参数(必选)→相似参数值(可选),例如创建磁盘阵列(RAID):“mkarray–drive 3–level raid5”,其中,“mkarray”是命令,“-drive–level”是参数,“raid5”是需要判断的关键参数值,“3”是盘的数量不作为匹配依据。即由于通常磁盘阵列包括几块磁盘不会影响程序错误的产生,故可以剔除该因素,而保留“raid5”为关键要素。通过在编码时提取关键要素进行编码,剔除不影响程序错误的因素,可以更容易匹配到历史测试指令执行路径,进而匹配到历史程序错误。
可以理解的是,当对测试指令执行路径提取了关键要素后,剩下的测试指令可能会对应多个相同或相似的指令。则根据路径指令集对测试指令执行路径进行编码,得到测试指令执行路径编码,还包括:对测试指令执行路径中的各测试指令提取关键要素,并对关键要素匹配对应的测试指令集;根据路径指令集对各测试指令集进行编码,得到每个节点均对应一个多选编码集的测试指令执行路径编码。即是说,利用提取关键要素的测试指令进行编码时,可能会在路径指令集中匹配到多个测试指令的编码,即对于测试指令执行路径的每个测试指令的节点可以匹配到多个测试指令的编码,形成多选编码集。在这种情况下,在利用测试指令执行路径编码与历史测试指令执行路径编码进行比对时,可能会出现多个与测试指令执行路径编码匹配的节点个数相同的历史测试指令执行路径编码,则输出与测试指令执行路径编码匹配度最高的历史测试指令执行路径编码为目标历史测试指令执行路径编码,可以包括:以匹配到的编码节点上匹配的指令步骤数据量之和为匹配度参数,计算得到与测试指令执行路径编码匹配度参数最大的历史测试指令执行路径编码为目标历史测试指令执行路径编码并输出。即不仅仅以匹配到多少个相同节点作为匹配度,而以匹配到的编码节点上匹配的指令步骤数据量之和为匹配度参数,计算得到匹配的测试指令数据量最大的历史测试指令执行路径编码为目标历史测试指令执行路径编码。
此外,按编码顺序,为测试指令执行路径编码中的编码匹配历史测试指令执行路径编码中的编码,输出与测试指令执行路径编码匹配度最高的历史测试指令执行路径编码为目标历史测试指令执行路径编码,可以包括:采用冒泡法逐编码节点比对历史测试指令执行路径编码中的编码和测试指令执行路径编码中的编码,得到并输出与测试指令执行路径编码匹配度最高的目标历史测试指令执行路径编码。
本发明实施例提供的程序错误路径检测方法,还通过以编码形式存储历史测试指令执行路径以及以编码形式比对测试指令执行路径和历史测试指令执行路径,从而提高路径匹配效率。且通过在比对编码形式比对测试指令执行路径和历史测试指令执行路径时先提取关键要素,在测试指令执行路径每个节点生成对应的多选编码集,从而提高比对效率并增加匹配到历史测试指令执行路径的概率。
下面对本发明实施例五进行说明。
在上述实施例的基础上,本发明实施例进一步对另一种匹配历史测试指令执行路径的方法进行说明。
在本发明实施例提供的程序错误路径检测方法中,S203中将测试指令执行路径与历史测试指令执行路径进行比对,可以包括:按执行顺序,对测试指令执行路径中的测试指令提取测试指令关键字,并将测试指令执行路径各节点的测试指令关键字与历史测试指令执行路径中的测试指令比对。
在本发明实施例中,为提高比对效率,在测试指令执行路径中提取测试指令关键字,剔除不影响程序错误产生的无关因素,利用测试指令执行路径各节点的测试指令关键字与历史测试指令执行路径中的测试指令比对,提取原理可以参考本发明实施例四的说明。
进一步的,按执行顺序,对测试指令执行路径中的测试指令提取测试指令关键字,并将测试指令执行路径各节点的测试指令关键字与历史测试指令执行路径中的测试指令比对,可以包括:按执行顺序,对测试指令执行路径中的测试指令关键字均匹配得到多选指令集;采用冒泡法逐节点比对历史测试指令执行路径中的历史测试指令和测试指令执行路径各节点的多选指令集,输出与测试指令执行路径匹配度最高的历史测试指令执行路径为目标历史测试指令执行路径。
即是说,在提取了测试指令关键字后,可以为测试指令关键字匹配到多个相同或相似的测试指令,从而在测试指令执行路径的每个节点上可以得到多个对应的测试指令,即多选指令集。在这种情况下,在利用测试指令执行路径与历史测试指令执行路径进行比对时,可能会出现多个与测试指令执行路径匹配的节点个数相同的历史测试指令执行路径,则输出与测试指令执行路径编码匹配度最高的历史测试指令执行路径编码为目标历史测试指令执行路径编码,可以包括:以匹配到的编码节点上匹配的指令步骤数据量之和为匹配度参数,计算得到与测试指令执行路径编码匹配度参数最大的历史测试指令执行路径编码为目标历史测试指令执行路径编码并输出。即不仅仅以匹配到多少个相同节点作为匹配度,而以匹配到的节点上匹配的指令步骤数据量之和为匹配度参数,计算得到匹配的测试指令数据量最大的历史测试指令执行路径为目标历史测试指令执行路径。在匹配时,采用冒泡法将测试指令执行路径的各节点的多选指令集与历史测试指令执行路径进行逐节点比对。
或者,输出与测试指令执行路径编码匹配度最高的历史测试指令执行路径编码为目标历史测试指令执行路径编码,还可以包括:按对应的测试指令的权重对匹配到的编码节点上匹配的指令步骤数据量进行加权求和为匹配度参数,计算得到与测试指令执行路径编码匹配度参数最大的历史测试指令执行路径编码为目标历史测试指令执行路径编码并输出。即是说,可以通过为不同的测试指令分配权重,以标识该测试指令在导致设备自动化测试中产生程序错误问题上的影响程度,对于对程序错误影响较大的测试指令赋予更高的阈值。测试指令的权重可以预先存储在路径指令集中,在为测试指令执行路径编码的编码节点匹配到历史测试指令执行路径编码的编码节点时,自路径指令集查询得到该编码节点匹配的测试指令对应的权重,并根据测试指令的权重对匹配到的编码节点上匹配的指令步骤数据量进行加权求和,得到匹配度参数,由此计算得到与测试指令执行路径编码匹配度参数最大的历史测试指令执行路径编码为目标历史测试指令执行路径编码,以增加匹配到的目标历史测试指令执行路径编码后测试指令执行路径编码与历史程序错误的关联度。
本发明实施例提供的程序错误路径检测方法,通过在测试指令执行路径提取测试指令关键字,并通过在测试指令执行路径每个节点生成对应的多选指令集,从而提高比对效率并增加匹配到历史测试指令执行路径的概率。
下面对本发明实施例六进行说明。
图3为本发明实施例提供的另一种程序错误路径检测方法的流程图。
如图3所示,本发明实施例提供的程序错误路径检测方法包括:
S301:创建历史程序错误库和系统异常数据库。
其中,历史程序错误库包括用于记录测试指令与测试指令编码的对应关系的路径指令集以及用于记录与所述历史程序错误对应的历史测试指令执行路径编码的程序错误路径集链路编码库。路径指令集中的测试指令的信息可以包括:ID(即编码)、名称(创建池/创建普通卷/创建精简卷等)、命令行。程序错误路径集链路编码库为根据路径指令集查找到历史测试指令的编码,生成编码形式的历史测试指令执行路径,形式可以为:项目,bugid{步骤1:id,步骤2:id…}。
系统异常数据库用于记录设备系统异常信息,设备系统异常信息包括设备异常信息的名称以及设备异常信息对应的异常说明信息,异常说明信息的类型可以包括:故障码、故障所属模块、故障解释说明、故障风险等级(error,waring)和中断测试标识等。
S302:构建第一链表和第二链表,分别进入S303和S308。
参考本发明实施例三的说明,第一链表、第二链表的内容可以包括:{指令1,指令2,……,异常信息/返回结果}。第一链表用于存储当前测试脚本的已执行测试指令,第二链表用于存储上一测试脚本的已执行测试指令。
S303:在被测设备启动日志监控程序。
S304:在被测设备清空所有日志。
S305:运行日志监控程序在被测设备每间隔固定周期读取日志。
S306:在被测设备上监测到转储文件或其他异常日志,分别进入S307和S314。
S307:向测试主机发送中断测试指令。
执行自动化测试任务启动后,远程登录测试主机,将日志监控程序上传到测试主机根目录下,异步启动日志监控进程,并传入调度任务pid进程号和下发日志监控进程的管理设备ip信息。日志监控程启动后会清理被测设备的转储文件和其他日志,然后每间隔2秒检测一次是否有新的转储文件或者eventlog,syslog是否有新的告警/异常日志信息生成。如果产生了转储文件或者检测到已备案是故障的error告警信息,则标志着系统出现了异常,日志进程远程登录管理节点,向pid号任务进程发送暂停信号,同时日志进程在等待dump日志刷新完毕,通过whydump读取文件中的报错信息点。转储文件存储到其他目录下,并将读取到的报错信息内容回传。
S308:判断第一链表是否为空;如果是,则进入S310;如果否,则进入S309。
S309:清空第二链表,将第一链表的数据拷贝至第二链表后,清空第一链表,进入S310。
在测试脚本执行的过程中,查看第一链表的长度,如果非空,则说明当前时刻正在进行自动化测试任务,清空上一测试脚本的第二链表,将第一链表的内容拷贝至第二链表,再清空第一链表用于存储当前测试脚本的已执行测试指令。
S310:对被测设备执行当前测试脚本中的测试指令。
S311:判断测试指令的返回结果是否为校验成功;如果是,则进入S312;如果否,则进入S314。
S312:判断是否完成当前测试脚本的测试;如果是,则进入S313;如果否,则进入S310。
S313:在第一链表末尾写脚本执行成功的信息,进入S308。
两个测试脚本的执行间隔时间可以为2秒。等待2秒启动当前测试脚本的自动化脚本调度进程,执行当前测试脚本内的测试指令,等待测试指令执行完毕后,作为已完成测试指令写入第一链表(tear up环境清理过程不写入)。判断测试指令的返回结果,如返回结果为校验成功且当前测试脚本执行完毕,则在第一链表末位追加脚本执行成功的信息,回更执行记录,返回S308,继续执行下一测试脚本。如果返回结果为校验失败,则确定当前测试脚本执行失败,在第一链表末位追加脚本执行失败的信息。
S314:确定出现异常信息。
如果当前测试脚本执行失败但并未生成转储文件,则可以初步判断非严重的程序错误,此时仅需要对失败问题进行指令码级的分析。如果被测设备生成了转储文件,则任务接收源自日志监控程序的暂停信号,此时需要判断第一链表的长度。
S315:判断第一链表是否为空;如果是,则进入S316;如果否,则进入S317。
S316:将第二链表的数据写入第一链表。
S317:将异常信息写入第一链表末位。
如果第一链表为空,则说明是上一测试脚本触发了转储文件的生成,此时另第一链表等于第二链表,并在第一链表末位追加转储标志(dump:报错信息,用以区分命令返回错误亦或dump错误)。因为一个转储文件的生成大约需要5分钟左右,而测试环境清理大约需要10分钟,因此如果在上一测试脚本执行末尾触发异常,此时当前测试脚本已开始执行且第一链表为空。
S318:判断第一链表末位的异常信息是否具有中断测试标识;如果是,则进入S319;如果否,则进入S320。
读取第一链表末位的异常信息,与系统异常数据库进行匹配,如果在系统异常数据库中找到所包含的错误编码,则提取对应的提取故障解释说明,风险等级,是否中断标识等。根据第一链表末位值,如果是脚本执行失败,且匹配到的中断测试标识为否,则认为风险级别较低,将对应的异常说明信息写入测试脚本分析日志,继续进行测试。如果未在系统异常数据库中找到所包含的错误编码,则可以将该异常信息插入未知异常信息的记录文件中,待人工解析后确定是否加入系统异常数据库。
S319:暂停对被测设备的测试以保留测试异常环境。
若异常信息为被测设备生成转储文件或异常信息对应有中断测试标识则暂停对被测设备的测试以保留测试异常环境。
S320:将测试指令执行路径与历史测试指令执行路径进行比对。
S321:判断是否存在达到匹配条件的目标历史测试指令执行路径;如果是,则进入S322;如果否,则进入S323。
S322:以目标历史测试指令执行路径对应的历史程序错误为程序错误预测值,关联记录异常信息、程序错误预测值和测试指令执行路径。
S323:将异常信息记为未知路径异常信息,并关联记录未知路径异常信息和测试指令执行路径。
轮询第一链表中的测试指令,提取测试指令内的关键要素,例如命令、参数名,个别参数值,逐层匹配命令(必选)→相同参数(必选)→相似参数值(可选)等。具体可以参见本发明实施例四的说明。
根据必选项,测试指令执行路径中每个命令行都可以在路径指令集中匹配到多个指令ID,因此会产生每个节点都有多个编码组成一个都选编码集,采用冒泡法逐编码节点比对历史测试指令执行路径编码中的编码和测试指令执行路径编码中的编码,以匹配到的编码节点上匹配的指令步骤数据量之和为匹配度参数,得到并输出与测试指令执行路径编码匹配度最高的目标历史测试指令执行路径编码,并将目标历史测试指令执行路径编码写入测试脚本分析日志。
判断目标历史测试指令执行路径编码与测试指令执行路径编码的匹配度是否达到匹配条件(如70%),如果达到,则认为可以关联历史程序错误。读取历史程序错误库中记载的解决办法写入测试脚本分析日志,同事对预判的结果根据用例编号,更新入用例分析结果,并将程序错误信息更新追加到分析结果中。停止自动化测试,保留测试异常环境。
如果目标历史测试指令执行路径编码与测试指令执行路径编码的匹配度未达到匹配条件,如匹配度不及70%,如果该异常信息为被测设备生成转储文件,则确定为高风险新问题,将测试指令执行路径插入人工分析表,等待人工分析结果,根据测试指令执行路径更新历史程序错误库。停止自动化测试,保留测试异常环境。
如果目标历史测试指令执行路径编码与测试指令执行路径编码的匹配度未达到匹配条件,如匹配度不及70%,且该异常信息非被测设备侧产生的异常信息,而是由于测试脚本的测试指令正常返回的执行失败,则可以预判为一般测试错误(脚本问题/环境问题),并根据异常信息的类型匹配解决办法或等待人工回填解决办法,继续执行测试。
上文详述了程序错误路径检测方法对应的各个实施例,在此基础上,本发明还公开了与上述方法对应的程序错误路径检测装置、设备及可读存储介质。
下面对本发明实施例七进行说明。
图4为本发明实施例提供的一种程序错误路径检测装置的结构示意图。
如图4所示,本发明实施例提供的程序错误路径检测装置包括:
第一建库单元401,用于创建用于记录历史程序错误对应的历史测试指令执行路径的历史程序错误库;
跟踪单元402,用于在利用测试脚本对被测设备进行测试时,记录已执行测试指令得到当前测试中的测试指令执行路径,并监测测试脚本的运行状态和被测设备的运行状态;
第一比对单元403,用于当监测到异常信息时,将测试指令执行路径与历史测试指令执行路径进行比对;
记录单元404,用于若比对结果达到匹配条件,则将测试指令执行路径匹配到的历史测试指令执行路径对应的历史程序错误记为程序错误预测值,并关联记录异常信息、程序错误预测值和测试指令执行路径;若比对结果未达到匹配条件,则将异常信息记为未知路径异常信息,并关联记录未知路径异常信息和测试指令执行路径。
在一些实施中,本发明实施例提供的程序错误路径检测装置还包括:
中断控制单元,用于若异常信息符合中断测试条件,则暂停对被测设备的测试以保留测试异常环境;若异常信息不符合中断测试条件,则继续执行对被测设备的测试。
其中,异常信息符合中断测试条件,包括:
满足异常信息为被测设备在测试过程中生成的转储文件、异常信息为预先记载对应有中断测试标识的被测设备异常信息、异常信息为预先记载对应有中断测试标识的测试脚本校验失败信息中的至少一个条件。
在一些实施中,跟踪单元402记录已执行测试指令得到当前测试中的测试指令执行路径,包括:
利用第一数据结构记录当前测试脚本中已执行测试指令的信息,利用第二数据结构记录上一测试脚本中已执行测试指令的信息;
若在执行当前测试脚本时未出现符合中断测试条件的异常信息,则将第一数据结构所记录的已执行测试指令的信息覆盖第二数据结构后,将第一数据结构清空,并以下一测试脚本为当前测试脚本并进入利用第一数据结构记录当前测试脚本中已执行测试指令的信息的步骤。
在一些实施中,第一数据结构为第一链表,第二数据结构为第二链表;
跟踪单元402若在执行当前测试脚本时未出现符合中断测试条件的异常信息,则将第一数据结构所记录的已执行测试指令的信息覆盖第二数据结构后,将第一数据结构清空,并以下一测试脚本为当前测试脚本并进入利用第一数据结构记录当前测试脚本中已执行测试指令的信息的步骤,包括:
若在执行当前测试脚本时未出现符合中断测试条件的异常信息,查看第一链表的长度;
若第一链表的长度不为空,则确定对被测设备的测试未结束,则清空第二链表后,将第一链表的内容拷贝入第二链表,再清空第一链表,并以下一测试脚本为当前测试脚本并利用第一链表记录当前测试脚本中已执行测试指令的信息。
在一些实施中,跟踪单元402利用第一数据结构记录当前测试脚本中已执行测试指令的信息,包括:
基于当前测试脚本启动自动化脚本调度进程后,对被测设备执行当前测试脚本内的测试指令,并在测试指令执行完毕后,将测试指令作为已执行测试指令并将已执行测试指令的信息写入第一数据结构;
检查已执行测试指令的返回结果;
若已执行测试指令的返回结果为校验成功,则若未执行完当前测试脚本,则对当前测试脚本内的下一个测试指令进入对被测设备执行当前测试脚本内的测试指令,并在测试指令执行完毕后,将测试指令作为已执行测试指令并将已执行测试指令的信息写入第一数据结构的步骤;若已执行完当前测试脚本,则在第一数据结构写入脚本执行成功的信息;
若已执行测试指令的返回结果为校验失败,则在第一数据结构内写入脚本执行失败的信息。
在一些实施中,跟踪单元402利用第一数据结构记录当前测试脚本中已执行测试指令的信息,包括:
若监测到被测设备在测试过程中生成的转储文件,则暂停对被测设备的测试,检查第一数据结构中的数据;
若第一数据结构为空,则确定转储文件为在执行上一测试脚本时生成的,将第二数据结构覆盖第一数据结构后,在第一数据结构内写入生成转储文件的报错信息;
若第一数据结构不为空,则确定转储文件为在执行当前测试脚本时生成的,直接在第一数据结构内写入生成转储文件的报错信息。
在一些实施中,本发明实施例提供的程序错误路径检测装置还包括:
第二建库单元,用于创建用于记录设备系统异常信息的系统异常数据库;
第二比对单元,用于当监测到异常信息时,若异常信息为被测设备异常信息,则将被测设备异常信息与系统异常数据库中的系统异常信息进行比对;若匹配到目标系统异常信息,则获取并记录目标系统异常信息的异常说明信息。
其中,异常说明信息的类型包括:故障码、故障所属模块、故障解释说明、故障风险等级和中断测试标识。
在一些实施中,第一建库单元401创建用于记录历史程序错误对应的历史测试指令执行路径的历史程序错误库,包括:
创建用于记录测试指令与测试指令编码的对应关系的路径指令集以及用于记录与历史程序错误对应的历史测试指令执行路径编码的程序错误路径集链路编码库;
以路径指令集和程序错误路径集链路编码库为历史程序错误库。
在一些实施中,第一比对单元403将测试指令执行路径与历史测试指令执行路径进行比对,包括:
根据路径指令集对测试指令执行路径进行编码,得到测试指令执行路径编码;
按编码顺序,为测试指令执行路径编码中的编码匹配历史测试指令执行路径编码中的编码,输出与测试指令执行路径编码匹配度最高的历史测试指令执行路径编码为目标历史测试指令执行路径编码;
比对结果达到匹配条件,包括:
目标历史测试指令执行路径编码与测试指令执行路径编码的匹配度达到匹配条件。
在一些实施中,第一比对单元403根据路径指令集对测试指令执行路径进行编码,得到测试指令执行路径编码,包括:
对测试指令执行路径中的各测试指令提取关键要素,并根据路径指令集对提取后的测试指令执行路径进行编码,得到测试指令执行路径编码。
在一些实施中,第一比对单元403根据路径指令集对测试指令执行路径进行编码,得到测试指令执行路径编码,包括:
对测试指令执行路径中的各测试指令提取关键要素,并对关键要素匹配对应的测试指令集;
根据路径指令集对各测试指令集进行编码,得到每个节点均对应一个多选编码集的测试指令执行路径编码。
在一些实施中,第一比对单元403输出与测试指令执行路径编码匹配度最高的历史测试指令执行路径编码为目标历史测试指令执行路径编码,包括:
以匹配到的编码节点上匹配的指令步骤数据量之和为匹配度参数,计算得到与测试指令执行路径编码匹配度参数最大的历史测试指令执行路径编码为目标历史测试指令执行路径编码并输出。
在另一些实施中,第一比对单元403输出与测试指令执行路径编码匹配度最高的历史测试指令执行路径编码为目标历史测试指令执行路径编码,包括:
按对应的测试指令的权重对匹配到的编码节点上匹配的指令步骤数据量进行加权求和为匹配度参数,计算得到与测试指令执行路径编码匹配度参数最大的历史测试指令执行路径编码为目标历史测试指令执行路径编码并输出。
在一些实施中,第一比对单元403按编码顺序,为测试指令执行路径编码中的编码匹配历史测试指令执行路径编码中的编码,输出与测试指令执行路径编码匹配度最高的历史测试指令执行路径编码为目标历史测试指令执行路径编码,包括:
采用冒泡法逐编码节点比对历史测试指令执行路径编码中的编码和测试指令执行路径编码中的编码,得到并输出与测试指令执行路径编码匹配度最高的目标历史测试指令执行路径编码。
在一些实施中,第一比对单元403将测试指令执行路径与历史测试指令执行路径进行比对,包括:
按执行顺序,对测试指令执行路径中的测试指令提取测试指令关键字,并将测试指令执行路径各节点的测试指令关键字与历史测试指令执行路径中的测试指令比对。
在一些实施中,第一比对单元403按执行顺序,对测试指令执行路径中的测试指令提取测试指令关键字,并将测试指令执行路径各节点的测试指令关键字与历史测试指令执行路径中的测试指令比对,包括:
按执行顺序,对测试指令执行路径中的测试指令关键字均匹配得到多选指令集;
采用冒泡法逐节点比对历史测试指令执行路径中的历史测试指令和测试指令执行路径各节点的多选指令集,输出与测试指令执行路径匹配度最高的历史测试指令执行路径为目标历史测试指令执行路径。
在一些实施中,本发明实施例提供的程序错误路径检测装置还包括:
第一更新单元,用于若比对结果达到匹配条件,将测试指令执行路径更新至历史程序错误库中与对应的历史程序错误进行关联存储。
在一些实施中,本发明实施例提供的程序错误路径检测装置还包括:
第二更新单元,用于若比对结果未达到匹配条件,则将未知路径异常信息和测试指令执行路径记录至人工分析表以等待人工分析后,根据输入的人工分析结果更新历史程序错误库。
在一些实施中,跟踪单元402监测被测设备的运行状态,包括:
在被测设备部署日志监控程序;
在被测设备运行日志监控程序以读取被测设备在开始测试后生成的被测设备异常信息。
由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
下面对本发明实施例八进行说明。
图5为本发明实施例提供的一种程序错误路径检测设备的结构示意图。
如图5所示,本发明实施例提供的程序错误路径检测设备包括:
存储器510,用于存储计算机程序511;
处理器520,用于执行计算机程序511,该计算机程序511被处理器520执行时实现如上述任意一项实施例所述程序错误路径检测方法的步骤。
其中,处理器520可以包括一个或多个处理核心,比如3核心处理器、8核心处理器等。处理器520可以采用数字信号处理DSP(Digital Signal Processing)、现场可编程门阵列FPGA(Field-Programmable Gate Array)、可编程逻辑阵列PLA(Programmable LogicArray)中的至少一种硬件形式来实现。处理器520也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称中央处理器CPU(CentralProcessing Unit);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器520可以集成有图像处理器GPU(Graphics Processing Unit),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器520还可以包括人工智能AI(Artificial Intelligence)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器510可以包括一个或多个可读存储介质,该可读存储介质可以是非暂态的。存储器510还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器510至少用于存储以下计算机程序511,其中,该计算机程序511被处理器520加载并执行之后,能够实现前述任一实施例公开的程序错误路径检测方法中的相关步骤。另外,存储器510所存储的资源还可以包括操作系统512和数据513等,存储方式可以是短暂存储或者永久存储。其中,操作系统512可以为Windows。数据513可以包括但不限于上述方法所涉及到的数据。
在一些实施例中,程序错误路径检测设备还可包括有显示屏530、电源540、通信接口550、输入输出接口560、传感器570以及通信总线580。
本领域技术人员可以理解,图5中示出的结构并不构成对程序错误路径检测设备的限定,可以包括比图示更多或更少的组件。
本发明实施例提供的程序错误路径检测设备,包括存储器和处理器,处理器在执行存储器存储的程序时,能够实现如上所述的程序错误路径检测方法,效果同上。
下面对本发明实施例九进行说明。
需要说明的是,以上所描述的装置、设备实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个可读存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本发明各个实施例所述方法的全部或部分步骤。
为此,本发明实施例还提供一种可读存储介质,该可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如程序错误路径检测方法的步骤。
该可读存储介质可以包括:U盘、移动硬盘、只读存储器ROM(Read-Only Memory)、随机存取存储器RAM(Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本实施例中提供的可读存储介质所包含的计算机程序能够在被处理器执行时实现如上所述的程序错误路径检测方法的步骤,效果同上。
以上对本发明所提供的一种程序错误路径检测方法、装置、设备及可读存储介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置、设备及可读存储介质而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

Claims (23)

1.一种程序错误路径检测方法,其特征在于,包括:
创建用于记录历史程序错误对应的历史测试指令执行路径的历史程序错误库;
在利用测试脚本对被测设备进行测试时,记录已执行测试指令得到当前测试中的测试指令执行路径,并监测所述测试脚本的运行状态和所述被测设备的运行状态;
当监测到异常信息时,将所述测试指令执行路径与所述历史测试指令执行路径进行比对;
若比对结果达到匹配条件,则将所述测试指令执行路径匹配到的所述历史测试指令执行路径对应的所述历史程序错误记为程序错误预测值,并关联记录所述异常信息、所述程序错误预测值和所述测试指令执行路径;
若所述比对结果未达到所述匹配条件,则将所述异常信息记为未知路径异常信息,并关联记录所述未知路径异常信息和所述测试指令执行路径。
2.根据权利要求1所述的程序错误路径检测方法,其特征在于,还包括:
若所述异常信息符合中断测试条件,则暂停对所述被测设备的测试以保留测试异常环境;
若所述异常信息不符合所述中断测试条件,则继续执行对所述被测设备的测试。
3.根据权利要求2所述的程序错误路径检测方法,其特征在于,所述异常信息符合所述中断测试条件,包括:
满足所述异常信息为所述被测设备在测试过程中生成的转储文件、所述异常信息为预先记载对应有中断测试标识的被测设备异常信息、所述异常信息为预先记载对应有所述中断测试标识的测试脚本校验失败信息中的至少一个条件。
4.根据权利要求2所述的程序错误路径检测方法,其特征在于,所述记录已执行测试指令得到当前测试中的测试指令执行路径,包括:
利用第一数据结构记录当前测试脚本中所述已执行测试指令的信息,利用第二数据结构记录上一测试脚本中所述已执行测试指令的信息;
若在执行所述当前测试脚本时未出现符合所述中断测试条件的所述异常信息,则将所述第一数据结构所记录的所述已执行测试指令的信息覆盖所述第二数据结构后,将所述第一数据结构清空,并以下一测试脚本为所述当前测试脚本并进入所述利用第一数据结构记录当前测试脚本中所述已执行测试指令的信息的步骤。
5.根据权利要求4所述的程序错误路径检测方法,其特征在于,所述第一数据结构为第一链表,所述第二数据结构为第二链表;
所述若在执行所述当前测试脚本时未出现符合所述中断测试条件的所述异常信息,则将所述第一数据结构所记录的所述已执行测试指令的信息覆盖所述第二数据结构后,将所述第一数据结构清空,并以下一测试脚本为所述当前测试脚本并进入所述利用第一数据结构记录当前测试脚本中所述已执行测试指令的信息的步骤,包括:
若在执行所述当前测试脚本时未出现符合所述中断测试条件的所述异常信息,查看所述第一链表的长度;
若所述第一链表的长度不为空,则确定对所述被测设备的测试未结束,则清空所述第二链表后,将所述第一链表的内容拷贝入所述第二链表,再清空所述第一链表,并以所述下一测试脚本为所述当前测试脚本并利用所述第一链表记录所述当前测试脚本中所述已执行测试指令的信息。
6.根据权利要求4所述的程序错误路径检测方法,其特征在于,所述利用第一数据结构记录当前测试脚本中所述已执行测试指令的信息,包括:
基于所述当前测试脚本启动自动化脚本调度进程后,对所述被测设备执行所述当前测试脚本内的测试指令,并在所述测试指令执行完毕后,将所述测试指令作为所述已执行测试指令并将所述已执行测试指令的信息写入所述第一数据结构;
检查所述已执行测试指令的返回结果;
若所述已执行测试指令的返回结果为校验成功,则若未执行完所述当前测试脚本,则对所述当前测试脚本内的下一个所述测试指令进入所述对所述被测设备执行所述当前测试脚本内的测试指令,并在所述测试指令执行完毕后,将所述测试指令作为所述已执行测试指令并将所述已执行测试指令的信息写入所述第一数据结构的步骤;若已执行完所述当前测试脚本,则在所述第一数据结构写入脚本执行成功的信息;
若所述已执行测试指令的返回结果为校验失败,则在所述第一数据结构内写入脚本执行失败的信息。
7.根据权利要求4所述的程序错误路径检测方法,其特征在于,所述利用第一数据结构记录当前测试脚本中所述已执行测试指令的信息,包括:
若监测到所述被测设备在测试过程中生成的转储文件,则暂停对所述被测设备的测试,检查所述第一数据结构中的数据;
若所述第一数据结构为空,则确定所述转储文件为在执行上一测试脚本时生成的,将所述第二数据结构覆盖所述第一数据结构后,在所述第一数据结构内写入生成转储文件的报错信息;
若所述第一数据结构不为空,则确定所述转储文件为在执行所述当前测试脚本时生成的,直接在所述第一数据结构内写入所述生成转储文件的报错信息。
8.根据权利要求1所述的程序错误路径检测方法,其特征在于,还包括:
创建用于记录设备系统异常信息的系统异常数据库;
当监测到所述异常信息时,若所述异常信息为被测设备异常信息,则将所述被测设备异常信息与所述系统异常数据库中的所述系统异常信息进行比对;
若匹配到目标系统异常信息,则获取并记录所述目标系统异常信息的异常说明信息。
9.根据权利要求8所述的程序错误路径检测方法,其特征在于,所述异常说明信息的类型包括:故障码、故障所属模块、故障解释说明、故障风险等级和中断测试标识。
10.根据权利要求1所述的程序错误路径检测方法,其特征在于,所述创建用于记录历史程序错误对应的历史测试指令执行路径的历史程序错误库,包括:
创建用于记录测试指令与测试指令编码的对应关系的路径指令集以及用于记录与所述历史程序错误对应的历史测试指令执行路径编码的程序错误路径集链路编码库;
以所述路径指令集和所述程序错误路径集链路编码库为所述历史程序错误库。
11.根据权利要求10所述的程序错误路径检测方法,其特征在于,所述将所述测试指令执行路径与所述历史测试指令执行路径进行比对,包括:
根据所述路径指令集对所述测试指令执行路径进行编码,得到测试指令执行路径编码;
按编码顺序,为所述测试指令执行路径编码中的编码匹配所述历史测试指令执行路径编码中的编码,输出与所述测试指令执行路径编码匹配度最高的所述历史测试指令执行路径编码为目标历史测试指令执行路径编码;
所述比对结果达到所述匹配条件,包括:
所述目标历史测试指令执行路径编码与所述测试指令执行路径编码的匹配度达到所述匹配条件。
12.根据权利要求11所述的程序错误路径检测方法,其特征在于,所述根据所述路径指令集对所述测试指令执行路径进行编码,得到测试指令执行路径编码,包括:
对所述测试指令执行路径中的各所述测试指令提取关键要素,并根据所述路径指令集对提取后的所述测试指令执行路径进行编码,得到所述测试指令执行路径编码。
13.根据权利要求11所述的程序错误路径检测方法,其特征在于,所述根据所述路径指令集对所述测试指令执行路径进行编码,得到测试指令执行路径编码,包括:
对所述测试指令执行路径中的各所述测试指令提取关键要素,并对所述关键要素匹配对应的测试指令集;
根据所述路径指令集对各所述测试指令集进行编码,得到每个节点均对应一个多选编码集的所述测试指令执行路径编码。
14.根据权利要求13所述的程序错误路径检测方法,其特征在于,所述输出与所述测试指令执行路径编码匹配度最高的所述历史测试指令执行路径编码为目标历史测试指令执行路径编码,包括:
以匹配到的编码节点上匹配的指令步骤数据量之和为匹配度参数,计算得到与所述测试指令执行路径编码匹配度参数最大的所述历史测试指令执行路径编码为所述目标历史测试指令执行路径编码并输出。
15.根据权利要求13所述的程序错误路径检测方法,其特征在于,所述输出与所述测试指令执行路径编码匹配度最高的所述历史测试指令执行路径编码为目标历史测试指令执行路径编码,包括:
按对应的测试指令的权重对匹配到的编码节点上匹配的指令步骤数据量进行加权求和为匹配度参数,计算得到与所述测试指令执行路径编码匹配度参数最大的所述历史测试指令执行路径编码为所述目标历史测试指令执行路径编码并输出。
16.根据权利要求11所述的程序错误路径检测方法,其特征在于,所述按编码顺序,为所述测试指令执行路径编码中的编码匹配所述历史测试指令执行路径编码中的编码,输出与所述测试指令执行路径编码匹配度最高的所述历史测试指令执行路径编码为目标历史测试指令执行路径编码,包括:
采用冒泡法逐编码节点比对所述历史测试指令执行路径编码中的编码和所述测试指令执行路径编码中的编码,得到并输出与所述测试指令执行路径编码匹配度最高的所述目标历史测试指令执行路径编码。
17.根据权利要求1所述的程序错误路径检测方法,其特征在于,所述将所述测试指令执行路径与所述历史测试指令执行路径进行比对,包括:
按执行顺序,对所述测试指令执行路径中的测试指令提取测试指令关键字,并将所述测试指令执行路径各节点的所述测试指令关键字与所述历史测试指令执行路径中的所述测试指令比对。
18.根据权利要求17所述的程序错误路径检测方法,其特征在于,所述按执行顺序,对所述测试指令执行路径中的测试指令提取测试指令关键字,并将所述测试指令执行路径各节点的所述测试指令关键字与所述历史测试指令执行路径中的所述测试指令比对,包括:
按执行顺序,对所述测试指令执行路径中的所述测试指令关键字均匹配得到多选指令集;
采用冒泡法逐节点比对所述历史测试指令执行路径中的历史测试指令和所述测试指令执行路径各节点的所述多选指令集,输出与所述测试指令执行路径匹配度最高的所述历史测试指令执行路径为目标历史测试指令执行路径。
19.根据权利要求1所述的程序错误路径检测方法,其特征在于,还包括:
若所述比对结果达到所述匹配条件,将所述测试指令执行路径更新至所述历史程序错误库中与对应的所述历史程序错误进行关联存储。
20.根据权利要求1所述的程序错误路径检测方法,其特征在于,还包括:
若所述比对结果未达到所述匹配条件,则将所述未知路径异常信息和所述测试指令执行路径记录至人工分析表以等待人工分析后,根据输入的人工分析结果更新所述历史程序错误库。
21.一种程序错误路径检测装置,其特征在于,包括:
第一建库单元,用于创建用于记录历史程序错误对应的历史测试指令执行路径的历史程序错误库;
跟踪单元,用于在利用测试脚本对被测设备进行测试时,记录已执行测试指令得到当前测试中的测试指令执行路径,并监测所述测试脚本的运行状态和所述被测设备的运行状态;
第一比对单元,用于当监测到异常信息时,将所述测试指令执行路径与所述历史测试指令执行路径进行比对;
记录单元,用于若比对结果达到匹配条件,则将所述测试指令执行路径匹配到的所述历史测试指令执行路径对应的所述历史程序错误记为程序错误预测值,并关联记录所述异常信息、所述程序错误预测值和所述测试指令执行路径;若所述比对结果未达到所述匹配条件,则将所述异常信息记为未知路径异常信息,并关联记录所述未知路径异常信息和所述测试指令执行路径。
22.一种程序错误路径检测设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至20任意一项所述程序错误路径检测方法的步骤。
23.一种可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至20任意一项所述程序错误路径检测方法的步骤。
CN202311608564.9A 2023-11-29 2023-11-29 一种程序错误路径检测方法、装置、设备及可读存储介质 Active CN117312174B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311608564.9A CN117312174B (zh) 2023-11-29 2023-11-29 一种程序错误路径检测方法、装置、设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311608564.9A CN117312174B (zh) 2023-11-29 2023-11-29 一种程序错误路径检测方法、装置、设备及可读存储介质

Publications (2)

Publication Number Publication Date
CN117312174A true CN117312174A (zh) 2023-12-29
CN117312174B CN117312174B (zh) 2024-02-23

Family

ID=89281453

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311608564.9A Active CN117312174B (zh) 2023-11-29 2023-11-29 一种程序错误路径检测方法、装置、设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN117312174B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190294524A1 (en) * 2018-03-26 2019-09-26 Ca, Inc. Multivariate path-based anomaly prediction
CN116048951A (zh) * 2021-10-28 2023-05-02 北京小米移动软件有限公司 软件问题的复现方法、装置、电子设备及存储介质
CN116561743A (zh) * 2023-05-09 2023-08-08 中国工商银行股份有限公司 业务流程的管理方法、装置、存储介质及电子设备

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190294524A1 (en) * 2018-03-26 2019-09-26 Ca, Inc. Multivariate path-based anomaly prediction
CN116048951A (zh) * 2021-10-28 2023-05-02 北京小米移动软件有限公司 软件问题的复现方法、装置、电子设备及存储介质
CN116561743A (zh) * 2023-05-09 2023-08-08 中国工商银行股份有限公司 业务流程的管理方法、装置、存储介质及电子设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
贾志淳: "Web服务故障的诊断方法研究", CNKI博士电子期刊, pages 6 - 14 *

Also Published As

Publication number Publication date
CN117312174B (zh) 2024-02-23

Similar Documents

Publication Publication Date Title
CN107301115B (zh) 应用程序异常监控和恢复方法及设备
US7856575B2 (en) Collaborative troubleshooting computer systems using fault tree analysis
US8516499B2 (en) Assistance in performing action responsive to detected event
CN112308126A (zh) 故障识别模型训练方法、故障识别方法、装置及电子设备
CN109976975B (zh) 一种磁盘容量预测方法、装置、电子设备及存储介质
US7398511B2 (en) System and method for providing a health model for software
CN113946499A (zh) 一种微服务链路跟踪及性能分析方法、系统、设备及应用
WO2022001125A1 (zh) 一种存储系统的存储故障预测方法、系统及装置
CN112540887A (zh) 故障演练方法、装置、电子设备及存储介质
CN111881014A (zh) 一种系统测试方法、装置、存储介质及电子设备
CN109783384A (zh) 日志用例测试方法、日志用例测试装置和电子设备
CN112433948A (zh) 一种基于网络数据分析的仿真测试系统及方法
CN113315675B (zh) 一种白盒交换机U-Boot自动化测试方法、系统和存储介质
Ganatra et al. Detection Is Better Than Cure: A Cloud Incidents Perspective
CN117312174B (zh) 一种程序错误路径检测方法、装置、设备及可读存储介质
CN112527568A (zh) 数据流量测试方法、装置、电子设备及存储介质
CN116756021A (zh) 基于事件分析的故障定位方法、装置、电子设备及介质
CN115878400A (zh) 测试方法、装置、计算机设备、存储介质和程序产品
US10776240B2 (en) Non-intrusive performance monitor and service engine
CN113377719B (zh) 一种系统异常关机时间获取方法及系统
WO2020145965A1 (en) Maintenance of computing devices
Chen et al. Fault diagnosis for open source software based on dynamic tracking
CN113037521B (zh) 识别通讯设备状态的方法、通讯系统及存储介质
CN113360360A (zh) 业务系统故障检测方法、装置、电子设备及存储介质
CN117439899B (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