学习笔记:知识图谱是什么,在测试里能干什么

哈喽,大家好~

这阵子我在折腾「用 AI 辅助测试」:把测试知识库切成片段喂给 AI,帮着生成测试用例;又通过 MCP 协议连上 bug 管理系统,让 AI 自动拉缺陷数据做分析。

但折腾的过程里,我反复撞到同一堵墙:用例、接口、脚本、bug 这些东西之间是怎么关联的,全靠人脑记。

做接口自动化的同学肯定熟:开发说「orderStatus 这个字段的类型要改」。然后呢?哪些接口在用它、哪些用例覆盖了它、哪些脚本的断言会挂------这些问题没有现成答案,只能翻记录、问同事、靠回忆。漏了一条,漏测就跟上了。

那么,能不能把这些散落在各个工具里的关系,变成一张能查的图?

这就是我最近学知识图谱(Knowledge Graph)的动机。这篇是学习记录:先弄懂它是什么,再看它在测试里能干什么。

一、知识图谱是什么:从三元组说起

知识图谱听起来玄乎,其实它存知识的最小单位特别简单,叫三元组 :头实体 ---关系→ 尾实体。说白了就是一句「主谓宾」:

注意「麻辣火锅」在第一条里是结尾,在第二条里又成了开头。同一个实体被反复使用,知识就自己「缝」了起来。把成千上万条三元组接在一起,就得到一张网------节点是事物,连线是事物之间的关系,这就是知识图谱。

它和普通表格的差别也很直观:表格里只存一条条记录,谁跟谁有关系,得自己跨表翻;图谱把「谁和谁有什么关系」直接写在连线上,顺着线看就行。

二、测试领域的知识图谱长什么样

把视角拉回测试。用例、接口、脚本、缺陷这些东西之间,本来就有实实在在的关系:用例覆盖需求、用例调用接口、接口包含字段、脚本实现用例、用例暴露缺陷。把这些画出来,就是一张测试知识图谱:

重点是图里那条虚线:「字段 → 用例」的影响 关系,没有任何人手工登记过,它是顺着「字段 → 接口 → 用例 → 脚本」这条路径推导出来的。这正是图谱相对「把用例写成表格」的关键增量------它能把已有的关系串成一条你原来看不见的结论。

这些节点的数据来源,基本都是现成的:

节点 从哪来
需求 需求文档、迭代计划、知识库切片
用例 用例库、AI 生成用例的产出
接口 / 字段 接口文档、OpenAPI 定义
脚本 接口自动化仓库
缺陷 Bug 系统(用 MCP 就能定时拉取)

三、一个能落地的例子:字段改了,回归什么

回到开头那个场景。有了图谱,「orderStatus 类型要改」就不再是靠回忆的题,而是一次图查询。影响面像涟漪一样扩散:

一个字段被 3 个接口引用,这 3 个接口一共被 12 条用例覆盖,这 12 条用例又对应着 4 个自动化脚本------顺着线走一遍,回归清单就出来了。数字是举例,实际有多少取决于你的图,但查法完全一样。

最妙的是,起步根本不需要图数据库。一张三列的表就够了:

复制代码
头实体,关系,尾实体
orderStatus,属于,下单接口
orderStatus,属于,查询接口
orderStatus,属于,退款接口
下单接口,被调用,下单正常用例
下单接口,被调用,下单参数校验用例

「找受影响的用例」就是两次查询:先查所有「尾实体 = orderStatus」的行拿到接口,再拿这些接口当头实体查下一跳。用 Excel 筛选、或者 SQLite 里一条 SQL 都能跑。等关系规模上去了,再考虑 Neo4j 这类图数据库也不迟。

四、我的落地计划:三步走

三步走:

  1. 先攒需求、用例、缺陷三类节点,跑通「用例 ↔ 缺陷」的关联分析;
  2. 接入接口与字段定义,把自动化脚本也挂上去;
  3. 把常用查询(影响面、覆盖缺口、冗余用例)做成固定产出。

计划先到这。等真的跑起来,踩到坑再来记录一篇。


相关推荐
以为你知道啊2 小时前
90年代复古博客
笔记
波力海苔夹心脆6752 小时前
C# 值类型与引用类型详解:存储位置、赋值机制、参数传递、相等比较、装箱拆箱与常见陷阱
开发语言·jvm·经验分享·笔记·c#·.net
每天题库4 小时前
危险货物道路运输从业资格证题库刷题重点与错题梳理
学习·安全·考试·题库·考证
m4Rk_4 小时前
【论文阅读】Agent 记忆机制(86):Skill-Pro——用 Non-Parametric PPO 将交互经验演化为可复用技能
论文阅读·人工智能·学习·开源·github
AOI小白新手上路4 小时前
从 Keil 调试视角看 51 指针,到 Cortex-M 内存映射访问寄存器 · 学习笔记
笔记·学习
Joe_Wang55 小时前
【从0到1学习JVM · 15】对象在堆里来回倒腾,究竟怎样才会进老年代?
java·jvm·学习·垃圾回收
软件开发技术深度爱好者7 小时前
中学生学习工具:多学科自学启导者(轻量版)实现
学习·ai·技术实践
Joe_Wang57 小时前
【从0到1学习JVM · 13】点进JDK源码只有一个分号?搞懂本地方法栈与JNI机制
java·jvm·学习·本地方法栈
~光~~7 小时前
【嵌入式Linux学习】GFP_NOIO / GFP_NOFS(Linux 内核 gfp 分配标志)
linux·运维·学习