ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

AI测试进阶:业务规则与多模型选择如何提升自动化测试智能水平

2026/8/10 14:38:38 拓冰建站 浏览量
AI测试进阶:业务规则与多模型选择如何提升自动化测试智能水平

1. 项目概述:当AI测试遇上业务规则

最近在搞自动化测试的朋友,估计都绕不开一个话题:AI。从脚本录制回放到元素定位,AI的介入确实让测试工作轻松了不少。但不知道你有没有遇到过这样的尴尬:AI识别出的按钮,逻辑上是对的,但业务上却不对。比如,一个购物车页面,AI能精准找到“结算”按钮,但它不知道,如果用户没登录,这个按钮应该先跳转到登录页,而不是直接弹出支付窗口。这就是典型的“AI懂技术,但不懂业务”。

我最近深度体验了优测云真机平台新推出的“AI能力升级”,核心就两点:Rules(规则)多模型选择。这可不是简单的功能迭代,在我看来,它标志着测试领域的AI应用,正从“通用感知”迈向“业务认知”的新阶段。简单说,以前是让AI“看见”并“操作”,现在是让AI“理解”并“决策”。对于测试工程师、尤其是业务测试负责人和自动化测试架构师来说,这意味着我们可以构建更聪明、更贴合实际业务流的自动化测试脚本,把人力从繁琐、重复且容易出错的校验逻辑中解放出来。

2. 核心升级解析:从“感知”到“认知”的跨越

这次升级的核心,是给AI测试引擎装上了“业务大脑”和“模型调度中枢”。我们拆开来看,这两部分具体解决了什么问题。

2.1 Rules:为AI注入业务灵魂

传统的AI元素定位或操作,依赖于计算机视觉和机器学习模型对屏幕像素的分析。它能识别出这是一个“按钮”,上面有“提交”文字,但它不理解这个“提交”在当前的业务流程中意味着什么,需要满足什么前置条件。

Rules(规则)的引入,就是为了填补这块认知空白。它允许测试人员将业务逻辑、校验点、流程约束,以规则的形式预先定义并注入到AI执行引擎中。

2.1.1 Rules的工作原理与价值

你可以把Rules想象成测试AI的“操作手册”或“决策树”。当AI在执行测试步骤时,不仅会看“屏幕上有什么”,还会同步查询与之关联的Rules,根据规则来决定“现在应该做什么”以及“做完之后对不对”。

举个例子,一个金融APP的转账流程测试:

  • 无Rules的AI:识别“转账”按钮 -> 点击 -> 识别“收款人输入框” -> 输入 -> 识别“金额输入框” -> 输入 -> 识别“确认”按钮 -> 点击。结束。它不会检查余额不足、收款人不存在、超限额等业务场景。
  • 有Rules的AI:我们可以预先定义几条规则:
    1. 规则A(前置校验):点击“转账”前,检查当前页面顶部是否显示“已登录”状态。若未登录,则执行“先登录”流程。
    2. 规则B(过程校验):在“金额输入框”输入后,检查页面是否弹出“余额不足”的Toast提示。若出现,则记录该用例为“失败”,并截图保存提示信息,同时停止后续输入操作。
    3. 规则C(后置断言):点击“确认”按钮后,检查页面是否跳转到“转账成功”页面,且该页面包含特定的成功标识元素(如“转账申请已提交”文案)。若跳转失败或标识不存在,则判定为失败。

这样一来,AI测试就不再是盲目的“点点点”,而是变成了有判断、有分支的智能工作流。其核心价值在于:

  • 提升脚本健壮性:脚本能够处理业务异常流,而不仅仅是阳光普照的正常流。
  • 增强测试深度:将业务断言集成到执行过程中,实现“边执行边校验”,测试覆盖更立体。
  • 降低维护成本:业务规则变更时(比如密码错误提示语从“密码错误”改为“账号或密码不正确”),很多时候只需更新对应的Rule,而无需重录或大面积修改脚本。

2.1.2 Rules的常见类型与定义方法

在优测云真机的体系中,Rules通常可以通过图形化界面或领域特定语言来配置。常见的规则类型包括:

  1. 存在性规则:断言某个特定元素(如成功提示、错误弹窗)应该出现或不应该出现。
  2. 属性规则:检查元素的特定属性值,例如,按钮的enabled状态应为false(不可点击),输入框内的文本应等于某个预期值。
  3. 页面状态规则:检查当前页面的URL、Title或某个关键标识,以确认页面跳转是否正确。
  4. 自定义脚本规则:对于更复杂的逻辑,可以嵌入一段简短的脚本(如JavaScript或Python)来执行自定义校验,并返回布尔值结果。

定义Rule时,关键是要明确触发时机(在哪个操作之前/之后检查)和校验内容(检查什么,预期结果是什么)。一个良好的实践是,将Rule与具体的测试步骤(Step)强关联,形成“操作-校验”闭环。

2.2 多模型选择:为任务匹配最合适的“眼睛”和“大脑”

如果说Rules是“业务大脑”,那么多模型选择就是为这个大脑配备了多双不同特长的“眼睛”和多个擅长不同思考模式的“子脑”。

2.2.1 为什么需要多模型?

AI模型不是万能的。不同的模型在精度、速度、资源消耗、以及擅长的任务类型上各有千秋。

  • OCR(光学字符识别)模型:有的擅长印刷体,有的擅长手写体,有的对复杂背景、艺术字体、模糊文字识别率高。
  • 元素定位模型:有的基于图标特征匹配快但泛化能力稍弱,有的基于深度学习泛化能力强但计算开销大。
  • 图像理解模型:有的能理解整体画面语义(如“这是一个购物页面”),有的擅长细粒度识别(如“这是商品价格标签”)。

在复杂的真实App界面中,你可能同时需要识别印刷体文字、不规则图标、以及判断整体页面布局。单一模型很难在所有场景下都表现最优。

2.2.2 智能模型调度策略

优测云真机的“多模型选择”智能化,体现在它并非让用户手动为每个步骤切换模型(那会非常繁琐),而是提供了智能调度机制。根据我的体验,其策略通常包括:

  1. 默认模型链:平台会内置一个默认的模型调用顺序。例如,先使用轻量级快速模型进行初步定位,如果置信度低于某个阈值(如90%),则自动切换到更精确但更耗时的重型模型。
  2. 基于元素类型的模型推荐:系统可能会根据你尝试定位的元素特征(如图标、纯文本按钮、带复杂背景的文本等),推荐最适合的模型类别。
  3. 历史成功率学习:平台会积累历史测试数据。如果某个模型在特定App的特定页面上对某类元素的识别成功率持续很高,后续在类似场景下可能会优先选用该模型。
  4. 用户自定义规则绑定:高级用户可以为特定的测试步骤或Rules显式指定偏好模型。比如,对于验证码识别这一步,强制使用某个专用的强OCR模型。

这种智能调度,目标是在识别准确率执行速度资源消耗之间取得最佳平衡,让测试执行既可靠又高效。

注意:模型切换本身有开销。频繁在不必要的场景下切换重型模型,反而会拖慢测试速度。好的智能调度,应该能准确判断“何时需要更强大的模型”。

3. 实操:构建一个融入Rules与多模型的AI测试流程

理论说得再多,不如动手试一次。我们以一个常见的“电商App用户登录-搜索商品-加入购物车”场景为例,看看如何利用新能力构建测试。

3.1 测试场景与规则定义

场景:测试用户登录后,搜索特定商品,并将其加入购物车。前置条件:App已安装,处于未登录的首页。

我们需要定义的Rules(业务逻辑)

  1. R1-登录状态检查:在执行任何购物操作前,断言当前为“已登录”状态。如果未登录,则触发登录子流程。
  2. R2-搜索有效性检查:输入搜索关键词并点击搜索后,断言结果页面至少包含一个商品条目,或显示“未找到相关商品”的友好提示。防止因搜索无结果导致后续步骤失败。
  3. R3-购物车状态更新检查:点击“加入购物车”后,断言页面上的购物车图标角标数字增加(或出现特定的动画反馈),并且商品详情页的“加入购物车”按钮状态可能变为“已添加”。
  4. R4-网络异常处理:为关键网络请求操作(如登录、搜索)设置超时规则。如果操作后长时间无页面响应,则判定为网络或服务器异常,记录错误并尝试恢复或终止测试。

3.2 在优测云真机平台中的配置步骤

假设平台界面提供了“测试步骤编排”和“规则库”功能。

  1. 创建测试用例:新建一个用例,命名为“电商核心流程:登录-搜索-加购”。
  2. 录制/编排基础步骤
    • 步骤1:启动App,进入首页。
    • 步骤2:点击“我的”标签。(触发R1规则检查)
    • 步骤3:在登录页输入用户名、密码,点击登录。
    • 步骤4:返回首页,点击搜索框。
    • 步骤5:输入关键词“无线耳机”,点击搜索。(触发R2规则检查)
    • 步骤6:点击第一个商品条目。
    • 步骤7:在商品详情页,点击“加入购物车”。(触发R3规则检查)
  3. 绑定规则
    • 步骤2(点击“我的”)后,关联R1规则。配置规则逻辑:检查页面是否存在“用户头像”或“用户名”元素。如果不存在,则跳转到预设的“登录子流程模块”执行。
    • 步骤5(点击搜索)后,关联R2规则。配置规则逻辑:等待结果页面加载完成后,检查是否存在“商品列表”容器元素 或 “无结果”提示元素。如果两者都不存在,则判定为页面异常,用例失败。
    • 步骤7(点击“加入购物车”)后,关联R3规则。配置规则逻辑:操作前记录购物车角标数字(或按钮文本),操作后等待短暂动画,再次检查角标数字是否增加(或按钮文本是否变为“已添加”)。若未变化,判定为加购失败。
    • 步骤3(登录)和步骤5(搜索)关联R4规则,设置超时时间为15秒。
  4. 配置模型策略(可选/智能)
    • 对于步骤2中识别“我的”标签(可能是一个图标),平台可能自动选用图标识别模型。
    • 对于步骤3中识别“用户名”、“密码”输入框的提示文字(通常是标准字体),平台可能选用通用OCR模型。
    • 对于步骤7后检查购物车角标数字(可能是小字体、动态变化),平台可能自动启用高精度OCR模型。
    • 用户通常无需手动干预此过程,但可以在特定步骤的高级设置中,如果发现某个元素识别一直不准,可以手动指定一个备用模型。

3.3 执行与效果观察

执行这个用例,你会看到AI不再是机械执行:

  • 如果未登录,它会自动转向登录流程,登录成功后再继续后续步骤。
  • 如果搜索“无线耳机”没结果,它会根据R2规则捕获到“无结果”状态,并决定是继续执行(比如测试无结果页面的展示)还是标记失败(如果预期必须有结果)。
  • 加入购物车后,它会主动去验证角标数字,确保操作真实生效。
  • 整个过程中,模型在后台智能切换,力求以最快的速度、最高的准确率完成每个元素的定位和识别。

4. 深入探讨:Rules的设计哲学与最佳实践

Rules功能强大,但用得好不好,关键在于设计。这里分享一些我从实际项目中总结的经验。

4.1 Rule的粒度与复用性

切忌过度设计:不要为每一个细微的操作都添加Rule。这会导致规则库臃肿,维护成本激增。Rule应该用于描述关键的业务状态转换重要的校验点

  • 好的粒度:“提交订单后,应跳转到支付页面”、“密码错误时应弹出提示框”。这些是关键的业务结果断言。
  • 过细的粒度:“点击输入框后,键盘应该弹出”、“页面加载时进度条应该显示”。这些更偏向于交互细节或性能观察,通常不需要用Rule来断言,除非是专门的兼容性或性能测试。

追求高复用:设计的Rule应尽可能与具体页面元素解耦,而是与业务概念绑定。例如,与其定义“检查首页的购物车角标”,不如定义“检查购物车商品数量”。这样,即使未来购物车图标换了位置或样式,只要你能定位到表示数量的那个元素,Rule就无需修改。可以将常用Rule(如登录状态检查、网络Toast提示检查)抽象成“规则模板”,供多个测试用例复用。

4.2 规则执行的顺序与依赖

当多个Rule关联到同一个测试步骤或同一段流程时,需要考虑执行顺序和依赖关系。

  1. 顺序性:有些Rule有先后顺序。例如,可能要先检查“页面跳转成功”(R1),才能去检查新页面上的“数据加载正确”(R2)。在配置时,需要明确Rule的执行队列。
  2. 条件触发:Rule可以设置为“条件触发”。例如,规则“检查错误提示”可以配置为:仅当上一个操作(如登录)的返回状态码或某种标记表明“可能出错”时才执行。这可以避免在不必要的场景下做无谓的检查,提升执行效率。
  3. 失败处理策略:当一个Rule校验失败时,要定义后续行为。是直接标记用例失败并结束?还是记录错误后继续执行(用于收集多个问题)?或者是尝试执行某个恢复操作(如重试、返回上一步)?这需要在Rule或用例层面进行策略配置。

4.3 规则维护与版本管理

业务在变,Rule也要变。建立Rule的维护机制至关重要。

  • 命名规范:采用“业务领域_校验目标_状态”的格式,如Auth_Login_Success,Order_Submit_RedirectToPay。清晰易懂。
  • 文档注释:为每个Rule添加注释,说明其业务目的、触发条件、预期结果。这对于团队协作和后续维护价值巨大。
  • 版本关联:将Rule集与App版本或需求版本关联。当App新版本上线时,可以快速筛选出需要复审和更新的Rule,避免因界面改动导致大量测试用例失败。

5. 多模型选择的底层逻辑与调优建议

虽然平台提供了智能调度,但理解其底层逻辑有助于我们在遇到疑难杂症时进行调优。

5.1 模型性能的权衡三角

模型选择本质上是在精度(Accuracy)速度(Speed)资源(Resource)构成的三角中进行权衡。

  • 高精度模型:通常是参数量大、层数深的深度学习模型。识别准,但计算慢,占用内存/显存多。
  • 高速度模型:可能是轻量级网络或传统图像处理算法。响应快,资源占用少,但在复杂、多变或模糊的场景下容易误识别。

智能调度系统内部会有一个“决策器”,它根据预设的权重策略,在每次识别任务时,动态评估使用哪个或哪几个模型组合,能使综合效益(如精度 * 权重1 + 速度 * 权重2)最高。在测试执行设置中,我们有时可以看到类似“优先保证识别率”或“优先保证执行速度”的全局策略选项,这就是在调整这个权衡三角的权重。

5.2 针对特定场景的模型调优

当自动化测试在某个特定页面或元素上反复失败时,我们可以进行手动干预和调优。

  1. 元素特征分析:首先分析这个元素为什么难识别。是字体特殊?图标抽象?背景复杂?还是动态变化?
  2. 模型池审视:查看平台提供了哪些可选的模型。通常会有分类,如“通用OCR”、“强OCR”、“图标识别”、“布局理解”等。
  3. 针对性指定:在测试步骤的编辑界面,找到该元素定位的设置项,手动从模型池中选择一个更匹配的模型。例如,对于一个艺术字体的标题,放弃通用OCR,指定使用“强OCR”模型。
  4. 反馈与训练:高级平台可能提供“反馈”功能。当你手动纠正了AI的识别错误(比如重新框选了正确区域),这个反馈会被用于优化模型。长期来看,这是提升平台整体识别能力的重要途径。

实操心得:不要一上来就手动指定模型。先信任平台的智能调度,观察失败案例。对于反复出错的“钉子户”元素,再用手动指定模型的方式解决。同时,积极使用反馈功能,你的每一次纠正都在帮助AI变得更好。

6. 常见问题与排查技巧实录

在实际使用中,肯定会遇到各种问题。下面是我遇到的一些典型情况及解决方法。

6.1 Rules相关问题

问题1:Rule执行失败,但实际页面看起来是对的。

  • 排查:这是最常见的问题。首先检查Rule中定义的“目标元素”定位是否准确。页面UI可能已微调,导致AI找不到你之前定义的那个元素。使用平台的“元素检查器”重新验证该元素在当前版本App上的定位信息(如XPath、ID、图像特征)。其次,检查Rule的“等待条件”。是否因为页面加载慢,在元素出现之前就执行了断言?可以适当增加等待时间,或添加“等待元素出现”作为前置条件。

问题2:Rule触发了错误的流程。

  • 排查:检查Rule的触发条件是否过于宽泛。例如,你的“未登录检查Rule”可能错误地将其他页面的某个缺失元素也判定为“未登录状态”。需要收紧条件,采用“与逻辑”组合多个判断条件,比如“同时不存在用户头像存在登录按钮”,才判定为未登录。

问题3:大量测试用例因同一个Rule失败。

  • 排查:这很可能意味着Rule本身需要更新,或者对应的业务逻辑/UI发生了全局性变更。这是一个信号,提醒你需要立即复审这个Rule。批量修复时,可以利用平台的“规则管理”功能,直接编辑该Rule,所有关联的用例都会同步更新,这正是Rules核心优势的体现。

6.2 多模型识别问题

问题1:AI始终无法识别某个元素,手动指定模型也没用。

  • 排查
    1. 图像质量问题:截图是否模糊、亮度对比度是否太低?确保测试设备屏幕清晰、运行流畅。
    2. 元素唯一性:要识别的元素是否与屏幕上其他元素过于相似?尝试提供更独特的特征区域给AI。比如,不要只框选一个普通的“返回箭头”,而是框选“返回箭头+旁边部分特定文字”。
    3. 动态内容:元素内的文字或图标是否是动态变化的(如倒计时、实时数据)?对于这类元素,避免使用基于精确图像匹配的模型,应使用OCR模型识别文本,或使用能容忍部分像素变化的图像匹配算法,并在定义时使用通配符或正则表达式匹配文本。
    4. 平台能力边界:确认该元素类型是否在平台支持范围内。例如,一些极其复杂的验证码、非主流的自定义控件,可能确实超出了当前AI的能力。此时需要考虑用其他测试方法补充,如接口测试。

问题2:测试执行速度突然变慢。

  • 排查:检查是否在多个步骤中手动指定了重型模型。或者,平台的智能调度是否因为近期识别率下降,而倾向于频繁调用重型模型进行“确认”。可以尝试清理测试设备的缓存,重启测试执行环境。如果问题持续,可以联系平台支持,查看是否有全局性的模型服务性能问题。

6.3 综合问题排查清单

当AI测试失败时,可以按以下清单快速定位问题方向:

问题现象优先排查方向可能的解决方案
步骤A无法执行(找不到元素)1. 元素定位信息失效(UI改了)
2. 页面加载未完成
3. 当前模型对该元素识别率低
1. 更新元素定位器
2. 增加步骤前等待或添加“等待元素”条件
3. 尝试手动指定其他模型,或调整识别区域
Rule断言失败1. Rule中定义的断言条件不满足
2. 断言时机不对(元素未出现/已消失)
3. Rule逻辑与当前业务状态不符
1. 检查实际页面状态,修正断言条件
2. 调整Rule的执行等待时间
3. 复核Rule的业务逻辑是否正确
流程走错分支1. 分支判断Rule的条件设置错误
2. 前序步骤状态未正确传递
1. 调试并修正Rule的条件表达式
2. 检查步骤间是否有状态依赖,确保前置步骤执行成功
执行速度慢1. 网络延迟
2. 使用了过多重型模型
3. 设备性能瓶颈
1. 检查网络,使用更稳定的测试环境
2. 检查模型配置,回归智能调度或改用轻量模型
3. 更换更高性能的测试设备或真机

7. 总结与展望:AI测试的下一站

回顾这次优测云真机的升级,Rules智能多模型选择这两个功能,确实将AI测试推向了一个更实用、更深入的新层次。它不再只是一个炫技的工具,而是开始真正理解测试人员的业务意图,并尝试用更聪明的方式去完成它。

从我个人的体验来看,要最大化发挥这些新能力的价值,关键在于思维的转变:我们从“脚本的编写者”变成了“业务规则的制定者”和“AI训练师”。我们的工作重心,从编写大量线性的click(), type(), assert()代码,转向设计更精炼、更复用、更贴近业务本质的规则库,以及指导AI在复杂场景下如何做出最佳判断。

当然,这还是一个开始。我期待未来能看到更多进阶能力,比如:

  • Rules的自学习与推荐:平台能根据历史测试数据,自动分析出常见的业务校验模式,并推荐生成潜在的Rules,测试人员只需确认即可。
  • 模型的可视化调优:提供更直观的界面,让测试人员能看到不同模型对同一个元素的识别结果和置信度对比,方便进行手动选择和优化。
  • 跨步骤的上下文感知:AI能更好地记忆和理解跨多个页面的业务流程上下文,从而做出更连贯的决策,而不仅仅是基于当前屏幕的瞬时判断。

无论如何,这次升级清晰地指明了一个方向:测试领域的AI,正在从“手”和“眼”,进化出“脑”。对于所有测试从业者来说,现在正是深入学习和应用这些新能力,构建下一代智能测试体系的好时机。