10-12-run-tests-collect-issues.md 12 KB

Story 10.12: 运行测试并收集问题和改进建议

Status: ready-for-dev

Story

作为测试开发者, 我想要运行订单管理测试并收集反馈, 以便发现潜在问题并改进测试或工具。

Acceptance Criteria

Given 所有订单管理测试用例已编写 When 运行完整的订单管理 E2E 测试套件 Then 记录所有问题(失败的测试、错误消息、使用体验) Then 分类问题:业务逻辑 bug vs 测试代码问题 vs 工具不足 And 整理成问题清单 And 识别是否需要扩展 e2e-test-utils 工具包

关注点:

  • 现有 Select 工具是否满足多选择器表单需求?
  • 是否需要复杂表单提交专用工具?
  • 是否需要状态流转测试工具?
  • 是否需要资产附件操作工具?
  • 错误消息是否清晰?

Tasks / Subtasks

  • 运行完整订单管理测试套件 (AC: Given, When)
    • 确认所有测试文件存在(order-*.spec.ts)
    • 使用 pnpm test:e2e:chromium order- 运行所有订单测试
    • 记录测试执行时间和通过率
  • 收集测试执行结果 (AC: Then #1)
    • 记录所有失败的测试
    • 记录错误消息和堆栈信息
    • 记录测试执行过程中的性能问题
    • 记录使用体验问题(如:等待时间、定位困难等)
  • 分类和分析问题 (AC: Then #2, #3)
    • 区分业务逻辑 bug vs 测试代码问题 vs 工具不足
    • 识别常见问题模式
    • 评估每个问题的严重程度(CRITICAL/HIGH/MEDIUM/LOW)
  • 生成问题清单报告 (AC: And #1)
    • 整理成结构化的问题清单
    • 为每个问题提供复现步骤
    • 为每个问题提供修复建议
  • 评估工具扩展需求 (AC: And #2)
    • 分析 Select 工具是否满足多选择器表单需求
    • 评估是否需要复杂表单提交专用工具
    • 评估是否需要状态流转测试工具
    • 评估是否需要资产附件操作工具
    • 检查错误消息是否清晰
    • 生成工具扩展建议清单
  • 更新 Story 文档记录发现
    • 将问题清单添加到 Dev Notes
    • 将工具扩展建议添加到 Dev Notes
    • 为 Story 10.13 提供决策依据(是否需要扩展工具包)

Dev Notes

Epic Context

Epic 10: 订单管理 E2E 测试 (Epic C - 业务测试 Epic)

  • 目标: 测试开发者可以为订单管理功能编写完整的 E2E 测试,验证订单的 CRUD、状态流转、人员关联和附件管理功能
  • 业务分组: Epic C(业务测试 Epic)
  • 背景: 订单管理是招聘系统的核心业务功能,涉及复杂表单(多选择器联动)、状态流转、人员关联等场景
  • 模式: 业务测试为主,工具包支持为辅(遵循 Epic A 成功模式)

当前 Epic 10 状态:

  • Story 10.1: ✅ 创建订单管理 Page Object
  • Story 10.2: ✅ 编写订单列表查看测试
  • Story 10.3: ✅ 编写订单搜索和筛选测试
  • Story 10.4: ✅ 编写创建订单测试
  • Story 10.5: ✅ 编写编辑订单测试
  • Story 10.6: ✅ 编写删除订单测试
  • Story 10.7: ✅ 编写订单状态流转测试
  • Story 10.8: ✅ 编写订单详情查看测试
  • Story 10.9: ✅ 编写人员关联功能测试
  • Story 10.10: ✅ 编写附件管理测试
  • Story 10.11: ✅ 编写订单完整流程测试
  • Story 10.12: 🔄 当前 Story - 运行测试并收集问题
  • Story 10.13: ⏳ 扩展工具包(如需要)
  • Story 10.14: ⏳ 订单管理稳定性验证

前序 Story 关键发现总结

从 Story 10.1-10.11 学到的经验:

  1. Page Object 设计模式 (10.1):

    • orderManagementPage 提供完整的订单管理操作方法
    • 使用 createOrder() 创建订单
    • 使用 openDetailDialog() 查看订单详情
    • 使用 closeDetailDialog() 关闭订单详情对话框
  2. 创建订单测试 (10.4):

    • 必填字段:订单名称、预计开始日期
    • 可选字段:平台、公司、渠道
    • 使用时间戳确保订单名称唯一性
  3. 编辑订单测试 (10.5):

    • 使用 editOrder() 方法编辑订单
    • 可以修改订单基本信息和关联信息
    • 编辑后验证列表更新
  4. 状态流转测试 (10.7):

    • 使用 activateOrder() 激活订单(草稿 → 已确认)
    • 使用 closeOrder() 关闭订单(已确认 → 已完成)
    • 注意:激活后状态是"已确认"而非"进行中"
  5. 人员关联测试 (10.9):

    • 使用 API 创建残疾人数据:createDisabledPersonViaAPI()
    • 使用 addPersonToOrder() 添加人员到订单
    • 设置入职日期和薪资
  6. 附件管理测试 (10.10):

    • 使用 openAddAttachmentDialog() 打开附件上传对话框
    • 使用 uploadAttachment() 上传附件
    • 使用 fixtures 文件进行测试
  7. 完整流程测试 (10.11):

    • FileSelector 对话框已调试完成
    • 附件上传功能已验证
    • 2 个测试全部通过

已知问题和修复:

  1. Page Object Bug 修复:

    • 修复 getPersonListFromDetail() 方法
    • 修复 closeUploadDialog() 方法
    • 修复 getOrderStatus() 方法中的 statusValue is not defined 错误
    • 修复 confirmActivate() 方法中的 networkidle 超时问题
  2. 代码审查问题修复:

    • HIGH: 附件上传被跳过 - ✅ 已修复
    • HIGH: 人员姓名参数未使用 - ✅ 已修复
    • HIGH: 编辑流程未修改订单信息 - ✅ 已修复
    • MEDIUM: 日期硬编码 2025 年 - ✅ 已修复
    • MEDIUM: 平台和公司选择器使用 .first() - ✅ 已修复

测试文件清单

现有订单管理测试文件:

web/tests/e2e/specs/admin/
├── order-list.spec.ts           # 订单列表查看测试
├── order-filter.spec.ts         # 订单搜索和筛选测试
├── order-create.spec.ts         # 创建订单测试
├── order-edit.spec.ts           # 编辑订单测试
├── order-delete.spec.ts         # 删除订单测试
├── order-status.spec.ts         # 订单状态流转测试
├── order-detail.spec.ts         # 订单详情查看测试
├── order-person.spec.ts         # 人员关联功能测试
├── order-attachment.spec.ts     # 附件管理测试
├── order-complete.spec.ts       # 订单完整流程测试
└── order-config-validation.spec.ts  # 配置数据验证测试(Story 11.9)

Page Object 文件:

web/tests/e2e/pages/admin/
└── order-management.page.ts     # 订单管理 Page Object

运行测试命令

运行所有订单管理测试:

cd web && pnpm test:e2e:chromium order-

运行单个测试文件:

cd web && pnpm test:e2e:chromium order-complete

快速失败模式(调试用):

# 60秒后中断
timeout 60 pnpm test:e2e:chromium order-

问题分类框架

分类维度:

  1. 业务逻辑 Bug (Product Bug)

    • 订单创建失败
    • 状态流转不正确
    • 人员关联失败
    • 附件上传失败
    • 数据验证错误
  2. 测试代码问题 (Test Code Issue)

    • 选择器定位失败
    • 等待时间不足
    • 测试数据准备问题
    • 断言错误
    • 测试隔离问题
  3. 工具不足 (Tool Limitation)

    • Select 工具不支持多选择器联动
    • 缺少复杂表单提交工具
    • 缺少状态流转测试工具
    • 缺少附件操作工具
    • 错误消息不清晰
  4. 性能问题 (Performance Issue)

    • 测试执行时间过长
    • 网络请求超时
    • 页面加载缓慢
    • 动画等待时间过长
  5. 稳定性问题 (Stability Issue)

    • Flaky 测试(偶发性失败)
    • 并行执行冲突
    • 数据清理不彻底
    • 时间相关问题

工具扩展评估清单

Select 工具评估:

  • 是否能正确处理平台、公司、渠道三个级联选择器?
  • 异步加载选项时等待时间是否足够?
  • 错误提示是否清晰?

表单工具评估:

  • 创建/编辑订单表单填写是否流畅?
  • 是否需要 fillComplexForm() 工具?
  • 多步骤表单操作是否需要封装?

状态流转工具评估:

  • 激活/关闭订单操作是否需要专用工具?
  • 是否需要 transitionOrderStatus() 工具?
  • 状态验证是否方便?

附件工具评估:

  • FileSelector 对话框操作是否稳定?
  • 是否需要 attachAssetToOrder() 工具?
  • fixtures 文件管理是否方便?

错误消息评估:

  • 测试失败时错误消息是否清晰?
  • 是否能快速定位问题原因?
  • 是否需要改进错误提示?

问题报告模板

为每个发现的问题使用以下模板:

### 问题编号: ST10-12-001

**严重程度**: CRITICAL | HIGH | MEDIUM | LOW

**分类**: 业务逻辑 Bug | 测试代码问题 | 工具不足 | 性能问题 | 稳定性问题

**标题**: 简短的问题描述

**复现步骤**:
1. 步骤 1
2. 步骤 2
3. 步骤 3

**预期结果**: 描述期望的结果

**实际结果**: 描述实际发生的结果

**错误信息**: ```
错误消息或堆栈信息

影响范围: 哪些测试受影响

修复建议: 提供修复方案建议

相关文件: 涉及的文件路径


### Story 10.13 决策依据

**本 Story 完成后需要回答的关键问题:**

1. **是否需要扩展 Select 工具?**
   - 如果发现级联选择器问题 → 需要扩展
   - 如果异步加载等待不足 → 需要优化
   - 如果错误消息不清晰 → 需要改进

2. **是否需要实现复杂表单工具?**
   - 如果表单填写代码重复度高 → 需要 `fillComplexForm()`
   - 如果多步骤表单操作复杂 → 需要封装

3. **是否需要实现状态流转工具?**
   - 如果状态操作代码重复 → 需要 `transitionOrderStatus()`
   - 如果状态验证不方便 → 需要改进

4. **是否需要实现附件工具?**
   - 如果附件操作不稳定 → 需要改进 `attachAssetToOrder()`
   - 如果 fixtures 管理不方便 → 需要封装

**决策:**
- 如果发现 3 个以上工具扩展需求 → 执行 Story 10.13
- 如果发现 1-2 个小问题 → 在本 Story 中直接修复
- 如果无工具扩展需求 → 标记 Story 10.13 为 N/A,直接进入 Story 10.14

### Project Structure Notes

**测试文件位置:**

web/tests/e2e/ ├── pages/admin/ │ └── order-management.page.ts # Page Object ├── specs/admin/ │ └── order-*.spec.ts # 所有订单测试文件 └── fixtures/

├── images/                     # 测试图片
└── documents/                  # 测试文档

```

本 Story 完成后的影响:

  • 生成订单管理测试问题清单
  • 评估 e2e-test-utils 工具包扩展需求
  • 为 Story 10.13(扩展工具包)提供决策依据
  • 为 Story 10.14(稳定性验证)做准备

References

Epic 需求来源:

Page Object 实现:

前序 Story 学习:

项目上下文:

类似 Story 参考模式:

Dev Agent Record

Agent Model Used

待开发时记录

Debug Log References

待开发时记录

Completion Notes List

待开发时记录

File List

待开发时记录