测试用例作为质量保障的核心,影响着研发-测试-发布-上线的全过程,如单元测试用例、手工测试用例、接口自动化用例、UI 自动化用例等,但用例撰写的高本钱尤其是自动化用例,导致了用例的可持续积累、更新和迭代受到非常大制约。
长久以来,我们在用例创作技能上一贯未有过很大的打破,帮忙 QA 做好最基本的事情。

直到2023年,天生式 AI 的到来,为用例智能创作带来了可能,借由 AI 技能,尤其是天生式 AI,统统就变得不一样了。

我们可以通过 AI 更好地理解需求,理解 UI 页面,理解接口访问的含义,智能化的天生测试用例,赞助研发测试提效的同时借由数据飞轮不断巩固沉淀测试履历。

为此,百度移动生态质量效能部启动了 QAMate 用例智能创作项目,从基于需求天生脑图用例,基于真机操作的 UI 自动化用例录制回放,基于流量或代码天生接口自动化用例三个场景深耕,通过 AI 技能实现测试用例的智能创作,进而赞助研发测试提效,为业务质量保驾护航。

AI原生实践测试用例创作探索

基于需求天生脑图用例:输入需求,一键天生测试用例,2个月天生并被采纳用例达2.6w 条

移动生态奇迹群组大部分业务都通过思维导图(脑图)来编辑测试用例,但是不同履历水平同学编写的测试用例参差不齐。
业务和测试履历越丰富的 QA 同学可以写出更好的测试用例,反之则有可能会涌现遗漏或者冗余,带来质量问题或者降落测试效率,但碰着研发职员流动则会加剧这个问题。
但好在,天生式 AI 的快速发展,使得其已经具备了处理这一繁芜任务的能力,其不仅能有效持久化业务及测试履历,赞助 QA 快速编写完备的测试用例,还可以通过标准化的天生输出,使得用例更易于理解及传承。

QAMate 项目组基于文心大模型,通过构建针对测试用例智能天生的标准化开放共建的 Prompt 层,基于成熟的脑图用例产品构建同测试职员直接闭环的数据飞轮,及测试&业务履历外挂知识库,实现了基于需求天生脑图用例的能力。

Prompt 层开源共建:采取开放 Prompt 层同各业务同学协同共建的模式,使得分业务可以规范输入输出、规则明确、针对特定场景优化 Prompt,从而最大程度引发大模型效果数据飞轮构建:完成了「用例天生 -> 天生用例采纳/删除;人工改动/添加用例 -> 业务个性化模型演习」数据飞轮的构建,经业务线评估,启用个性化模型的天生效果会优于92%通用模型的输出效果。
建构外挂知识库:持久化测试履历&业务知识,进一步增强了天生效果

当前 QAMate 已经支持了基于需求文本、表格及整份需求文档天生测试用例,并支持用户构建专属 Prompt、业务履历知识库来定向提升天生效果。

APP UI 用例录制回放:点点手机,搞定 UI 自动化用例,累计支撑1.5w 条 UI 用例编写,均匀稳定性90%+

众所周知,移动端 APP 的 UI 测试耗时耗力,尤其是集成回归阶段,须要把 UI 测试用例做一遍各处回归,乃至还须要在多种不同机型上重复这个过程。
为理解决这个噩梦,过去数年,不管是业界还是百度内部,都考试测验了各种方案,个中最有代表性、影响最广的便是 Appium 自动化测试框架,但是落到实处,Appium 也只是办理了 UI 用例能不能自动化跑起来的问题,基于它构建的各种方案远没有真正达成为业务提效的终极目标。

如下图所示,为文心一言输出的,用 Appium 来编写百度 APP 首页搜索框 UI 自动化用例要做的事情,包括不限于:

安装和配置 Appium 环境、连接设备到 Appium 做事器等启动 XPath 元素定位功能,查找搜索框的 XPath(类似 com.baidu.Baidu:id/search_button 这类不易理解的代号)接着编写一大段 Python 脚本等等

实在不丢脸出,UI 自动化用例的撰写本钱很高,而且不仅撰写本钱高,稳定性也是影响提效的一大难题。
据此前构建的 Fast UI 自动化平台数据统计,UI 用例实行的稳定性仅70%不到,其核心问题在于 XPath 控件定位随意马虎随 APP 版天职歧、机型不同而变得不同,导致用例实行不稳定。
而 APP 业务迭代频繁,也让 UI 用例掩护、撰写和实行本钱直线上升。

QAMate 项目组以 AI 原生为第一视角,直接抛弃了业界惯用的 XPath 的控件定位技能,基于 YOLOv5工具模型构建底层图标&组件模型、整合 OCR 能力、多控件布局算法及多真机云控技能,实现了 APP UI 用例录制回放能力,让用户只须要点点手机就能完成 UI 自动化用例的编写,直接将单 UI 自动化用例步骤编写的本钱由40s/步骤降落至了 5s/步骤,用例整体实行的均匀稳定性达到了 90%。

以视觉 AI 技能为基底,使得我们可以以人的视角自动化操控 APP,从而忽略 APP 跨版本、跨机型兼容等问题,使得用例编写本钱直线低落同时用例实行稳定性直线上升。

80%以上的自动化测试场景,都是非常大略直接的单控件检测和点击操作。
培植以视觉建模、识别能力为核心的通用控件定位算法办理。

视觉元素建模

视觉特色匹配寻址

对付剩余的20%场景,每每存在大量繁芜的多控件协同检测和繁芜操作办法。
培植综合利用视觉、dom 处理能力的多控件协同控件定位算法进行办理。

基于多种元素重组页面构造建模

多控件 布局&特色 协同寻址

进一步,通过用例产品闭环用户反馈、自动化实行结果,基于控件准召等指标实现底层视觉模型的自动迭代升级,形成数据飞轮,进而得以持续支撑快速迭代的 APP 业务。

末了,通过将录制回放能力集成于同一工具,使得编写及实行环境高度同等,再基于此构建稳定可靠的云真机掌握系统,保障自动化用例高效稳定实行。

基于流量天生接口自动化用例:接口有流量,就有用例,用例天生占比达 76%

做事端接口自动化测试是做事端质量保障非常主要的一个手段,但是做事端接口浩瀚,用例编辑和掩护的本钱非常的高,虽然自动化手段对付质量保障行之有效,但是也带来了很大的人力本钱。

依托天生式 AI,QAMate 实现了基于线上流量的接口自动化用例天生能力,让做事端 QA 同学不用再花费大量人力去补充接口自动化回归用例,只要有线上流量进来,自动天生接口自动化用例。

▎关键实践

基于多种引流办法构建流量接入->剖析->用例天生的端到端全流程自动化办理方案,用例编写掩护本钱节省70%

低本钱:eBPF 实时引流办法,用户仅需知道 BNS 就可以配置天生任务,一键完成总引流到天生case的事情,无需任何开拓事情多渠道:供应 eBPF 流量实时录制、XSTP GoReplay 引流、用户流量文件上传等流量接入办法,覆盖不同业务形态的模块能力强:打破长连接、SSE、chunked 等接口引流能力,支持点到点、inbound 录制模式,供应单接口录制上限等接口录制丰富度干系配置

供应配置化的流量采样和用例天生策略能力,天生用例的覆盖率超过人掩护用例

流量采样策略:供应精简采样、优先采样、普通采样、高覆盖采样4种标准采样模式case 天生策略:供应列举值遍历、边界值非常、必填项非常、列举值非常、字段类型非常等多种非常策略相对原人工掩护 case,自动天生的 case 函数覆盖率从14.8%->46.7%,行覆盖率从9.9%->34.7%。
单 API 行覆盖率从66%->74.3%

基于文心大模型和业务外挂知识库实现个性化的测试诉求识别和用例转化能力,天生的用例直接知足业务诉求,无需再人工调度

大略的 LUI 支持繁芜的用例修正能力:通过 LUI 和 LLM 技能识别用户对付流量用例要求参数、相应断言以及特定场景的繁芜修正诉求,担保用例在其他环境的可运行性和问题拦截能力业务知识库:构建业务知识库存储不同业务的 case 特色,在天生过程中通过检索业务知识,转化为天生诉求的办法,实现天生出知足业务诉求的用例

LUI 利用案例

基于接口/代码天生接口用例:

有了接口文档/代码,就能天生用例

以上基于流量的用例天生只能办理回归测试用例编写和掩护的问题,在全新功能的场景下须要探求其他的办理方案。
我们针对这一场景实现了基于代码剖析和接口文档变更筛选&天生待测试用例的方案,在研发自测、做事端新功能迭代测试等阶段运用,赞助 RD 和 QA 高效完成新功能自测和测试,提升用例规范性、和测试质量。

▎关键实践

接口文档天生:基于调用链、大模型、业务变更代码影响的接口剖析能力,支持直接从变更代码挖掘出影响的接口文档,使得没有标准化、平台化的接口文档管理能力的业务也可接入

业务知识库:通过离线的历史 case 剖析和手动录入的办法构件字段字典信息、断言和参数特色等业务知识,办理新接口难以天生精确参数值的问题端到端方案:天生推举过程融入业务 RD 和 QA 的日常事情流程中,业务无需调度或增加流程,在原有事情流程中就能直策应用到天生好的用例结果

总结

回顾既有的事情,我们认为,一个 AI 原生的产品,一定要找到自己的数据飞轮,通过数据让自己的能力不断迭代升级,而不是纯靠人工迭代;一定要抛弃方向上的惯性思维,用 AI 手段从人的视角上找解法;此外,还须要费尽心机打磨好产品体验,降落用户利用本钱,这样才有机会让能力落地,让用户用起来,从而让飞轮转起来。

展望测试用例智能创作方向,能用 AI 技能重构的,远远不止于测试用例的智能天生。
测试用例落到研发测试环节,存在一个自有的生命周期:测试用例新引入阶段(新功能或者回归用例的撰写/天生)->实行阶段(新功能/回归用例的签章实行)-> 入库阶段(用例正式入到回归用例凑集)-> 回归用例凑集(通过筛选进入到当次正式的回归用例凑集)->消亡阶段(随着项目的下线或者变动,用例从回归用例凑集中删除),这样形成了用例的生命周期。

AI 技能不仅能重塑用例撰写过程,我们相信,未来 AI 还能赞助用例的实行、转化、更新和消亡等过程,进而为研发测试保质提效。

(本文由百度移动生态质量效能部分享)​​​​