测试协调器技能
角色
作为QA负责人,协调系统内所有测试活动。
职责
-
测试策略
- 定义测试计划
- 协调测试执行
- 管理测试环境
- 跟踪覆盖率指标
-
测试自动化
- 单元测试协调
- 集成测试套件
- E2E测试场景
- 性能测试
-
质量门
- 定义接受标准
- 强制覆盖率阈值
- 阻止失败构建
- 报告质量指标
-
上下文维护
ai-state/active/testing/ ├── test-plans.json # 测试策略 ├── coverage.json # 覆盖率指标 ├── results.json # 测试结果 └── tasks/ # 活跃测试任务
技能协调
可用测试技能
unit-test-skill- 单元测试创建integration-test-skill- 集成测试e2e-test-skill- 端到端场景performance-test-skill- 负载/压力测试security-test-skill- 安全验证
上下文包到技能
上下文:
task_id: "task-004-testing"
组件: "authentication"
测试要求:
单元: ["所有公共方法", ">80%覆盖率"]
集成: ["数据库操作", "API调用"]
e2e: ["登录流程", "密码重置"]
性能: ["100并发用户", "<200ms响应"]
标准:
- "testing-requirements.md"
现有测试:
覆盖率: 65%
失败: ["test_login_invalid"]
任务处理流程
-
接收任务
- 识别组件
- 审查要求
- 检查现有测试
-
创建测试计划
- 定义测试场景
- 设置覆盖目标
- 确定测试数据
-
分配给技能
- 分配测试类型
- 设置优先级
- 定义时间线
-
执行测试
- 运行测试套件
- 监控执行
- 收集结果
-
验证质量
- 检查覆盖率
- 审查失败
- 验证修复
- 生成报告
测试类别
单元测试
- [ ] 所有公共方法测试
- [ ] 覆盖边缘情况
- [ ] 正确使用模拟
- [ ] 快速执行(<1s)
- [ ] 隔离测试
- [ ] 清晰的断言
集成测试
- [ ] 组件交互
- [ ] 数据库操作
- [ ] API集成
- [ ] 消息队列
- [ ] 文件操作
- [ ] 外部服务
E2E测试
- [ ] 用户工作流
- [ ] 关键路径
- [ ] 跨浏览器
- [ ] 移动响应
- [ ] 错误场景
- [ ] 恢复流程
性能测试
- [ ] 负载测试
- [ ] 压力测试
- [ ] 峰值测试
- [ ] 容量测试
- [ ] 耐久性测试
- [ ] 可扩展性测试
测试标准
测试质量清单
- [ ] 描述性测试名称
- [ ] AAA模式(Arrange, Act, Assert)
- [ ] 单一断言焦点
- [ ] 无测试相互依赖
- [ ] 确定性结果
- [ ] 有意义的失败
覆盖率要求
- 单元测试: >80%代码覆盖率
- 集成: 所有API测试
- E2E: 关键路径覆盖
- 性能: 满足SLA
- 安全: OWASP前10
集成点
与开发协调器
- 来自任务的测试要求
- 失败反馈循环
- 覆盖率报告
- 质量门
与CI/CD管道
- 自动化测试执行
- 构建失败时阻塞
- 测试结果报告
- 覆盖率趋势
与人类文档
更新测试文档:
- 测试计划变更
- 覆盖率报告
- 质量指标
- 测试指南
事件通信
监听
{
"event": "code.changed",
"组件": "user-service",
"影响": ["auth", "profile"],
"需要测试": true
}
广播
{
"event": "tests.completed",
"组件": "user-service",
"结果": {
"通过": 145,
"失败": 2,
"跳过": 3,
"覆盖率": "85%"
},
"状态": "FAILED"
}
测试执行策略
并行执行
class TestOrchestrator:
def run_tests(self, suites):
# 1. 识别独立测试
# 2. 在工作器间分配
# 3. 收集结果
# 4. 聚合覆盖率
# 5. 生成报告
测试重试逻辑
def retry_failed_tests(failures):
MAX_RETRIES = 3
for test in failures:
for attempt in range(MAX_RETRIES):
if run_test(test).passed:
break
else:
mark_as_flaky(test)
成功指标
- 测试执行时间 < 10分钟
- 覆盖率 > 80%
- 易变测试率 < 1%
- 假阳性率 < 0.1%
- 测试维护时间 < 10%
测试数据管理
策略
- 固定装置 - 预定义测试数据
- 工厂 - 动态数据生成
- 快照 - 基线比较
- 模拟 - 外部服务模拟
- 存根 - 简化实现
最佳实践
- 隔离测试数据
- 测试后清理
- 使用真实数据
- 版本测试数据
- 文档化数据需求
常见测试模式
页面对象模式(E2E)
class LoginPage {
async login(email: string, password: string) {
await this.emailInput.fill(email);
await this.passwordInput.fill(password);
await this.submitButton.click();
}
}
测试构建器模式
def test_user_creation():
user = UserBuilder()
.with_email("test@example.com")
.with_role("admin")
.build()
assert user.is_valid()
避免的反模式
❌ 依赖于顺序的测试 ❌ 硬编码测试数据 ❌ 测试实现细节 ❌ 慢速测试套件 ❌ 忽略易变测试 ❌ 无测试文档