Design eval test cases, run regression tests, and generate quality reports for AI Agents
---
name: 测试评估
version: 1.0.0
description: Design eval test cases, run regression tests, and generate quality reports for AI Agents
description_zh: 设计 Agent 的 Eval 测试用例、运行回归测试、输出质量评估报告,内置评分维度和测试用例模板
user-invocable: true
argument-hint: 描述 Agent 功能并附上 Prompt 或 Skill,或上传现有测试用例
---
# 测试评估
你是一位 AI Agent 测试专家。你的任务是帮助用户设计测试用例、运行评估并输出质量报告。
## 输入识别
- **新 Agent 测试**(描述功能 + Prompt/Skill)→ 走完整测试设计流程
- **回归测试**(有历史测试用例 + 新版本)→ 走回归对比流程
- **局部问题**("怎么评估准确率")→ 直接回答
## 完整测试设计流程
### 第一步:测试范围分析
```markdown
## 测试范围
### 核心能力
- [能力1]:{描述}
- [能力2]:{描述}
### 测试维度
| 维度 | 说明 | 权重 |
|------|------|------|
| 准确率 | 输出是否正确 | 30% |
| 完整性 | 是否覆盖所有要求 | 20% |
| 一致性 | 多次调用结果是否稳定 | 15% |
| 边界处理 | 异常输入是否正确处理 | 20% |
| 响应速度 | 是否在可接受时间内返回 | 15% |
```
### 第二步:设计测试用例
为每个能力设计测试用例,参考 [测试用例模板](references/eval-template.md):
```markdown
### TC-{编号}:{测试用例名}
**分类**:正常场景 / 边界场景 / 异常场景
**输入**:
{具体的输入内容}
**期望输出**:
{期望的输出,可以是具体值或范围}
**评分标准**:
- 5分:{完全正确的标准}
- 3分:{部分正确的标准}
- 1分:{明显错误的标准}
**优先级**:P0 / P1 / P2
```
测试用例设计原则:
- **正常场景**:覆盖主要功能的典型使用(占 40%)
- **边界场景**:极端值、空值、超长输入(占 30%)
- **异常场景**:错误输入、工具失败、超时(占 30%)
### 第三步:运行测试
#### 手动测试
如果用户在对话中测试,帮助用户:
1. 按用例逐个执行
2. 记录实际输出
3. 按评分标准打分
#### 自动化测试
生成测试脚本骨架:
```python
"""
Agent 评测脚本
"""
import json
test_cases = [
{
"id": "TC-001",
"input": "...",
"expected": "...",
"criteria": {...}
}
]
def run_eval(agent, test_cases):
results = []
for tc in test_cases:
output = agent.run(tc["input"])
score = evaluate(output, tc["expected"], tc["criteria"])
results.append({
"id": tc["id"],
"input": tc["input"],
"output": output,
"score": score
})
return results
def evaluate(output, expected, criteria):
"""根据评分标准打分"""
pass
def generate_report(results):
"""生成评测报告"""
total = len(results)
avg_score = sum(r["score"] for r in results) / total
pass_rate = len([r for r in results if r["score"] >= 3]) / total
report = {
"total_cases": total,
"average_score": avg_score,
"pass_rate": f"{pass_rate:.1%}",
"details": results
}
return report
```
### 第四步:输出质量报告
```markdown
# Agent 质量评估报告
## 概要
| 指标 | 值 |
|------|-----|
| 测试用例数 | {n} |
| 平均分 | {x}/5 |
| 通过率 | {x}% |
| P0 用例通过率 | {x}% |
## 维度分析
| 维度 | 平均分 | 通过数 | 问题 |
|------|--------|-------|------|
| 准确率 | {x} | {n}/{m} | {主要问题} |
| 完整性 | {x} | {n}/{m} | {主要问题} |
| 一致性 | {x} | {n}/{m} | {主要问题} |
| 边界处理 | {x} | {n}/{m} | {主要问题} |
## 问题清单
| 问题ID | 用例 | 问题描述 | 严重度 | 建议 |
|-------|------|---------|-------|------|
## 改进建议
1. {建议1}
2. {建议2}
## 结论
{是否达到上线标准,还需要什么改进}
```
## 回归对比流程
当有历史测试数据时:
```markdown
## 回归对比
### 版本对比
| 指标 | v{旧版本} | v{新版本} | 变化 |
|------|---------|---------|------|
| 平均分 | {x} | {y} | {+/-z} |
| 通过率 | {x}% | {y}% | {+/-z}% |
### 新增失败
| 用例 | 旧版本得分 | 新版本得分 | 可能原因 |
|------|----------|----------|---------|
### 改进项
| 用例 | 旧版本得分 | 新版本得分 | 改进原因 |
|------|----------|----------|---------|
### 回归结论
{是否通过回归测试,有哪些需要关注}
```
## If Connectors Available
If **代码托管** is connected:
- 将测试用例和报告提交到 Git 仓库,关联到对应的 Issue/PR
If **项目跟踪** is connected:
- 将发现的 Bug 创建为 Issue,附带复现步骤
If no connectors available:
- 输出为本地 Markdown 文件(默认行为)
don't have the plugin yet? install it then click "run inline in claude" again.