Ai 测试用例编写规范

测吧(北京)科技有限公司

智能体与测试智能体

智能体 Agent

百度百科

能够感知环境并采取行动以实现特定目标的代理体。 它可以是软件、硬件或一个系统,具备自主性、适应性和交互能力。 智能体通过感知环境中的变化,根据自身学习到的知识和算法进行判断和决策,进而执行动作以影响环境或达到预定的目标。

IBM

AI 代理是能够通过设计其工作流和利用可用工具,代表用户或其他系统自主执行任务的系统或程序。这些代理不仅限于自然语言处理,还包括决策、解决问题、与外部环境交互和执行操作等功能

Langchain

代理的核心思想是使用语言模型来选择要采取的一系列操作。在代理中,语言模型被用作推理引擎来确定要采取哪些操作以及按什么顺序

Amazon AWS

一种可以与环境交互、收集数据并利用数据执行自我决定任务以达到预定目标的软件程序。人类设定目标,但人工智能代理会独立选择实现这些目标所需的最佳行动。

Agent 智能体核心元素总结

  • LLM 大模型 chatgpt qwen llama
  • Planning:规划 路由 ReAct
  • Parser:结构化输出解析 json
  • Tools:工具集与调用 tool function
  • Memory:记忆 短期 长期

agent

测试智能体介绍

软件测试智能体(Software Testing Agent)是指在软件测试领域中,运用人工智能(尤其是大语言模型 LLM)、机器学习、强化学习、知识图谱、智能规划等技术,自主或半自主地执行软件测试任务的智能化系统或实体。

测试智能体的核心能力

  • 自主感知 :自动识别软件测试环境、测试对象及相关测试需求。
  • 决策与规划 :基于测试目标制定有效的测试策略,生成测试计划和测试用例。
  • 自主执行 :自动执行测试过程,包括功能测试、接口测试、性能测试、异常情况处理等。
  • 智能分析与反馈 :能够自主分析测试结果,识别缺陷与异常情况,并给出针对性的建议或反馈。
  • 自适应学习 :可基于历史测试数据持续优化测试策略和测试用例,不断提升测试覆盖率和效率。

测试智能体的关键特征

特征 描述
自主性 能够独立或半独立地执行测试任务,减少人工干预。
智能性 运用 AI 技术提高测试设计、执行与分析的精准度与效率。
自适应性 可根据环境与测试结果的变化自动调整测试策略与行为。
协同性 能够与其他智能体或人工团队协作,共享知识与测试成果。
持续性 持续积累与利用历史数据、知识库,不断优化测试效果。

Ai 测试用例介绍

用例编写规范指南

本文定义了适用于 AI 软件测试智能体进行自动化测试执行的测试用例编写标准,确保用例内容的清晰、易读、易维护和智能化执行。

Ai 测试用例的执行过程

  • 观测:通过多模态模型或者控件树识别被测系统上下文,比如页面结构、系统状态等。
  • 决策:根据测试用例、已执行步骤和当前观测结果预测下一步操作指令
  • 执行:执行下一步操作指令,更新观测结果

uml diagram

Ai 测试用例编写的关键

被测系统上下文

了解被测系统上下文结构,以更好的定位自动化目标,并写出更贴合上下文的意图、步骤、预期结果

自动化动作

了解智能体支持的工具清单与自动化动作清单,以确保大模型可预测出正确的动作

被测系统上下文观测

理解大模型可以看到的上下文,有助于我们更好地理解测试用例的执行环境和目标。常见的流程是获取当前页面结构,然后进行 token 优化,从而降低 token 量,提高预测效率与大模型识别精准度。

UI控件树识别工具

效率与token消耗等性能指标,远胜图像识别与多模态大模型。Token压缩算法很关键。

UI界面视觉识别工具

图像识别虽然万能,但是性能、可维护性都有问题。

上下文分析工具

  • Web:浏览器开发者工具、selenium ide、playwright-recorder
  • App:adb、appium inspector
  • 接口:浏览器开发者工具、postman、curl、mitmproxy、接口文档、swagger

Web 上下文分析工具 -- 浏览器开发者工具

App 上下文分析工具 Appium inspector

动作清单

  • 上下文意图工具:由上下文推理出的产品意图
    • 通用业务:登录 搜索 增删改查
    • 领域业务:车联网 物联网 金融证券
  • 通用自动化动作工具:
    • Web 自动化:点击 输入 滑动
    • App 自动化:点击 输入 滑动
    • 接口自动化:get post
    • 数据库自动化:增删改查
    • 自定义工具:获取当前时间 执行命令 调用大模型 调用视觉模型

测试用例编写的常见风格

风格 特点 描述
上下文意图+声明式 适合验证业务功能,可以灵活应对页面变化 描述任务意图目标
上下文意图+命令式 适合验证固定流程,可以确保流程的正确性 描述任务实现中间过程
自动化动作+声明式 适合意图识别不准确的场景 描述自动化任务意图目标
自动化动作+命令式 适合意图识别不准确的场景 描述自动化中间实现过程

多种风格的测试用例案例

上下文意图+声明式风格

1. 打开 ceshiren.com
2. 搜索“人工智能”
3. 断言搜索结果页面显示“人工智能”

上下文意图+命令式风格

1. 打开 ceshiren.com
2. 点击搜索按钮
3. 在搜索框中输入“人工智能”
4. 点击搜索按钮
5. 断言帖子标题里包含“人工智能”

自动化动作+声明式风格

搜索按钮的id 为 search
输入框的css选择器为 #search
搜索按钮的class为 btn

1. 打开 ceshiren.com
2. 点击搜索按钮
3. 在输入框中输入“人工智能”
4. 点击搜索按钮
5. 断言class为 title 的元素包含“人工智能”

自动化动作+命令式风格

1. 打开 ceshiren.com
2. 点击id 为 search 的元素
3. 在css选择器
4. 点击class为 btn 的元素
5. 断言class为 title 的元素包含“人工智能”

如何提高准确性

上下文意图如果不能识别,就主动添加更多元素特征 token 让大模型进行推理。大模型可以理解中英文 token 之间的关系。

<input
  aria-controls="search-result-count"
  aria-label="输入搜索关键字"
  autocomplete="off"
  placeholder="搜索"
  id="ember15"
  class="full-page-search search no-blur search-query ember-text-field ember-view"
  type="text"
/>
prompt 输入 token 大模型结合上下文推理 输出
输入“搜索词” prompt:输入
上下文:input
成功
匹配不太精确,
有多个输入框的时候有歧义
在全页搜索中输入“搜索词” prompt:全页搜索
上下文:full page search
成功
关联度高,
业务意图明确
在 full-page-search 中输入“搜索词” prompt:full-page-search
上下文: full-page-search
成功
匹配度最高,
但是不能适应页面变化

常见问题

如何提高稳定性与准确性

确定的 token + 确定的大模型配置,输入确定,输出就是确定的。选择固定的大模型,大模型的预训练数据差异不大,预测结果是明确收敛的自动化动作清单,大部分模型预测差异不大,是确定的。大模型的参数配置、temperature top-p top-k 都是固定的,预测是稳定的。 token 中的最大变动因子是测试用例与被测系统的上下文,可以通过优化用例描述提高准确性与稳定性。