手工测试
测试计划、用例、Oracle、探索式测试。
35 分钟
手工测试
自动化再强,手工测试 仍是发现体验问题、探索边界与验收业务逻辑的主力。对照 /roadmaps/qa「Manual Testing」节点,本课覆盖测试计划、用例设计、Oracle 与探索式测试。
学习目标
- 编写可执行的测试计划与结构化用例
- 理解 Oracle(预期结果判定依据)的几种来源
- 掌握探索式测试的 charter 写法
- 将手工用例与自动化用例分层协作
核心概念
测试计划要素
| 要素 | 说明 |
|---|---|
| 范围 | 测什么、不测什么 |
| 策略 | 手工 / 自动 / 专项比例 |
| 环境 | backend:8080、platform:3000、测试库 |
| 准入/准出 | 何时开测、何时可发布 |
| 风险 | 高优先级模块与缓解措施 |
用例结构
用例 ID: TC-TRK-001
前置条件: 数据库有 git-essentials track
步骤: 1. 打开 /tracks/git-essentials 2. 点击第一课
预期: 课时页标题与 slug 一致,无 404
Oracle: 与 API GET /tracks/{slug} 响应一致
Oracle 来源:规格文档、历史版本、同类系统、领域专家、或 自动化断言脚本(Oracle 自动化是 API/E2E 测试的核心)。
探索式测试
有时间盒的 charter,而非无目的乱点:
Charter:在 30 分钟内探索 tracks 列表的筛选与排序,关注空状态、超长标题、网络慢时的表现。
记录:发现的问题、未覆盖区域、值得自动化的路径。
与自动化分工
- 手工优先:新功能首次验收、UI 审美、复杂业务 judgment
- 自动化优先:回归、数据组合多、需 nightly 重复的路径
与 testing-essentials/Spring 对照
| 手工测试 | 自动化对应 |
|---|---|
| 用例步骤 + 预期 | JUnit @Test 方法名即行为描述 |
| Oracle 对照 API | MockMvc 断言 JSON 字段、test-mockmvc |
| 探索式 charter | Playwright 冒烟脚本(test-e2e) |
| 测试数据准备 | @Sql、Flyway 种子、test profile |
写好手工用例后再 挑选稳定路径自动化,避免「录一遍脚本就扔」导致维护地狱。
练习
- 为 CodeRoadMap 首页 → tracks 列表写 2 条完整手工用例
- 写一条 20 分钟探索式 charter,覆盖登录或选课流程
- 标出 3 条适合转 Playwright、3 条必须保留手工的场景