Files
2026-07-13 21:36:54 +08:00

5.0 KiB
Raw Permalink Blame History

Google 测试标准参考手册

Google 测试最佳实践与标准的全面指南。


AAA 模式(Arrange-Act-Assert

每个测试都应遵循以下结构:

1. 准备(Arrange

**前置条件**
- 系统处于已知状态
- 测试数据已准备
- 依赖已模拟/配置

2. 执行(Act

**测试步骤**
1. 执行操作
2. 触发行为
3. 运行操作

3. 断言(Assert

**预期结果**:
✅ 验证标准
✅ 可观察的结果
✅ 系统状态验证

测试用例设计原则

1. 测试用例 ID 命名规范

TC-[分类]-[编号]

示例:
- TC-CLI-001CLI 测试)
- TC-WEB-042Web 测试)
- TC-API-103API 测试)
- TC-SEC-007(安全测试)

2. 优先级分类

P0(阻断级)——发布前必须修复

  • 阻碍核心功能
  • 安全漏洞(SQL 注入、XSS
  • 数据损坏/丢失
  • 系统崩溃

P1(严重级)——两周内修复

  • 主要功能故障(存在变通方案)
  • 严重的用户体验下降
  • 性能问题

P2(高级)——四周内修复

  • 次要功能问题
  • 边缘情况
  • 非关键性缺陷

P3(中级)——条件允许时修复

  • 外观问题
  • 罕见的边缘情况
  • 锦上添花的改进

P4(低级)——可选

  • 文档拼写错误
  • 轻微的 UI 对齐问题

3. 测试类型

单元测试

  • 测试单个函数/方法
  • 无外部依赖
  • 执行速度快(<100ms
  • 覆盖率:语句 ≥80%,分支 ≥75%

集成测试

  • 测试组件间的交互
  • 使用真实依赖(数据库、API
  • 执行时间适中
  • 覆盖率:关键用户路径

端到端测试

  • 测试完整的用户工作流
  • 使用真实浏览器/环境
  • 执行速度慢
  • 覆盖率:正常路径 + 关键故障场景

安全测试

  • 覆盖 OWASP Top 10
  • 输入验证
  • 身份验证/授权
  • 数据保护

覆盖率阈值

代码覆盖率目标

  • 语句覆盖率:≥80%
  • 分支覆盖率:≥75%
  • 函数覆盖率:≥85%
  • 行覆盖率:≥80%

测试分布(推荐)

  • 单元测试:70%
  • 集成测试:20%
  • 端到端测试:10%

测试隔离

强制性原则

  1. 不共享状态

     错误:测试共享全局变量
     正确:每个测试使用独立数据
    
  2. 每个测试使用新数据

    beforeEach(() => {
      database.seed(freshData);
    });
    
  3. 测试后清理

    afterEach(() => {
      database.cleanup();
      mockServer.reset();
    });
    

快速失败验证

关键安全模式

// ❌ 错误:回退到模拟数据
if (error) {
  return getMockData(); // 错误——掩盖问题
}

// ✅ 正确:立即失败
if (error || !data) {
  throw new Error(error?.message || '操作失败');
}

输入验证

// 在任意操作之前进行验证
function processSkillName(input: string): void {
  // 先做安全检查
  if (input.includes('..')) {
    throw new ValidationError('检测到路径遍历');
  }

  if (input.startsWith('/')) {
    throw new ValidationError('不允许使用绝对路径');
  }

  // 再执行业务逻辑
  return performOperation(input);
}

测试文档标准

测试用例模板

### TC-XXX-YYY:描述性标题

**优先级**P0/P1/P2/P3/P4
**类型**:单元测试/集成测试/端到端测试/安全测试
**预计耗时**X 分钟

**前置条件**
- 具体、可验证的条件

**测试步骤**
1. 确切的命令或操作
2. 具体的输入数据
3. 验证步骤

**预期结果**:
✅ 可衡量的结果
✅ 具体的验证标准

**通过/失败标准**
- ✅ 通过:所有验证步骤均成功
- ❌ 失败:出现任何错误或偏差

**潜在缺陷**
- 已知的边缘情况
- 安全隐患

质量门禁

发布标准

门禁项 阈值 是否阻断
测试执行 100%
通过率 ≥80%
P0 缺陷 0
P1 缺陷 ≤5
代码覆盖率 ≥80%
安全 90% OWASP

每日检查点

晨会

  • 昨日进展
  • 今日计划
  • 受阻事项

下班前

  • 已执行的测试
  • 通过率
  • 已提交的缺陷
  • 明日计划

周度审查

周五报告

  • 本周总结
  • 基线对比
  • 质量门禁状态
  • 下周计划

最佳实践总结

应做事项:

  • 编写可重现的测试用例
  • 每次测试后更新追踪记录
  • 失败时立即提交缺陷
  • 遵循 AAA 模式
  • 保持测试隔离
  • 记录环境详情

禁止事项:

  • 跳过测试文档
  • 批量更新 CSV
  • 忽略安全测试
  • 在生产数据上运行测试
  • 跳过清理操作
  • 硬编码测试数据

参考资料