对话驱动用例生成:AI 自动生成测试用例的实践
测试用例设计是软件测试的核心环节,传统方式依赖测试人员手动编写,存在覆盖不全、效率低下、难以维护等问题。借鉴 LangChain Skills 设计,按需加载完整指令:启动时只注入技能元数据(名称 + 描述),AI 调用时才加载完整文档,节省 Token 并保持系统提示简洁。,用户无需学习复杂的 UI 操作,只需用日常语言表达需求,AI 即可自动理解并执行增删改查操作。:用户通过自然语言对话即可实
前言
测试用例设计是软件测试的核心环节,传统方式依赖测试人员手动编写,存在覆盖不全、效率低下、难以维护等问题。本文介绍一套基于 LangChain Agent 的智能测试用例生成系统,实现从需求文档到 XMind 脑图的全流程自动化方案。
核心特色:用户通过自然语言对话即可实时控制脑图编辑器,AI 自动理解意图并执行增删改查操作,无需手动操作复杂的 UI 界面。
一、技术栈选型
|
层级 |
技术选型 |
|---|---|
| 前端框架 |
Next.js + shadcn/ui |
| 脑图编辑器 |
simple-mind-map |
| AI 框架 |
LangChain + LangGraph |
| 技能系统 |
LangChain Skills(渐进式披露) |
| 数据存储 |
MongoDB + PostgreSQL |
二、整体架构设计
2.1 系统架构图
内部文档
内部需求管理系统
Figma
Git仓库
直接描述
用户输入需求
需求来源类型
MCP工具get_confluence_page_body
MCP工具get_kaptain_issue
MCP工具read_figma_design
git_clone +claudecode分析
无需工具
TestCase AgentLangChain Agent
系统提示词简洁,只含技能使用顺序
技能中间件渐进式披露架构
工具集MCP + GitClone + ClaudeCode + XMind
load_skill_test_case_formatter
load_skill_git_clone
get_current_data
load_xmind_data
add_nodes
update_node
delete_node
后台执行引擎chatStreamHandler
agent.streamEvents
AsyncQueue事件广播
UI消息流前端SSE
DB持久化管道MongoDB增量写入
前端XMind编辑器骨架+逐模块填充
测试用例脑图实时渲染
对话控制脑图工作流程:
用户通过自然语言表达需求 → AI 理解意图并调用工具 → 前端解析工具调用 → 脑图实时更新 → 用户继续对话迭代
整个过程中,用户无需点击任何按钮或菜单,完全通过对话完成所有操作。
2.2 数据流向图
三、核心技术要点
3.1 渐进式披露架构
借鉴 LangChain Skills 设计,按需加载完整指令:启动时只注入技能元数据(名称 + 描述),AI 调用时才加载完整文档,节省 Token 并保持系统提示简洁。
3.2 骨架 + 逐模块填充的两阶段策略
传统方式一次性生成所有用例导致响应延迟。本系统采用两阶段策略:
阶段2: 逐模块填充(精确控制)
阶段1: 加载骨架(快速反馈)
分析需求确定模块N
创建骨架结构
调用load_xmind_data
前端立即渲染骨架
模块0: 调用add_nodes([0])
模块1: 调用add_nodes([1])
模块2: 调用add_nodes([2])
模块N-1: 调用add_nodes([N-1])
输出总结
实现要点:
-
• 阶段 1:分析需求后立即创建骨架(只含模块节点,无测试用例),前端快速显示结构
-
• 阶段 2:按模块索引逐个调用
add_nodes填充测试用例,每个模块独立一次调用
强制约束:
-
1. 骨架中的模块数量 N 必须等于后续
add_nodes调用次数 -
2. 禁止在所有模块填充完毕前输出文字
-
3. 每个模块必须且只能调用一次
add_nodes
骨架加载效果:
完成全部填充后效果:
3.3 前端工具调用机制
AI 通过标准 JSON 格式调用前端工具,无需处理复杂的 UI 操作:
XMind编辑器
前端解析层
AI Agent
输出工具调用JSON
正则匹配工具调用
JSON.parse解析
路由到具体操作
loadData
addNodes
updateNode
deleteNode
实现要点:
-
• 工具定义:使用 LangChain
tool装饰器定义工具,返回 JSON 字符串给前端解析 -
• 前端解析:
TestCaseEditorLayout使用正则匹配 AI 回复中的工具调用 JSON,解析后路由到具体操作 -
• 标准格式:
{ "action": "tool", "toolName": "...", "toolInput": {...} }
可用工具:
-
•
get_current_data:读取当前脑图数据 -
•
load_xmind_data:整体替换脑图 -
•
add_nodes:添加子节点 -
•
update_node:更新节点属性 -
•
delete_node:删除节点 -
•
move_node:移动节点
四、测试用例数据结构
4.1 XMind 节点层级
功能模块名称(根节点)
@功能测试(模块节点)
@异常测试
@边界测试
!已登录用户(前置条件)
!未登录状态
TC001: 正常访问功能P0
TC002: 修改个人信息P1
TC003: 访问受限P0
TC004: 网络异常处理P1
TC005: 空值输入P2
TC006: 超长输入P2
4.2 测试用例节点格式
{
"id": "testcase-1",
"topic": "正常登录测试\n1. 打开登录页面\n2. 输入正确账号密码\n3. 点击登录按钮",
"priority": "P0",
"precondition": "用户已注册",
"steps": "1. 打开登录页面\n2. 输入正确账号密码\n3. 点击登录按钮",
"expected": "登录成功,跳转到首页"
}
前端自动解析:
-
•
steps和expected字段自动生成子节点 -
•
priority决定节点颜色标记(P0 红色、P1 橙色、P2 黄色、P3 灰色)
五、技能工作流程
6.1 测试用例生成流程
内部文档
内部需求管理系统
Figma
Git仓库
直接描述
用户输入需求
识别需求来源
get_confluence_page_body
get_kaptain_issue
read_figma_design
git_clone + claudecode分析
无需工具
分析需求提取测试点
确定测试模块N
创建骨架结构
调用load_xmind_data
前端立即渲染骨架
逐模块填充
调用add_nodes模块0
调用add_nodes模块1
调用add_nodes模块N-1
全部模块填充完成
输出总结
6.2 Git 仓库克隆流程
用户凭据
访问令牌
公网访问
否
是
需要分析代码
认证方式
使用 username/password
使用 oauth2/token
无需认证
执行 git_clone
目录是否存在?
执行 git clone
执行 git pull
返回 clonePath
调用 claudecode ask 分析代码
完成
六、多源需求获取能力
6.1 需求来源处理流程
cf.qunhequnhe.com
kaptain.qunhequnhe.com
figma.com
Git仓库
直接描述
用户输入
识别需求来源
内部文档
内部需求管理系统
Figma
代码仓库
无需工具
get_confluence_page_body
get_kaptain_issue
read_figma_design
load_git_clone
git_clone
ask_claudecode分析测试点
分析需求提取测试点
设计测试用例
输出XMind数据
6.2 需求获取逻辑
-
• 内部文档:使用 MCP 工具
get_confluence_page_body获取页面内容 -
• 内部需求管理系统:使用 MCP 工具
get_kaptain_issue获取敏捷事项 -
• Figma:使用 MCP 工具
read_figma_design读取设计稿,分析 UI 组件和交互 -
• Git 仓库:先调用
git_clone克隆代码,再使用ask_claudecode分析测试点
七、系统特色总结
7.1 核心特性对比
|
特性 |
实现方式 |
优势 |
|---|---|---|
| 对话控制脑图 |
自然语言 + JSON 工具调用 |
用户通过对话实时控制脑图,无需手动操作 UI |
| 渐进式披露 |
三层技能加载架构 |
系统提示简洁,按需加载完整指令 |
| 快速反馈 |
骨架 + 逐模块填充 |
用户立即看到结构,避免长时间等待 |
| 后台执行 |
AsyncQueue 广播 + DB 持久化 |
浏览器关闭后任务继续,支持断线恢复 |
| 多源集成 |
MCP + GitClone + ClaudeCode |
支持文档、设计稿、代码多种需求源 |
| 质量保证 |
场景覆盖清单 + SMART 原则 |
确保测试用例广度和深度 |
7.2 对话控制脑图示例
用户可以通过自然语言对话灵活控制脑图:
|
用户输入 |
AI 执行操作 |
|---|---|
|
"帮我生成登录功能的测试用例" |
自动创建骨架并填充所有测试模块 |
|
"把 TC001 的优先级改成 P0" |
更新指定节点的优先级属性 |
|
"删除边界测试下的所有用例" |
批量删除指定模块的子节点 |
|
"在功能测试中添加记住密码功能的用例" |
在指定模块下追加新的测试用例 |
|
"把 TC003 移动到异常测试模块" |
将节点移动到目标父节点下 |
|
"清空所有数据重新生成" |
重置脑图并重新设计测试用例 |
删除用例示例:
结语
本系统通过 LangChain Agent + 渐进式披露架构,实现了从需求文档到测试用例的全流程自动化。最核心的创新在于通过自然语言对话实时控制脑图编辑器,用户无需学习复杂的 UI 操作,只需用日常语言表达需求,AI 即可自动理解并执行增删改查操作。两阶段策略确保快速反馈,为测试人员提供了高效、智能的用例设计体验。
技术亮点回顾
-
1. 对话控制脑图:自然语言交互,实时操控脑图编辑器
-
2. 渐进式披露:按需加载完整指令,保持系统提示简洁
-
3. 两阶段策略:骨架先行 + 逐模块填充,优化用户体验
-
4. 多源集成:统一接口对接内部文档、内部需求管理系统、Figma、Git
更多推荐



所有评论(0)