质效中台助力实现质量度模型规模化落地

共 5559字,需浏览 12分钟

 ·

2021-04-23 17:39

    小编有话说

相信在日常的测试活动中,大家多少会遇到以下几种场景:


  • 研发的某些“很简单”的代码变更,测还是不测,不测的话风险怎么控制;

  • 某些版本交付,都经过大量的测试,但谁能保证线上有多大风险或还有多少潜在的风险;

  • 随着自动化测试程度的不断提升,越来越多的质量保障无人介入,但自动化测试的有效性谁去保证(当前更多考虑的覆盖率或者用例是否通过);

  • 某些类型的自动化或测试执行,长期召回不了问题,逐渐成为“鸡肋”,但是又不敢轻易“下线”;等等。


带着这些问题,百度智能测试团队于2019年底开始致力于研究质量度模型,希望通过质量度模型可以实现:


  1. 通过获取研发过程数据+自测+自动化数据,用质量度模型决策是否需要跟进后续测试,以减少不必要的投入和降低测试周期;

  2. 通过质量度模型,获取所有测试行为后的数据+研发数据,预估风险度,以进一步提升交付团队对风险把控的信心和召回可能漏出的问题;

  3. 通过质量度模型+自动化测试任务特点,智能决策任务是否需要执行、执行哪些用例或多长时间,以实现性价比高的测试,从而提升效能。


经过一年多的研究、开发和实验,百度智能测试团队借助强大的质效中台提供标准化、规模化的数据+风险模型研究,在百度系的众多业务线得到试点和落地,现总结成系列文章(主要解决1和2两个问题,质量度模型与自动化测试任务的解决将在智能构建系列文章呈现),推送给同行,希望能够一起交流和探讨。


导读:通过引入质量度模型,依托数据+模型的客观评估,实现了自主测试的转化和召回能力的提升。为了在更多业务落地和策略迭代,需要进行大规模的落地,但会像策略算法研究一样,遇到流程、特征挖掘、数据采集、模型训练和标准规范等一系列问题,百度智能测试团队基于百度优质的质效中台形成了一套成熟的方案和规模化的落地经验。

本文主要介绍依托流程管控、白盒、数据、策略、标注中台的紧密结合,通过配置化业务接入、标准化提测准入流程、统一化数据检索、规范化质量度风险预估和标注反馈机制,帮助业务低成本接入,实现质量度模型的快速落地。

一、背景介绍


质量度模型在商业平台业务的落地,带来了自主测试的转化和召回能力的提升。为了将此项能力应用在更多的业务线,带来更大业务收益;进一步反哺策略进行准确性提升,不断迭代质量度模型,因此,对质量度模型依赖的各项能力进行了梳理。

▲点击图片放大查看

从图中可见,实现质量度模型的落地,本质上依赖六方面能力的建设:

(一)流程管控:对质量度模型进行整体流程控制、保存过程凭证并提供可视化能力。需要通过流程管控将质量度模型的触发、模型结果的校验有机整合在研发测试过程中,结合自主测试的判定依据,形成测试类型的转化。

(二)特征挖掘:基于业务特点,需要对质量模型依赖的特征进行挖掘,抽象为通用特征和业务自定义特征两部分。通用特征涵盖研发过程工具链的所有信息,如构建、项目需求管理、人员属性等;自定义特征则依据各业务的不同特点,覆盖测试活动、代码白盒分析、覆盖率、代码变更等信息。

(三)特征数据采集:模型的特征数据往往有多个来源,为了保障特征数据快速、方便进行接入,需要多种数据采集方式:API接入、agent接入、远端接入、配置接入、同步接入等,从而保障业务特征数据快速接入。

(四)特征数据存储与处理:特征数据需要有统一的数据托管和数据服务,如数据检索、数据标签及数据场景管理等。此外,还需要对样本数据或特征数据建立血缘关系,形成项目评估的完整数据集。

(五)策略管理:依托策略管理,可以更方便的托管各业务的策略模型,同时快速完成工具的服务化;在模型选型方面,无论是规则建模或者数据建模,都需要专业的模型选取、模型训练和模型调优等工具辅助迭代,从而提升模型准确度。

(六)标注中台:建立模型的本质,是一个不断完善和不断修正的过程。因此,不断提供置信的训练样本集,是提升质量度模型准确率和召回率的重要手段。需要通过标注中台对策略特征、结论进行可视化展现和标记,为模型训练提供丰富样本数据。

通过以上分析可以看出,实现质量度模型的规模化落地,对于业务部门来讲,门槛较高:因为除了业务项目特征数据外,还需要建立流程、数据采集、数据存储、模型迭代、标注反馈等各项能力。

为了实现质量度模型的低成本接入和稳定高效执行,我们对质效中台进行了有效的整合和改造,实现了统一的工程化方案。

二、解决思路
1、利用中台优势,统一负责流程整合、特征数据生产、数据采集、数据处理、建模、模型训练,形成标准化方案;

2、业务团队利用专项测试中台能力,构建完备有效的CICD能力,不断挖掘风险特征,进行风险的持续迭代。

下图为各质效中台的组织和关系,各中台能力介绍及在质量度模型应用中的作用,如下所述:

▲点击图片放大查看

流程管控中台:作为准入/准出的统一控制台和可视化平台,一方面通过统一的插件,实现入口收敛和数据格式标准化;另一方面,通过合理的流程设置,适配多种开发模式。同时,由于准入/准出控制+质量度模型评估,整个链路涉及多次交互,因此在质量度落地中,性能是其核心要解决的问题。

为了提升整体性能体验,不仅对关联各方提出了性能要求,中台自身也通过合并请求、异步提交、并行处理等方式来尽可能降低耗时,从而保障性能达标。

专项测试中台:各业务借助专项测试中台来进行完备的测试活动,测试活动的数据同时是质量模型的重要数据特征。因此,为了能将各测试中台的数据进行采集,开发了各项数据接入能力;

如API接入、agent接入、配置接入、远端接入等,从而可以将测试输入、测试输出、测试分析等数据,利用标准格式写入数据中台,同时在数据中台对各种数据进行血缘关系的建立。

白盒分析中台(数据采集):白盒分析数据,包括代码特征、调用依赖、覆盖度等,这些是最客观的数据,也是质量度模型最为重要的数据来源。

白盒分析中台针对各种语言引入抽象语法树和函数调用链分析器,产出多项静态代码分析特征,如变更函数出入度、圈复杂度、服务依赖关系等;通过动态白盒分析,产出了覆盖率、trace和日志等动态特征,这些动静态特征以标准格式存储在数据中台,作为质量度模型的重要特征。

数据中台:数据中台除了提供es、db、afs等多种数据存储能力外,最为重要的是,数据中台要解决数据特征标签管理、数据血缘关系管理,从而将各方割裂的数据形成统一的数据服务。同时,通过抽象不同的质量度数据使用场景,提供了配置化的数据场景检索能力。

策略中台:策略中台提供策略托管服务,同时实现了策略的注册、训练、调试、调度执行、结果检索回调等功能,为策略开发者提供了策略快速开发、迭代的服务化能力。

同时通过规范化标准输入输出,降低了质量度模型应用中的策略运行时环境和策略适配成本。此外,策略中台通过通讯协议升级,大大优化了策略调度性能,也保障了质量度模型应用的性能体验。

通过以上中台能力的优化和协同,可实现质量度模型的以下技术目标:
  • 配置化业务接入
  • 标准化提测准入流程
  • 统一化数据采集、存储和处理
  • 标准化策略开发、训练、迭代
  • 规范化质量度风险预估和标注反馈机制

三、技术方案

(一)整体的交互流程

▲点击图片放大查看

如图,通过CI和测试环节,将需求特征、研发特征、提测信息、专项测试中台特征等数据进行采集并以标准格式持久化在数据中台,之后通过流程管控中台统一的插件入口,触发测试准入、准入模型评估,模型通过对所有相关特征的检索、聚类,产出项目质量风险评估结论。


之后,流程控制中台依据质量模型结论,进行后处理,如通过、打回、重试等,同时要求项目负责人对模型结果进行标注反馈,并将反馈结论自动并入训练样本集,从而形成模型触发、模型决策、模型反馈的完整闭环和标准化流程。

(二)方案细节
1)流程控制

▲点击图片放大查看

整个过程,借助流程管控中台来实现模型的全生命周期管理,并实现测试类型的切换。

具体而言,主要实现以下功能:

模型特征可视化:在流程管控平台,实现了模型依赖特征的抽象,并可通过可视化页面,与模型、数据场景实现数据互通。

实时特征数据采集并入库:大部分的特征可以在CI任务环节进行采集和入库数据中台。但是对于研发周期、需求提测信息等特征只能在提测准入时实时获取。为了保证这些特征数据的获取和入库性能,在对这些特征进行采集计算时,采用缓存+并行计算方式,实现快速获取特征;特征推送入库时,则重点对推送失败、超时等异常情况下的降级预案进行了处理;

模型触发及后处理:模型触发并给出结论后,流程管控中台对不同的结论会做不同的后处理动作,后处理中会进行自主测试类型的转换和提测流程状态的转换。

此外,为了保证整体的低使用成本,流程管控中台还从通用性和易用性上进行了优化。在功能满足条件下,兼顾整体性能、体验。
 
2)数据处理
数据处理方面,主要需要解决两方面问题:数据采集及关联关系、多维数据检索。

数据采集方面,对来源数据和数据中台的数据表schema建立了映射,并且通过队列来对接统一的数据源,实现数据生产、消费的解耦。其次,采用rulemap规则映射,对源数据进行映射配置,确保准确对齐schema数据定义。

▲点击图片放大查看

数据检索方面,主要支持多层级的数据检索,如关联关系链路检索、精确检索、宽泛检索、自定义检索,从而支持不同的质量度特征数据的检索需求。

如下图可见详细的检索过程:用户定义检索场景下各层检索能力的检索条件后,首先根据关联关系链路进行并行检索,获取的关联数据结合配置的检索条件,进行细粒度精确检索;此外,通过宽泛检索和自定义检索对精确检索结果进行补充,解决多场景下精确检索无法完整检索数据问题。

通过对各层检索结果进行merge,形成一个完整的质量度模型数据,并持久化到大宽表。以此形成通用的,支持多维查询的数据检索能力,为质量度模型提供完整的特征数据。

▲点击图片放大查看

3)质量度模型
风险预估高低或项目能否自测问题的本质是项目分级的一个0/1化决策问题,也就是分类问题给出一个样本x,判断样本所属的类别y,分类器就是映射函数f: y=f(x)。这个函数需要根据以往的经验(大量已知类别的样本集)来构造的,构造的过程就是模型训练的过程。模型生成包含模型训练和模型预测两部分。

i. 模型训练
通过数据检索服务查询指定时段的历史数据,对数据进行处理,针对多模块粒度,需要依据每个特征的聚合规则进行值的聚合计算。依据入库的特征和数据量,决定采用那种哪种模型,目前应用人工规则、逻辑回归与决策树模型。

ii. 模型计算
分类算法通过对已知类别训练数据集的分析,从中发现分类规则产出模型,以此预测新数据的类别。
对于线上数据通过数据检索服务查询实时数据,并对数据进行处理,包括多模块的聚合计算。使用离线训练的模型或者人工规则进行预测,按指定格式返回给提测入口。

iii. 风险评估
产出风险评估结果得分,同时返回风险报告。基于不同产品线抽象出通用特征与私有特征,开发完成通用报告框架,进行风险点的可视化,同时支持标注功能完成闭环。

4)配置化接入
在质量度项目进行推广过程中,面对的一个现实问题就是不同产品线不同业务方向所进行的测试活动均有所不同,也就意味着模型特征不同。

为了更好的系统易用性,这里进行特征配置可视化。将风险特征拆分为通用特征和业务自定义特征,业务线自行配置。进行特征配置的主要的目的是结合统一数据检索,进行特征数据获取,使特征选取与配置对业务透明,新增业务方向可复用已有配置,特征变更在线审核,流程精简。

同时,质量度模型开发完成或复用已有模型后,流程控制中台自动在接入业务方向上线模型,无需人工介入。

▲点击图片放大查看

四、当前效果及后续计划

助于质效中台在流程控制、特征挖掘、数据处理、建模能力等方面的有机结合,质量度模型整体可以实现配置化接入、统一化数据处理和标准化质量度风险评估,业务团队则更聚焦于业务自身的CICD能力建设。

通过业务完备有效的CICD能力,利用模型+数据客观的对项目风险进行评估,经过2个Q的运行,当前效果如下:
1、业务在自定义特征数据具备情况下,可以实现小时级模块接入,2个Q累计接入20+业务,服务数1000+;
2、模型客观评估准确性达到94%,召回率达到90%;
3、8%左右的提测可以有效转为自主测试,大幅提升了项目交付吞吐;
4、得益于代码白盒分析、增量代码覆盖等客观特征的建设,质量度召回了1%+提测,并成功召回30+bug;
为了提升质量度模型的准确率和召回率,一方面会尝试探索新的风险评估模型、并对历史badcase进行review和修正,另一方面也会深度跟白盒能力进行合作,挖掘更多特征信息,如代码变更性能风险、稳定性风险、复杂度、影响面等。

同时,业务上在探索无人值守模式,即QA在项目或需求测试过程中,完全由机器执行,全程无人干预的情况。质量度模型作为质量评估的重要客观手段,将是业务进行无人值守的重要支撑能力,因此质效中台和质量度模型也会跟业务深入合作,支撑业务质效建设向测试无人值守前进。


----------  END  ----------

招聘信息

百度MEG质量效能平台致力于打造业界领先的智能化测试技术体系,长期招聘测试开发及JAVA、C++、移动软件开发、机器学习/数据挖掘/自然语言处理工程师,坐标北京、上海、深圳。

欢迎感兴趣的同学发送简历至:

QA-talent@baidu.com


end



点个“在看”少个 bug 👇

浏览 29
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报