测试框架 (Test Harness)
用于验证 AI-Assistant 配置的 skill 和 agent 功能是否正常,以及测试整套配置的端到端效果。
注意:这是 AI-Assistant 配置的开发测试工具,用于验证和调试。普通开发场景不需要使用。
功能概述
1. 单技能测试 (Single Skill Test)
针对特定 skill 进行功能验证,确保其按照设计规范工作。
支持测试的 Skill:
- •
brainstorming- 需求转化为设计 - •
writing-plans- 创建实施计划 - •
executing-plans- 执行计划 - •
discuss-requirements- 需求讨论 - •
docs-sync- 文档同步
2. 全流程测试 (Workflow Test)
给定一个真实需求,验证整套配置从需求到代码的完整流程。
测试流程:
code
需求 → discuss → brainstorming → writing-plans → executing-plans → 验证
使用方式
单技能测试
code
用户: /test-harness
AI: 请选择测试模式:
1. 单技能测试
2. 全流程测试
用户: 1
AI: 请选择要测试的 skill:
1. brainstorming - 需求转化为设计
2. writing-plans - 创建实施计划
3. executing-plans - 执行计划
...
用户: 2
AI: 选择测试场景:
1. 简单 CRUD 功能
2. 复杂工作流
3. 边界情况处理
4. 自定义场景
用户: 1
AI: [开始执行测试...]
全流程测试
code
用户: /test-harness
AI: 请选择测试模式:
1. 单技能测试
2. 全流程测试
用户: 2
AI: 请提供测试需求(描述一个功能场景):
用户: 需要一个用户管理系统,包含增删改查、分页搜索、权限控制
AI: [启动完整流程...]
测试用例库
brainstorming 测试用例
用例 1:简单 CRUD
输入: "需要一个租户管理功能" 预期检查点:
- • 提取功能模块:租户管理
- • 识别操作类型:列表、新增、编辑、删除
- • 记录到功能范围章节
- • 提出 2-3 种方案
用例 2:复杂工作流
输入: "需要一个审批流程系统,支持多级审批、条件分支、会签" 预期检查点:
- • 理解复杂业务逻辑
- • 识别多个功能模块
- • 考虑状态流转
- • 探索多种实现方案
用例 3:边界情况
输入: "做一个简单的计数器" 预期检查点:
- • 不遗漏简单项目的设计
- • 呈现简洁但完整的设计
- • 考虑异常处理
writing-plans 测试用例
用例 1:标准 CRUD 计划
输入: 租户管理功能设计(包含增删改查) 预期检查点:
- • 任务细化到 2-5 分钟粒度
- • 包含功能完整性检查表
- • 使用 [ ]/[x] 任务标记
- • 识别所有功能点(P0/P1/P2)
用例 2:分阶段计划
输入: 大型需求(需要分多个阶段) 预期检查点:
- • 正确划分阶段
- • 每个阶段独立完整
- • 包含阶段依赖关系
用例 3:边界情况
输入: 单个组件开发 预期检查点:
- • 计划简洁但完整
- • 不过度设计
- • 包含测试步骤
executing-plans 测试用例
用例 1:标准执行
输入: 包含 5 个任务的简单计划 预期检查点:
- • 读取计划时检查进度 [ ]/[x]
- • 按顺序执行任务
- • 完成后更新任务标记
- • 生成执行报告
用例 2:错误处理
输入: 包含潜在错误的计划 预期检查点:
- • 遇到错误时停止或处理
- • 记录错误信息
- • 提供修复建议
docs-sync 测试用例
用例 1:标准网站
输入: Headless UI, https://headlessui.com/vue 预期检查点:
- • 成功分析网站结构
- • 识别组件列表
- • 生成爬虫脚本
- • 生成标准格式文档
用例 2:异常处理
输入: 无效或无法访问的网址 预期检查点:
- • 友好提示错误
- • 不崩溃或卡住
全流程测试场景
场景 1:用户管理系统
需求: "需要一个用户管理系统,包含:
- •用户列表(分页、搜索)
- •新增用户(表单验证)
- •编辑用户
- •删除用户(确认对话框)
- •权限控制(管理员/普通用户)"
验证点:
- • 需求讨论阶段理解完整
- • 设计阶段覆盖所有功能点
- • 计划阶段任务细化完整
- • 执行阶段代码可运行
- • 最终代码符合需求
场景 2:数据看板
需求: "需要一个数据看板,展示:
- •统计卡片(今日订单、收入等)
- •趋势图表(近 30 天)
- •实时数据更新(WebSocket)
- •数据导出功能"
场景 3:简单工具
需求: "做一个 JSON 格式化工具"
验证点:
- • 不过度设计
- • 代码简洁可用
- • 有基本错误处理
测试报告格式
单技能测试报告
markdown
# Skill 测试报告: writing-plans ## 测试信息 - 测试时间: 2024-02-21 10:00:00 - 测试用例: 标准 CRUD 计划 - 测试时长: 3 分钟 ## 检查结果 ### ✅ 通过项 - [x] 任务细化到 2-5 分钟粒度 (12/12 任务) - [x] 包含功能完整性检查表 - [x] 使用 [ ]/[x] 任务标记 ### ❌ 失败项 - [ ] 识别所有功能点 - 遗漏: 导入/导出功能 (P2) ### ⚠️ 警告项 - 部分任务描述不够清晰 ## 评分: 85/100 ## 建议 1. 加强功能完整性检查 2. 优化任务描述模板
全流程测试报告
markdown
# 全流程测试报告 ## 测试场景 用户管理系统(CRUD + 权限) ## 各阶段评分 | 阶段 | 评分 | 问题 | |------|------|------| | 需求讨论 | 90 | 完整理解需求 | | 设计 | 85 | 覆盖主要功能,缺少边界情况 | | 计划 | 80 | 任务细化好,但有遗漏 | | 执行 | 75 | 代码可用,但缺少测试 | ## 总体评分: 82/100 ## 发现的问题 1. 设计阶段未考虑权限控制细节 2. 计划阶段遗漏导入导出 3. 执行阶段未写单元测试 ## 改进建议 1. brainstorming 增加边界情况检查 2. writing-plans 优化功能完整性检查
测试流程
单技能测试流程
- •
选择 Skill
- •展示可用 skill 列表
- •用户选择目标 skill
- •
选择测试用例
- •展示预设用例
- •支持自定义场景
- •
执行测试
- •模拟用户输入
- •观察 skill 响应
- •记录执行过程
- •
验证结果
- •对照检查点清单
- •标记通过/失败
- •
生成报告
- •汇总测试结果
- •给出评分和建议
全流程测试流程
- •
接收需求
- •用户提供测试场景
- •或选择预设场景
- •
执行完整流程
- •按顺序调用各阶段 skill
- •保存各阶段产出
- •
质量评估
- •检查各阶段产出完整性
- •对比需求和最终代码
- •
生成报告
- •各阶段评分
- •总体评价
- •改进建议
与开发的区别
普通开发流程:
- •用户有真实需求
- •产出实际代码
- •交付给用户使用
测试流程:
- •目的是验证配置
- •产出测试报告
- •不交付,用于改进配置
维护与扩展
添加新测试用例
- •在对应 skill 的测试用例库中添加
- •定义输入和检查点
- •运行验证
调整评分标准
根据实际使用情况,调整各检查点的权重。
启动测试
请告诉我:
- •测试模式:单技能 / 全流程
- •如果是单技能:选择具体 skill
- •如果是全流程:提供需求场景或选择预设