|
测试用例作为质量保障的核心,影响着研发-测试-发布-上线的全过程,如单元测试用例、手工测试用例、接口自动化用例、UI 自动化用例等,但用例撰写的高成本尤其是自动化用例,导致了用例的可持续积累、更新和迭代受到非常大制约。长久以来,我们在用例创作技术上一直未有过很大的突破,协助 QA 做好最基本的工作。
直到2023年,生成式 AI 的到来,为用例智能创作带来了可能,借由 AI 技术,尤其是生成式 AI,一切就变得不一样了。
我们可以通过 AI 更好地理解需求,理解 UI 页面,理解接口访问的含义,智能化的生成测试用例,辅助研发测试提效的同时借由数据飞轮不断巩固沉淀测试经验。
为此,百度移动生态质量效能部启动了 QAMate 用例智能创作项目,从基于需求生成脑图用例,基于真机操作的 UI 自动化用例录制回放,基于流量或代码生成接口自动化用例三个场景深耕,通过 AI 技术实现测试用例的智能创作,进而辅助研发测试提效,为业务质量保驾护航。 基于需求生成脑图用例:输入需求,一键生成测试用例,2个月生成并被采纳用例达2.6w 条移动生态事业群组大部分业务都通过思维导图(脑图)来编辑测试用例,但是不同经验水平同学编写的测试用例参差不齐。业务和测试经验越丰富的 QA 同学可以写出更好的测试用例,反之则有可能会出现遗漏或者冗余,带来质量问题或者降低测试效率,但遇到研发人员流动则会加剧这个问题。但好在,生成式 AI 的快速发展,使得其已经具备了处理这一复杂任务的能力,其不仅能有效持久化业务及测试经验,辅助 QA 快速编写完备的测试用例,还可以通过标准化的生成输出,使得用例更易于理解及传承。QAMate 项目组基于文心大模型,通过构建针对测试用例智能生成的标准化开放共建的 Prompt 层,基于成熟的脑图用例产品构建同测试人员直接闭环的数据飞轮,及测试&业务经验外挂知识库,实现了基于需求生成脑图用例的能力。当前 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 这类不易理解的代号)
其实不难看出,UI 自动化用例的撰写成本很高,而且不仅撰写成本高,稳定性也是影响提效的一大难题。据此前构建的 Fast UI 自动化平台数据统计,UI 用例执行的稳定性仅70%不到,其核心问题在于 XPath 控件定位容易随 APP 版本不同、机型不同而变得不同,导致用例执行不稳定。而 APP 业务迭代频繁,也让 UI 用例维护、撰写和执行成本直线上升。QAMate 项目组以 AI 原生为第一视角,直接抛弃了业界惯用的 XPath 的控件定位技术,基于 YOLOv5对象模型构建底层图标&组件模型、整合 OCR 能力、多控件布局算法及多真机云控技术,实现了 APP UI 用例录制回放能力,让用户只需要点点手机就能完成 UI 自动化用例的编写,直接将单 UI 自动化用例步骤编写的成本由40s/步骤降低至了 5s/步骤,用例整体执行的平均稳定性达到了 90%。以视觉 AI 技术为基底,使得我们可以以人的视角自动化操控 APP,从而无视 APP 跨版本、跨机型兼容等问题,使得用例编写成本直线下降同时用例执行稳定性直线上升。进一步,通过用例产品闭环用户反馈、自动化执行结果,基于控件准召等指标实现底层视觉模型的自动迭代升级,形成数据飞轮,进而得以持续支撑快速迭代的 APP 业务。最后,通过将录制回放能力集成于同一工具,使得编写及执行环境高度一致,再基于此构建稳定可靠的云真机控制系统,保障自动化用例高效稳定执行。基于流量生成接口自动化用例:接口有流量,就有用例,用例生成占比达 76%服务端接口自动化测试是服务端质量保障非常重要的一个手段,但是服务端接口众多,用例编辑和维护的成本非常的高,虽然自动化手段对于质量保障行之有效,但是也带来了很大的人力成本。依托生成式 AI,QAMate 实现了基于线上流量的接口自动化用例生成能力,让服务端 QA 同学不用再花费大量人力去补充接口自动化回归用例,只要有线上流量进来,自动生成接口自动化用例。■基于多种引流方式构建流量接入->分析->用例生成的端到端全流程自动化解决方案,用例编写维护成本节省70%■提供配置化的流量采样和用例生成策略能力,生成用例的覆盖率超过人维护用例■基于文心大模型和业务外挂知识库实现个性化的测试诉求识别和用例转化能力,生成的用例直接满足业务诉求,无需再人工调整以上基于流量的用例生成只能解决回归测试用例编写和维护的问题,在全新功能的场景下需要寻找其他的解决方案。我们针对这一场景实现了基于代码分析和接口文档变更筛选&生成待测试用例的方案,在研发自测、服务端新功能迭代测试等阶段应用,辅助 RD 和 QA 高效完成新功能自测和测试,提升用例规范性、和测试质量。回顾既有的工作,我们认为,一个 AI 原生的产品,一定要找到自己的数据飞轮,通过数据让自己的能力不断迭代升级,而不是纯靠人工迭代;一定要抛弃方向上的惯性思维,用 AI 手段从人的视角上找解法;此外,还需要想方设法打磨好产品体验,降低用户使用成本,这样才有机会让能力落地,让用户用起来,从而让飞轮转起来。展望测试用例智能创作方向,能用 AI 技术重构的,远远不止于测试用例的智能生成。测试用例落到研发测试环节,存在一个自有的生命周期:测试用例新引入阶段(新功能或者回归用例的撰写/生成)->执行阶段(新功能/回归用例的签章执行)-> 入库阶段(用例正式入到回归用例集合)-> 回归用例集合(通过筛选进入到当次正式的回归用例集合)->消亡阶段(随着项目的下线或者更改,用例从回归用例集合中删除),这样形成了用例的生命周期。AI 技术不仅能重塑用例撰写过程,我们相信,未来 AI 还能辅助用例的执行、转化、更新和消亡等过程,进而为研发测试保质提效。
|