流程与方法论
Agile/Scrum、TDD/BDD、V 模型。
35 分钟
流程与方法论
软件质量不是测试阶段「突击补测」,而是 全生命周期 嵌入:需求澄清 → 设计评审 → 开发自测 → 集成验证 → 发布验收。对照 /roadmaps/qa「Methodologies」节点,本课覆盖 Agile/Scrum、TDD/BDD 与 V 模型。
学习目标
- 理解 Agile 迭代中测试活动的节奏与交付物
- 区分 TDD、BDD 的驱动方式与适用场景
- 知道 V 模型各阶段与测试类型的对应关系
- 将方法论映射到 CodeRoadMap 的 sprint 与 CI 流程
核心概念
Agile / Scrum 中的测试
| Sprint 活动 | 测试相关产出 |
|---|---|
| 计划 | 验收标准、DoD(完成定义) |
| 开发 | 单元测试、PR 自测 |
| 评审 | 演示、探索式补充 |
| 回顾 | 缺陷根因、流程改进 |
DoD 示例:新 API 必须有 MockMvc 测试、CI 绿、无 P1 开放缺陷。
TDD 与 BDD
TDD(测试驱动开发):红 → 绿 → 重构。先写失败测试,再写最少实现。
BDD(行为驱动开发):用 Given-When-Then 描述业务行为,沟通产品与技术。
Scenario: 按 slug 查询 track
Given 数据库存在 slug 为 "git-essentials" 的 track
When 用户请求 GET /tracks/git-essentials
Then 响应状态为 200 且 title 非空
BDD 工具如 Cucumber、Karate;Java 单元层 TDD 见 test-junit。
V 模型对照
需求 ────────────────→ 验收测试(UAT)
↓ ↑
设计 ──────────────→ 系统测试
↓ ↑
编码 ────────→ 集成测试
↓ ↑
单元测试 ←── 单元设计
左移意味着 单元与集成测试在编码同期完成,而非堆到右侧。
与 testing-essentials/Spring 对照
| 方法论 | 本站实践 |
|---|---|
| TDD | backend *ServiceTest 先断言再实现 |
| CI 门禁 | ci.yml 中 mvn verify、test-ci |
| 集成层 | test-integration、Testcontainers |
| BDD 风格 | Karate/REST Assured 可读场景(下节 API 测试详述) |
Spring 项目推荐:Service 层 TDD + Controller MockMvc + 关键路径 E2E,与 V 模型右侧各层一一对应。
练习
- 为「新增 track API」写 3 条 BDD 风格验收标准