基于日志分析的自动化缺陷定位测试方法及装置与流程

摘要: 本发明涉及软件测试,具体涉及基于日志分析的自动化缺陷定位测试方法及装置。背景技术:1、随着web系统、微服务架构及接口自动化、端到端自动化测试技术的普及,自动化...
基于日志分析的自动化缺陷定位测试方法及装置与流程

本发明涉及软件测试,具体涉及基于日志分析的自动化缺陷定位测试方法及装置。

背景技术:

1、随着web系统、微服务架构及接口自动化、端到端自动化测试技术的普及,自动化测试已成为软件质量管控的重要手段。现阶段常规自动化测试仅能判定测试用例执行结果为通过或失败,无法自动识别缺陷类型、追溯问题根因,存在明显技术短板。

2、当测试用例执行失败后,工作人员需人工检索、梳理各类日志排查问题。一方面,待测系统日志体量庞大,人工逐条查阅日志耗时费力,大幅拉低测试排查效率;另一方面,微服务、分布式系统的日志分散在多个服务与节点中,各类运行日志、接口日志、堆栈日志相互割裂,难以快速串联完整的异常调用链路,进一步提升了缺陷排查难度。

3、同时,传统缺陷定位工作高度依赖技术人员的实操经验与业务熟悉度,主观判断占比较大,极易出现缺陷误判、漏判等情况,定位结果准确性难以保证。现有技术也无法打通测试执行、异常捕获、缺陷定位、报告输出的全流程链路,难以实现无人值守的智能缺陷诊断,导致软件调试、跨岗位沟通成本居高不下。

4、综上,为解决人工日志分析效率低、分布式日志难以串联、缺陷定位准确率不足、全流程自动化能力缺失等问题,行业亟需研发一种基于日志分析,可实时完成异常识别、缺陷精确定位的自动化测试方案。

技术实现思路

1、为此,本发明提供基于日志分析的自动化缺陷定位测试方法及装置,解决现有自动化测试仅能判断用例成败,需人工检索日志效率低、分布式日志难串联、缺陷定位依赖经验易误判漏判,且无法实现测试执行到缺陷报告全流程自动化的问题。

2、为了实现上述目的,本发明提供如下技术方案:基于日志分析的自动化缺陷定位测试方法,包括:

3、s1、配置日志采集规则,建立统一多源日志接入规范;

4、s2、执行自动化测试用例,实时采集原始多源日志;

5、s3、对所述原始多源日志进行标准化清洗与结构化转换处理,生成结构化日志数据;

6、s4、基于异常特征库对所述结构化日志数据进行多维度匹配,识别缺陷类型与异常事件;

7、s5、基于服务调用链路、日志执行时序关系、系统模块依赖路径,定位缺陷发生位置、根因类别、影响范围;

8、s6、整合缺陷识别与定位结果,生成标准化缺陷定位报告,并将所述标准化缺陷定位报告与对应测试用例的执行结果进行关联。

9、作为基于日志分析的自动化缺陷定位测试方法优选方案,s1中,所述日志采集规则包括待测系统的日志路径、日志类型、采集字段、采集频率;

10、所述日志类型包括运行日志、接口日志、错误日志;

11、所述采集字段包括时间戳、traceid、服务名、级别、内容、ip、端口;

12、所述多源日志包括系统运行日志、接口请求响应日志、数据库日志、微服务链路日志、错误堆栈日志。

13、作为基于日志分析的自动化缺陷定位测试方法优选方案,s2中,所述原始多源日志包括测试日志、应用日志、接口日志、数据库日志、异常堆栈日志。

14、作为基于日志分析的自动化缺陷定位测试方法优选方案,s3中,所述标准化清洗包括对所述原始日志进行重复日志去重、噪声日志过滤、缺失关键字段补全、时间戳格式统一化、跨节点链路id关联映射;

15、所述时间戳格式统一化执行公式为:

16、

17、

18、式中,为原始时间戳,为时间戳转换函数,为标准unix时间戳,为时间格式化函数,为格式化时间字符串;

19、所述跨节点链路id关联映射匹配公式为:

20、

21、式中,为不同节点日志,为提取日志的链路唯一标识,为关联匹配结果,表示链路关联成功,表示链路关联失败;

22、所述结构化转换处理包括将非结构化文本日志转换为json格式的结构化日志数据,并过滤无关日志,保留异常日志与主要流程日志。

23、作为基于日志分析的自动化缺陷定位测试方法优选方案,s4中,所述异常特征库包括错误码、异常关键词、正则表达式、异常类型、返回码规则、超时阈值、业务校验规则;

24、所述多维度匹配包括系统错误码匹配、异常关键词匹配、正则表达式匹配、异常堆栈特征匹配、业务返回码匹配、接口超时阈值判断;

25、所述接口超时阈值判断公式为:

26、、

27、式中,为调用耗时,为请求时间,为响应时间,为超时阈值,为超时标记,判定为超时异常,判定为正常;

28、日志与异常特征相似度匹配公式为:

29、

30、

31、式中,为单条结构化日志文本内容,为异常特征库中关键词/异常堆栈/正则匹配模板,为日志与特征模板的重合字符集合,为字符长度统计函数,为日志与异常特征的匹配相似度,为相似度阈值,为异常标记,为命中缺陷,为无异常;

32、所述业务返回码匹配执行公式为:

33、

34、式中,为实时返回码,为异常返回码集合,为返回码异常标记;

35、所述缺陷类型包括空指针异常、接口超时异常、服务内部错误、业务参数异常、数据库操作异常、业务规则校验不通过异常。

36、作为基于日志分析的自动化缺陷定位测试方法优选方案,所述异常特征库预设有覆盖通用软件系统的基础异常特征集,同时提供用户自定义业务专属异常特征功能;

37、所述异常特征库还具备自学习能力,根据历史缺陷定位结果提取新增异常特征并定期更新所述异常特征库;

38、所述异常特征库频次公式为:

39、

40、式中,为候选新增异常特征,为历史缺陷日志数据集,为统计特征在数据集中的出现次数,为特征的出现频次;

41、所述新增异常特征更新所述异常特征库判定公式为:

42、

43、式中,为特征准入频次阈值,为异常特征库原有特征集合;为新增特征标记,为纳入特征库并完成更新。

44、作为基于日志分析的自动化缺陷定位测试方法优选方案,s5中,缺陷定位的具体过程为:根据异常日志中的traceid与spanid追溯完整的分布式服务调用链路,结合日志的时间戳执行时序与系统预定义的模块依赖路径图,定位缺陷发生的服务名、模块名、接口地址、函数方法、代码层级/系统配置项,并逆向推导异常传播路径与受影响的业务模块范围。

45、作为基于日志分析的自动化缺陷定位测试方法优选方案,还包括缺陷分级,在缺陷识别完成后,根据综合评分公式计算缺陷得分,将识别到的缺陷自动划分为阻塞、严重、一般、提示四个等级,并为每个等级标记对应的处理优先级与响应时限;

46、所述综合评分公式为:

47、

48、式中,为业务影响范围得分,为系统崩溃风险得分,为业务阻断程度得分,为用户感知优先级得分,为固定权重。

49、作为基于日志分析的自动化缺陷定位测试方法优选方案,s6中,所述标准化缺陷定位报告包括测试用例名称、测试执行时间、测试用例执行结果、缺陷唯一标识、缺陷等级、缺陷类型、定位位置、相关异常日志片段、异常传播链路图、建议处理方向;

50、所述缺陷唯一标识编码公式为:

51、

52、式中,为缺陷全局唯一标识,为测试用例唯一编号,为标准化unix时间戳,为哈希函数;

53、所述标准化缺陷定位报告生成后推送至缺陷管理并关联对应测试用例的执行记录与测试截图。

54、本发明还提供基于日志分析的自动化缺陷定位测试装置,采用上述的基于日志分析的自动化缺陷定位测试方法,包括:

55、配置模块:用于配置日志采集规则,建立统一多源日志接入规范;

56、日志采集模块:用于执行自动化测试用例,实时采集原始多源日志;

57、日志清洗模块:用于对所述原始多源日志进行标准化清洗与结构化转换处理,生成结构化日志数据;

58、缺陷识别模块:用于基于异常特征库对所述结构化日志数据进行多维度匹配,识别缺陷类型与异常事件;

59、缺陷定位模块:用于基于服务调用链路、日志执行时序关系、系统模块依赖路径,定位缺陷发生位置、根因类别、影响范围;

60、报告生成模块:用于整合缺陷识别与定位结果,生成标准化缺陷定位报告,并将所述标准化缺陷定位报告与对应测试用例的执行结果进行关联。

61、本发明具有如下优点:

62、第一、本发明可摆脱人工检索、分析日志的工作模式,在自动化测试出现失败时秒级完成缺陷自动定位,实现无人值守式智能缺陷诊断,大幅减少人工干预。

63、第二、本发明实现测试日志、系统日志、接口日志、数据库日志、异常堆栈等多源日志统一采集与标准化处理,适配web系统、微服务、分布式架构,可应用于接口自动化、端到端测试等多种场景,通用性强。

64、第三、本发明依托异常特征库、关键词匹配、链路追踪等机制开展缺陷识别,识别准确率高、漏检率低,同时支持异常调用链路完整回溯,能够精确定位缺陷位置、根因类别与影响范围。

65、第四、本发明可对缺陷自动划分为阻塞、严重、一般、提示四个等级,缺陷分类与定级规范清晰,便于问题分级管控与处置,可自动生成标准化缺陷定位报告并与测试用例执行结果关联,信息完整、追溯便捷,进一步优化测试问题逻辑管理流程。

66、第五、本发明打通测试执行、异常捕获、缺陷定位、报告输出全流程自动化链路,有效提升整体测试工作效率,同时显著降低系统调试、跨岗位沟通的综合成本。