作者 | intelligents
前几篇,别离介绍了测试流动测试输出、测试执行、测试剖析、测试定位和测试评估五个步骤中测试输出、执行、剖析、评估的智能化钻研和实际,本章节重点介绍测试定位环节的智能化实际。
测试定位的次要作用是在构建失败或问题产生后,疾速给出产生该景象的起因,以帮忙景象解决者给出正当的处理措施,升高问题解决时长,升高人力定位老本和问题时长,依据起因进行分类个别也分为两种:
一、根因定位:即给出造成失败的真正起因(如代码问题);
二、行为定位:即给出造成失败的可能操作或变动,以疾速进行处理,升高影响面。
测试定位智能化通过将数据、算法、工程等相干技术有机联合,从问题景象、问题关联数据、零碎关联数据,利用策略或算法给出问题产生的操作项或根本原因,以最终给予问题解决者决策对应的处理行为。在该畛域的实际绝对较少,百度 QA 也始终在摸索钻研和实际。本章节将从多个实际的角度,本章节将从多个实际的角度,介绍相干畛域的指标、思路、波及到的技术点,心愿能给到大家肯定参考。
一、基于频谱的问题根因定位
基于频谱的问题根因定位冀望能通过定位剖析技术手段,揭露出疑似代码问题范畴,帮助研发和测试人员在定位问题中疾速修复,升高人效。基于频谱的问题根因定位在学术界钻研已久,其思路是利用测试用例执行过程中的程序元素信息(如测试后果、代码覆盖率),对外部代码做逻辑差别剖析,对代码行或代码块进行可疑度排序,从而去定位谬误本源。其次要过程为应用插桩编译后的程序执行被测用例汇合,对每一个测试用例的标记代码块 / 语句是否笼罩、是否通过进行剖析,以语句 / 代码块为统计单位,采集 <ef,ep,nf,np> 四元组特色(ef:失败用例中,该代码块执行的次数;ep:胜利用例中,该代码块执行的次数;nf:失败用例中,该代码块未执行的次数;np:胜利用例中,该代码块未执行的次数),通过多种可疑度公式 (如 Tarantula,Ochiai,Overlab 等),将每个标记代码块 / 语句计算出一个可疑度值,并依据可疑度分数排序失去最终高风险代码片段汇合。该剖析定位能力较为通用,可广泛应用到如单元测试、功能测试、diff 测试等测试流动,大大降低人工排查定位老本,后续也将继续摸索,联合更多代码白盒元素,尝试更多问题根因定位伎俩一直晋升定位能力,目前百度正在将该定位能力集成到自动化测试流水线中。
二、基于错误码的构建零碎定位计划
在测试人员的日常工作中,各种自动化任务量大,其中的异样构建数多,流水线执行完后,业务线同学须要花很多人力在问题定位 & 标注和红灯修复上;同时,很多问题没有彻底闭环,人工解决止于问题标注和手动复原,导致同类问题重复呈现。为了解决此类问题,咱们心愿对自动化异样构建进行主动标注、修复、问题闭环。错误码,是以后零碎问题的一种较为直观反映。业务能联合代码正文、教训等,将错误码翻译为具体的谬误起因;针对这起因个别有两种解决方案,一是能够依附自动化复原,二是须要人工染指解决。咱们将以上过程概括为主动标注策略、自愈策略、问题闭环策略。主动标注策略指由错误码得出谬误起因后,自动化标注谬误分类,节俭人工定位标注耗时。这要求业务线将工作日志接入对立的日志零碎或应用咱们规定的插件,并梳理一份错误码和谬误分类的映射表,在插件核心进行注册。如此在问题产生时,工具便能够捕捉谬误日志,并提取其中的错误码,和谬误分类做映射,并标注。自愈策略根底是主动标注策略。自愈策略接入须要先圈定主动重启的场景,即满足什么条件须要触发自愈,依赖工具产出的错误码,每一种条件为一种自愈子策略。判断以后满足自愈条件时,便触发自愈策略,如呈现红灯时重启环境等。可依据业务线须要,配置超时工夫、模块、内存等多个触发条件和自愈子策略,反对业务线自行定制,较为灵便。问题闭环策略同样基于主动标注策略,和自愈策略能够联合应用。在大概率须要人工染指的场景,主动创立问题的 icafe 卡片,卡片内容中形容问题、错误码和主动定位后果,由人工来确认问题的解决形式和处理结果。从问题呈现到卡片创立再到卡片状态被批改为解决实现,才算实现闭环。在我的项目业务线试点中,异样工作问题上报率达到 100%,问题闭环率达到 94%。
三、商业支出变动大盘止损决策定位介绍
商业支出变动大盘止损决策定位过程由报警接管, 报警定位诊断、故障特征提取、止损决策、止损计划举荐组成,其外围是笼罩和诊断策略的有效性;其中笼罩又蕴含报警笼罩、指标笼罩两局部;报警笼罩首先须要笼罩产品线的各个子方向,指标笼罩是指对以后已笼罩报警的业务的监控指标齐备性的笼罩,蕴含零碎稳定性指标笼罩、用商指标笼罩、宏观指标 & 业务过程指标联合齐备性指标的整体笼罩,通过齐备的报警指标笼罩能第一工夫感知商业大盘支出变动危险,基于报警信息制订一套故障特色规范数据结构来解析不同报警取得通用的故障特色;诊断策略对故障特色进行策略剖析并最终给出无效的止损举荐计划,诊断策略的有效性对最终止损举荐的品质至关重要。以后诊断策略次要蕴含危险水平辨认策略用于判断报警危险水平;危险指标 & 报警辨认策略用于判断零碎关联的危险指标 / 模块信息;异样点辨认策略用于确认业务实在异样工夫点;日志 trace 定位策略联合成果监控拓扑,对报警链路模块日志 trace 定位,实现精确定位到故障模块,进而对模块程序 / 词典变更暂停或回滚止损;依据监控影响 pv 计算以后报警预估损失 pv 指数,预估线上问题级别, 给出止损倡议;通过止损库策略梳理给出齐备的止损预案操作领导疾速发动止损决策;为了更便于不同业务定制诊断策略,以后提供故障诊断、止损决策策略反对业务低成本自定义编写,其中故障特色可在继承通用策略的根底上自行编排、告诉款式可在根本规范格局下进行子编排解决。目前商业支出变动大盘止损决策定位已实现报警触发、诊断、止损举荐的全流程机制买通,并可间接给出止损决策计划。
四、搜寻 UI 展示 case 级定位办法
为了晋升零碎品质,品质保障同学个别会针对零碎建设全方位的品质监控,尽管能召回的问题变多,然而随之而来的针对 case 级的定位,就会是一项耗时耗力的工作,ui 展示 case 定位就是基于这个背景而来的。定位次要分为两个局部,一个是根底建设,二就是具体逻辑实现。根底建设是定位重要的一环,零碎的复杂度会给咱们定位带来极大的挑战,越是简单的零碎就越难定位。针对这个问题咱们解决方案是建设残缺的日志 trace 计划。首先为了节俭资源,不独自存储日志,只存种子信息,所有日志保留一份;而后建设模块 topo,将日志从上到下的进行递归检索,依据日志的内容生成申请链路。最初为了保障平安,建设流量管控,超时等机制。最终实现了秒级提早和检索耗时的日志 trace 能力。二就是具体定位逻辑实现,次要是通过定位 topo、联合 case 报警信息去触发整体的召回定位能力,而后通过日志里的进行进行正则化的匹配和提取,来判断在具体 case 的起因在哪些地方有体现,比方具体的资源为什么没有召回,在哪个中央被删除和批改,最终实现分钟级别的报警接管和主动定位。
———- END ———-
举荐浏览【技术加油站】系列:
揭秘百度智能测试在测试评估畛域实际
揭秘百度智能测试在测试剖析畛域实际
揭秘百度智能测试在测试主动执行畛域实际
揭秘百度智能测试在测试主动生成畛域的摸索
【技术加油站】浅谈百度智能测试的三个阶段
【技术加油站】揭秘百度智能测试规模化落地