# Test Design: Story 5.1

Date: 2025-10-16
Designer: Quinn (Test Architect)

## Test Strategy Overview

- **Total test scenarios**: 24
- **Unit tests**: 8 (33%)
- **Integration tests**: 10 (42%)
- **E2E tests**: 6 (25%)
- **Priority distribution**: P0: 10, P1: 8, P2: 6

## Test Scenarios by Acceptance Criteria

### AC1: 支持创建和管理活动类型（去程活动、返程活动）

#### Scenarios

| ID           | Level       | Priority | Test                      | Justification            |
| ------------ | ----------- | -------- | ------------------------- | ------------------------ |
| 5.1-UNIT-001 | Unit        | P0       | 验证活动类型枚举值        | 纯业务逻辑验证           |
| 5.1-UNIT-002 | Unit        | P0       | 验证活动名称格式          | 输入验证逻辑             |
| 5.1-INT-001  | Integration | P0       | 创建去程活动              | 数据库操作验证           |
| 5.1-INT-002  | Integration | P0       | 创建返程活动              | 数据库操作验证           |
| 5.1-INT-003  | Integration | P1       | 更新活动类型              | 数据一致性验证           |
| 5.1-INT-004  | Integration | P1       | 删除活动                  | 数据完整性验证           |
| 5.1-E2E-001  | E2E         | P1       | 管理员创建活动完整流程    | 关键用户旅程验证         |

### AC2: 支持配置路线信息（出发地、目的地、上车点、下车点、出发时间、车型、价格、座位数）

#### Scenarios

| ID           | Level       | Priority | Test                      | Justification            |
| ------------ | ----------- | -------- | ------------------------- | ------------------------ |
| 5.1-UNIT-003 | Unit        | P0       | 验证路线字段格式          | 输入验证逻辑             |
| 5.1-UNIT-004 | Unit        | P0       | 验证价格和座位数范围      | 业务规则验证             |
| 5.1-INT-005  | Integration | P0       | 创建完整路线信息          | 数据库操作验证           |
| 5.1-INT-006  | Integration | P1       | 更新路线信息              | 数据一致性验证           |
| 5.1-INT-007  | Integration | P1       | 删除路线                  | 数据完整性验证           |
| 5.1-E2E-002  | E2E         | P1       | 管理员配置路线完整流程    | 关键用户旅程验证         |

### AC3: 支持设置活动关联的路线

#### Scenarios

| ID           | Level       | Priority | Test                      | Justification            |
| ------------ | ----------- | -------- | ------------------------- | ------------------------ |
| 5.1-UNIT-005 | Unit        | P1       | 验证活动路线关联逻辑      | 业务逻辑验证             |
| 5.1-INT-008  | Integration | P0       | 创建活动与路线关联        | 数据库关联验证           |
| 5.1-INT-009  | Integration | P1       | 更新活动路线关联          | 数据一致性验证           |
| 5.1-E2E-003  | E2E         | P1       | 活动选择组件集成测试      | 用户体验流程验证         |

### AC4: 支持启用/禁用活动、路线

#### Scenarios

| ID           | Level       | Priority | Test                      | Justification            |
| ------------ | ----------- | -------- | ------------------------- | ------------------------ |
| 5.1-UNIT-006 | Unit        | P0       | 验证状态切换逻辑          | 业务逻辑验证             |
| 5.1-UNIT-007 | Unit        | P1       | 验证启用/禁用权限检查     | 安全逻辑验证             |
| 5.1-INT-010  | Integration | P0       | 启用/禁用活动操作         | 数据库状态变更验证       |
| 5.1-INT-011  | Integration | P0       | 启用/禁用路线操作         | 数据库状态变更验证       |
| 5.1-E2E-004  | E2E         | P1       | 管理员启用禁用操作流程    | 关键用户旅程验证         |

### 搜索和筛选功能测试

#### Scenarios

| ID           | Level       | Priority | Test                      | Justification            |
| ------------ | ----------- | -------- | ------------------------- | ------------------------ |
| 5.1-UNIT-008 | Unit        | P2       | 验证搜索参数处理逻辑      | 业务逻辑验证             |
| 5.1-INT-012  | Integration | P1       | 活动搜索功能测试          | API集成验证              |
| 5.1-INT-013  | Integration | P1       | 路线搜索功能测试          | API集成验证              |
| 5.1-E2E-005  | E2E         | P2       | 管理后台搜索筛选流程      | 用户体验流程验证         |

### 管理后台页面组件测试

#### Scenarios

| ID           | Level       | Priority | Test                      | Justification            |
| ------------ | ----------- | -------- | ------------------------- | ------------------------ |
| 5.1-E2E-006  | E2E         | P2       | 管理后台页面导航和操作    | 完整用户界面流程验证     |

## 详细测试场景描述

### P0 关键测试场景

**5.1-UNIT-001: 验证活动类型枚举值**
- 测试去程活动和返程活动枚举值定义
- 验证无效活动类型的错误处理

**5.1-UNIT-002: 验证活动名称格式**
- 测试活动名称长度限制
- 验证特殊字符处理
- 测试必填字段验证

**5.1-INT-001: 创建去程活动**
- 测试活动创建API
- 验证数据库记录正确性
- 测试关联字段完整性

**5.1-INT-005: 创建完整路线信息**
- 测试路线创建API
- 验证所有字段正确存储
- 测试价格和座位数约束

### P1 核心功能测试场景

**5.1-INT-012: 活动搜索功能测试**
- 测试按名称搜索
- 测试按描述搜索
- 验证搜索结果准确性

**5.1-E2E-001: 管理员创建活动完整流程**
- 登录管理后台
- 导航到活动管理页面
- 创建新活动
- 验证活动显示在列表中

### P2 辅助功能测试场景

**5.1-E2E-005: 管理后台搜索筛选流程**
- 测试活动类型筛选
- 测试路线车型筛选
- 验证筛选结果准确性

## 风险覆盖

- **数据完整性风险**: 通过 P0 集成测试覆盖
- **业务逻辑错误风险**: 通过 P0 单元测试覆盖
- **用户体验风险**: 通过 P1 E2E 测试覆盖
- **安全权限风险**: 通过 P1 单元测试覆盖

## 推荐执行顺序

1. **P0 单元测试** (快速失败)
   - 5.1-UNIT-001 到 5.1-UNIT-007

2. **P0 集成测试**
   - 5.1-INT-001, 5.1-INT-002, 5.1-INT-005, 5.1-INT-010, 5.1-INT-011

3. **P1 测试**
   - 剩余集成测试和 E2E 测试

4. **P2 测试** (时间允许时)
   - 5.1-UNIT-008, 5.1-E2E-005, 5.1-E2E-006

## 测试环境要求

### 单元测试
- 无外部依赖
- 使用 Jest/Vitest 测试框架
- Mock 所有外部服务

### 集成测试
- 测试数据库实例
- API 服务器运行
- 认证中间件模拟

### E2E 测试
- 完整应用环境
- 测试用户账户
- 浏览器自动化 (Playwright)

## 质量检查清单

- [x] 每个验收标准都有测试覆盖
- [x] 测试级别适当（无过度测试）
- [x] 跨级别无重复覆盖
- [x] 优先级与业务风险对齐
- [x] 测试ID遵循命名规范
- [x] 场景原子化且独立