1、从代码框架到智能化测试,UI自动化的建设之路张永杰|科大讯飞张永杰科大讯飞 高级测试工程师8年移动端开发测试经验,对各类客户端的UI测试、专项测试、性能测试等,有较为丰富的探索及实践,负责集团基于移动客户端的本地和平台层工具建设,推动测试技术在集团内的推广落地,助力集团测试人员持续提效。目 录CONTENTSI.背景:UI自动化为什么难落地II.我们是如何推进UI自动化落地的III.最终解决方案:AITest平台IV.内部应用成效V.未来展望:走向完全的自动化背景:UI自动化为什么难落地PART 01从每年的需求调研来看,UI自动化呼声一直不减UI自动化的历史落地情况多而不精的自动化方案UI自
2、动化看起来很“简单”,市面上各种开源的自动化框架搭配起海量的入门级教程,导致前期各业务产线几乎“人手一个”自动化测试“自研”框架不断的冗余投入建设难以为继的维护需求由于各产线间的信息并不总是共通的,面对相似的需求,可能仍然会不断的有冗余的投入建设由于产线的UI自动化用例大部分采用代码框架的形式进行建设,而各人的代码水平良萎不齐,导致在人员变动的时候,自动化测试用例往往面临难以为继的处境从可选方案来看UI自动化为什么难落地我们是如何推进UI自动化落地的?PART 02UI自动化推进的整体演进策略统一代码框架解决不同产线闭门造成带来的人力冗余平台可视化管理解决自动化相关数据资产的可视化管理、流程类
3、的场景互联互通智能化降低门槛,提高UI自动化的编写效率,降低用例的后续维护成本step1:统一标准-支持多种测试场景的应用层自动化开发框架定位:自动化场景能力覆盖的应用级框架外围 支持日志 系统多端 互动底层 支持Android Win 国产系统 iOS 小程序驱动 能力远端 调用场景 能力用例 分发OC R驱动控件 驱动图像 驱动并行 执行测试 报告自动 邮件范式 约束一键部署AI辅助生成case平台运行支持生态支持step2:平台建设-更高一层的需求用测试平台来解决可视化结果管理01 自动化的成功率曲线是什么样的?自动化发现的问题数趋势如何?自动化的执行次数如何?云端硬件池共享02 本地机
4、器不够怎么办?标准化能力提供和统一化演进03 自动化框架的合理设计和演进技术门槛很高怎么办?各业务产线不同业务怎么保证产出水平相近?数字资产管理04 自动化用例怎么多人协作完成?每月新增用例数是多少?step3:智能化在线编写支持-降低门槛,提高效率010302AI技术融合通过大模型驱动的自然语言转低代码,实现智能化测试的突破,降低技术门槛,提高测试效率。动态交互优化采用左右分栏“翻译式”脚本编写方式,实现自然语言与低代码之间的双向映射,提升用例可维护性。兼容性设计结合Git与平台双模式协作,无缝对接CI/CD流程,确保自动化测试的稳定性和可靠性。最终解决方案:AITestPART 03我们的
5、产品愿景-“三零”测试:零人工介入(全自动)、零场景遗漏(智能遍历)、零延时响应(实时分析)产品主要功能左右分栏“翻译式”脚本编写支持多种元素类型在线编辑代码和语义编写的混合支持云端和本地设备的实时控制功能测试到自动化链路打通PO设计模式的产品化呈现从需求到功能用例的智能一键实现智能翻译式的自动化编写平台多步骤自动转换,从需求到自动化用例的全能力要素实现实现点解析_大模型token数优化:输入裁剪为什么要对大模型的输入进行裁剪?010203费用问题越高的token会产生更多的费用,对高频次的使用来说,裁多少几乎等于省了多少钱生成效果问题并不是给的信息越多越好,大量的信息下,会干扰大模型的生成,
6、生成效果反而会差一些生成速度问题越长的token,传输的时间越长,会拖慢大模型的生成速度在UI自动化中,最大的token产生来自于基于Dom技术的页面信息,裁剪手段如下:-删除视界外的元素信息-删除对大模型决策无用的属性,如:class,focusable,focused,scrollable,long-clickable等-删除非属性值均为空的节点元素-。实现点解析_大模型token数优化:输出裁剪通过在提示词内进行约束,仅允许输出关键信息,例如,虽然大模型可以输出要元素完整的所有信息,但仍然约束只给出一个唯一标