一种测试任务的根因分析方法、装置及相关设备与流程

文档序号:34634249发布日期:2023-06-29 15:27阅读:23来源:国知局
一种测试任务的根因分析方法、装置及相关设备与流程

本技术涉及软件测试,尤其涉及一种测试任务的根因分析方法、装置及相关设备。


背景技术:

1、在软件开发中,调试一直是一个耗时、耗力且乏味的过程。软件产品能够提供各类服务,在产品上线之前,每个服务都会由研发或测试人员写上千的测试用例,来针对该服务的不同功能进行测试。测试用例定义了测试预期结果,每次用例执行复核预期则成功,否则失败,服务如需上线则需要成功的通过所有测试用例。目前对失败用例的根因分析仍较为依赖人工,然而服务越多,失败用例的数量越大,需要投入大量人力分析用例失败的原因,分析成本高,耗时长,可能在测试周期内都无法完成,从而影响产品发布的节奏。为了减少调试过程的开销,研究人员提出了一些智能化的手段进行用例根因分析方法,但当前这些方法大多只利用了失败例次单个日志,而单个数据源有时候只反映了失败表象,或是存在多个异常信息从而无法准确锁定根因。

2、因此,如何提供一种测试任务的根因分析方法,提高根因分析的效率和准确性,是本领域技术人员亟待解决的技术问题。


技术实现思路

1、本技术实施例提供了一种测试任务的根因分析方法、装置及相关设备,用于提高根因分析的效率和准确性。

2、第一方面,本技术提供了一种测试任务的根因分析方法,包括:

3、对用例的历史成功例次的日志数据进行模板化处理,得到用例的正常模板;

4、将用例在当前例次下的日志数据与正常模板进行比对,得到用例的异常日志行;

5、结合同一测试任务中多个用例的异常日志行和多个用例在当前例次下的测试结果,分析每个异常日志行对应的根因事件的异常指数,异常指数反应根因事件造成测试任务失败的可能性。

6、本实施例中,通过结合每个用例历史多次成功执行的日志数据构建用例的正常模板,并根据当前例次下的日志数据与正常模板进行比对,得到用例在当前例次下的异常日志行;获取同一测试任务中多个用例的异常日志行,再结合每个用例在当前例次下的成功或失败结果,从而分析得到每个异常日志行对应的根因事件导致测试任务失败的可能性。本实施例所提供的方法,从当前测试用例的历史数据提取日志正常模式用来检测日志差异,且能根据同一测试任务下成功或失败用例的日志差异来排除软件正常变更导致的日志差异噪声,减少了失败用例根因定位人工分析成本,提升了服务快速迭代效率。

7、一种可能的实现方式中,计算每个所述异常日志行对应的根因事件的异常指数之后,还包括:

8、获取造成所述测试任务失败的实际根因;

9、基于所述实际根因进行反馈学习,优化所述异常指数。

10、本实施例中,在用户确认后,可通过反馈学习机制不断提升根因分析准确率。可以理解的是,本方法可引入基于反馈机制学习,例如通过获取经过用户确认的实际根因事件,来构建学习排序模型,使得推荐根因排序更加符合专家经验。

11、一种可能的实现方式中,在对用例的历史成功例次的日志数据进行模板化处理之前,还包括:

12、获取每个用例在每个例次下执行后产生的日志数据。

13、一种可能的实现方式中,所述日志数据包括测试执行机日志、产品运行日志和调用链日志中的一种或多种。

14、本实施例中,单个数据源有时候只反映了失败表象,或是存在多个异常信息无法锁定根因,因此可以结合执行机测试日志、调用链日志和产品运行日志等多源数据进行故障分析。

15、一种可能的实现方式中,对用例的历史成功例次的日志数据进行模板化处理,具体包括:

16、对用例的历史成功例次的测试执行机日志和/或产品运行日志通过日志异常检测和诊断模型进行处理;

17、对所述用例的历史成功例次的调用链日志通过根因定位模型进行处理。

18、本实施例中,针对测试执行机日志和产品运行日志这类半结构化日志,可以用基于系统日志使用深度学习方法做异常检测和诊断模型(deeplog模型)实现模板化处理和差异诊断;针对调用链日志这类结构化日志,可以用reptrace模型实现模板化处理和差异诊断。

19、一种可能的实现方式中,结合同一测试任务中多个用例的异常日志行和所述多个用例在当前例次下的测试结果,分析每个所述异常日志行对应的根因事件的异常指数,具体包括:

20、结合同一测试任务中多个用例,将文本相似度高于阈值的异常日志行聚类为同一个根因事件,得到所述多个用例对应的根因事件;

21、结合所述多个用例对应的根因事件和所述多个用例在当前例次下的测试结果,分析每个根因事件的异常指数。

22、本实施例中,可以进一步的对异常日志行中的冗余信息进行模板化处理,从而计算异常日志行之间的文本相似度,将相似度大于阈值的异常日志行模板聚类为同一个根因事件。

23、一种可能的实现方式中,结合所述多个用例对应的根因事件和所述多个用例在当前例次下的测试结果,分析每个根因事件的异常指数具体包括:

24、根据多个用例对应的根因事件和所述多个用例在当前例次下的测试结果,构建异质图;

25、通过高阶个性化页面排名hppr得到每个所述根因事件的异常权重;

26、通过加权谱分析每个所述根因事件的异常指数。

27、本实施例中,计算异常指数的方法可以具体为:构建“用例-根因事件”的异质图,通过高阶个性化网页排名(high-order personalized pagerank,hppr)得到每个根因事件的异常权重,在通过加权谱分析计算每个根因事件类的异常分数。

28、第二方面,本技术实施例提供一种测试任务的根因分析装置,包括:

29、模板构建模块,用于对用例的历史成功例次的日志数据进行模板化处理,得到所述用例的正常模板;

30、异常比对模块,用于将所述用例在当前例次下的日志数据与所述正常模板进行比对,得到所述用例的异常日志行;

31、根因分析模块,用于结合同一测试任务中多个用例的异常日志行和所述多个用例在当前例次下的测试结果,分析每个所述异常日志行对应的根因事件的异常指数,所述异常指数反应所述根因事件造成所述测试任务失败的可能性。

32、一种可能的实现方式中,还包括:

33、根因确定模块,用于获取造成所述测试任务失败的实际根因;

34、反馈优化模块,用于基于所述实际根因进行反馈学习,优化所述异常指数。

35、一种可能的实现方式中,还包括:

36、数据获取模块,用于获取每个用例在每个例次下执行后产生的日志数据。

37、一种可能的实现方式中,所述日志数据包括测试执行机日志、产品运行日志和调用链日志中的一种或多种。

38、一种可能的实现方式中,所述根因分析模块,具体包括:

39、日志聚类子模块,用于结合同一测试任务中多个用例,将文本相似度高于阈值的异常日志行聚类为同一个根因事件,得到所述多个用例对应的根因事件;

40、根因分析子模块,用于结合所述多个用例对应的根因事件和所述多个用例在当前例次下的测试结果,分析每个根因事件的异常指数。

41、一种可能的实现方式中,

42、所述根因分析子模块,具体用于根据多个用例对应的根因事件和所述多个用例在当前例次下的测试结果,构建异质图;通过高阶个性化页面排名hppr得到每个所述根因事件的异常权重;通过加权谱分析每个所述根因事件的异常指数。

43、第三方面,本技术实施例提供一种测试任务的根因分析装置,包括收发模块和处理模块;

44、所述收发模块用于执行如第一方面的方法实施例中的收发操作,所述处理模块用于执行如第一方面的方法实施例中的处理操作。

45、第四方面,本技术实施例提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序或指令,该计算机程序或指令用于在由一个或多个计算机执行时使得一个或多个计算机实施上述各方面中任意一方面任意可能的实施方式的方法。

46、第五方面,本技术实施例提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面中任意一方面任意可能的实施方式的方法。

47、本技术第六方面提供一种芯片装置,包括处理器,用于与存储器相连,调用该存储器中存储的程序,以使得该处理器执行上述第一方面中的任一种实现方式。

48、上述第二方面至六方面提供的方案,用于实现或配合实现上述第一方面提供的测试任务的根因分析方法,因此可以与第一方面达到相同或相应的有益效果,此处不再进行赘述。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1