知识图谱在 Ai 测试开发中的应用

知识图谱与领域模型

知识图谱(英语:Knowledge Graph),是结构化的语义知识库,用于以符号形式描述物理世界中的概念及其相互关系。其基本组成单位是“实体-关系-实体”三元组,以及实体及其相关属性-值对,实体间通过关系相互联结,构成网状的知识结构。知识图谱非常适合描述测试模型。

知识图谱

知识图谱在软件测试中的应用场景

基于文档的业务测试用例生成

rag graphrag

智能遍历测试

页面 动作 状态 事件的关联关系

基于探索的自动化测试用例生成

appagent appcrawler

新老版本 Diff 测试

ui diff 接口diff dify

多维度测试数据关联

用例 UI 接口 日志

精准测试

用例 UI 接口 代码

知识图谱构建

文档分析GraphRAG

需求文档
历史手工测试用例

产品原型设计建模

原型设计素材 接口规范 axure openapi

被测系统探索

爬虫 智能遍历 接口抓包 appcrawler appagent

运行时数据

抓包、代理
流程日志

业务知识库建设技术

  • 检索增强生成 RAG GraphRAG 适合普通文档
  • 向量存储 VectorStore
  • 知识图谱 KG 适合保存测试执行数据

GraphRAG

基于图谱的知识库构建与检索 GraphRAG

业务用例生成的常见策略

  • L1 初级:基于提示词生成
  • L2 中级:基于 RAG+提示词生成
  • L3 高级:基于 agentic 的递归推导
  • L4 资深:基于探索学习的生成方法
  • L5 专家:基于图谱生成

基于探索学习的生成方法 腾讯 AppAgent

利用探索发现的 UI 与功能点,反向生成文档。并基于文档补充生成更多测试用例。弥补产品文档的不足。部分探索逻辑可以参考腾讯 app agent。

AI 爬虫实现自动探索并创建知识图谱

手工测试与 AI Agent

运行时数据监控提取为知识图谱

  • 产品业务流程
  • UI 交互流程
  • 接口状态流程
  • 测试用例流程
  • 代码执行流程

baidu nsqa

基于图谱生成流程

uml diagram

基于业务图谱的深度智能遍历测试

  • 使用智能体对手工测试用例进行智能执行探索
  • 探索补充业务知识图谱
  • 基于图谱自动生成深层测试场景
  • 模型驱动测试

neo4j

基于图谱的智能体设计

上下文相关工具 让 Ai 拥有眼睛

UI控件树识别工具

效率与token消耗等性能指标,远胜图像识别与多模态大模型

UI界面视觉识别工具

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

测试上下文工具

日志 数据库 代码 等测试上下文可以与测试执行联动

代码动态执行上下文工具

代码覆盖率 精准测试 插桩

上下文准确性

<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"
/>

效率上对比

<ul class="select-kit-collection" aria-live="polite" role="menu">
  <li
    data-guid="ember44"
    aria-checked="true"
    role="menuitemradio"
    data-index="0"
    data-name="话题/帖子"
    data-value="topics_posts"
    title="话题/帖子"
    tabindex="0"
    id="ember61"
    class="select-kit-row is-selected ember-view"
  >
    <!---->
    <span class="name"> 话题/帖子 </span>
  </li>
  <li
    data-guid="ember46"
    aria-checked="false"
    role="menuitemradio"
    data-index="1"
    data-name="类别/标签"
    data-value="categories_tags"
    title="类别/标签"
    tabindex="0"
    id="ember62"
    class="select-kit-row ember-view"
  >
    <!---->
    <span class="name"> 类别/标签 </span>
  </li>
  <li
    data-guid="ember48"
    aria-checked="false"
    role="menuitemradio"
    data-index="2"
    data-name="用户"
    data-value="users"
    title="用户"
    tabindex="0"
    id="ember63"
    class="select-kit-row is-highlighted ember-view"
  >
    <!---->
    <span class="name"> 用户 </span>
  </li>
</ul>

UI 知识图谱

uml diagram

uml diagram

工具接入 Ai

Function Calling
ReAct Tool Calling
MCP
OpenApi
Native Api Python/Java
Agentic RAG

基于业务的工具封装

自动化工具

find
click send_keys
page_source

业务工具

登录页.登录
登录页.忘记密码
登录页.注册

上下文工程

工具调用历史

prompt
task
get click send_keys
final answer

基于图谱的上下文

prompt
task
graph
final answer

Hogwarts App Agent 演示

模型驱动测试

为什么结需要模型驱动测试

文档分析GraphRAG

需求文档
历史手工测试用例

产品原型设计建模

原型设计素材 接口规范 axure openapi

被测系统探索

爬虫 智能遍历 接口抓包 appcrawler appagent

运行时数据

抓包、代理
流程日志

人工维护

数据等价类边界值补充 流程补充

模型驱动测试 Model-based testing

  • 被测系统 SUT
  • 领域模型 Domain Model
  • 抽象测试套件 Abstract Test Suites
  • 可执行测试套件 Executable Test Suite

mbt

基于模型的测试方法

  • 将 app 的业务行为理解为一个有向图
  • 有向图中的节点代表业务状态
  • 有向图中的路径代表达到特定状态的行为
  • 以充分遍历所有状态为目标

传统建模方式无法适应变化

vscode altwalker altwalker

graphwalker model build graphwalker

测试领域模型与知识图谱的统一维护

page object

neo4j

数据驱动/模型驱动/编程模型与知识图谱的关联

networkx

Ai 智能测试平台核心功能

需求文档分析与用例生成

根据产品文档生成业务测试用例。提高测试效率。
支持需求、用户故事、接口文档等多种文档类型。

手工用例 AI 自动化执行

自然语言编写的手工测试用例通过智能体自动化执行,无需编码,自动化成本大幅降低,极大提高测试效率。

智能遍历与模型驱动测试

无用例情况下,使用 AI 自动推理生成更多测试场景,有效提高测试覆盖度,降低漏测,提高测试质量。

领域建模与知识图谱

通过对被测系统的解析,自动生成测试用例。
支持 web、app、http 接口等多种产品形式。