chore: 移除已生成的角色 UAT 文档并加入忽略规则

将 docs/guides/role-uat 与 output/doc/role-uat 加入 .gitignore,
避免重复提交由脚本生成的角色 UAT 测试手册和导出文档。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Cheng Zhou
2026-05-25 12:35:39 +08:00
parent fce671d7e0
commit ffcf217142
19 changed files with 6 additions and 2126 deletions
+6
View File
@@ -69,6 +69,12 @@ docs/postman/local.postman_environment.json
docs/postman/*.local.json docs/postman/*.local.json
!docs/postman/*.example.json !docs/postman/*.example.json
# Role test documents and generated exports
docs/guides/role-test/
output/doc/role-test/
docs/guides/role-uat/
output/doc/role-uat/
# Docker / runtime data # Docker / runtime data
pg_data/ pg_data/
backend/app/uploads/ backend/app/uploads/
-166
View File
@@ -1,166 +0,0 @@
# CTMS 角色功能验收测试总说明
## 1. 测试目标
本测试文档包用于组织真实业务用户完成 CTMS 功能验收。测试对象包括 1 个系统管理员角色和 6 个项目内业务角色:
- ADMIN:系统管理员
- PM:项目负责人
- CRA:临床监查员
- PV:药物警戒
- MEDICAL_REVIEW:医学审核
- IMP:药品管理员
- QA:质量稽查
测试重点不是验证接口实现细节,而是确认真实用户能否按自己的岗位职责完成日常工作,并确认系统能正确阻止越权操作。
## 2. 测试边界
本轮测试覆盖:
- 登录、注册审核、账号启停、密码重置
- 项目、中心、项目成员、CRA 绑定
- 项目权限配置和权限变更生效
- 项目总览、立项配置、里程碑
- 受试者、访视、PDS、受试者历史
- AE/SAE、PD、监查访视问题
- 合同费用、付款节点、费用附件
- 药品流向、物资、设备
- 文档、附件、FAQ、知识库
- 审计日志查看、筛选、导出
- 项目锁定、停用用户、非项目成员访问等规则
本轮测试不覆盖:
- 自动化测试脚本编写
- 性能压测
- 安全渗透测试
- 生产数据迁移验证
- 第三方系统集成验收
## 3. 测试环境
| 项目 | 内容 |
|---|---|
| 前端地址 | `http://localhost:8888` |
| 后端 API | 同域 `/api/v1/*` |
| 浏览器 | Chrome、Edge 或 Safari 最新稳定版 |
| 测试数据 | 使用本文档定义的 UAT 数据 |
| 数据隔离 | 不使用真实生产受试者、真实药品批号或真实合同金额 |
测试前由 ADMIN 确认应用可访问,数据库已完成迁移,页面可以正常登录。
## 4. 测试账号
密码建议统一设置为 `Uat123456`,测试完成后由 ADMIN 统一禁用或重置。
| 账号 | 角色 | 项目成员 | 用途 |
|---|---|---|---|
| `uat-admin@example.com` | ADMIN | 不要求 | 系统治理、账号、项目、权限、审计 |
| `uat-pm@example.com` | PM | 是 | 项目负责人全流程 |
| `uat-cra@example.com` | CRA | 是 | 受试者、访视、监查问题 |
| `uat-pv@example.com` | PV | 是 | AE/SAE、风险问题 |
| `uat-medical@example.com` | MEDICAL_REVIEW | 是 | 医学审核、医学信息协作 |
| `uat-imp@example.com` | IMP | 是 | 药品、物资、设备 |
| `uat-qa@example.com` | QA | 是 | 稽查、审计、只读核查 |
| `uat-no-role@example.com` | 普通启用用户 | 否 | 非项目成员访问边界 |
如环境已存在同名账号,ADMIN 可以复用,但必须确认账号状态为启用,角色和项目成员身份与上表一致。
## 5. UAT 基础数据
| 类型 | 编号或名称 | 说明 |
|---|---|---|
| 项目 | `UAT-CTMS-角色功能验收项目` | 所有角色共同使用 |
| 中心 1 | `UAT-中心-01` | 绑定 `uat-cra@example.com` |
| 中心 2 | `UAT-中心-02` | 用于中心切换和权限边界 |
| 受试者 1 | `UAT-SUBJ-001` | CRA 创建,后续访视和 AE 使用 |
| 受试者 2 | `UAT-SUBJ-002` | 用于状态流转 |
| 受试者 3 | `UAT-SUBJ-003` | 用于只读、历史和导出核查 |
| 药品批次 | `UAT-DRUG-BATCH-001` | IMP 药品流向测试 |
| 物资 | `UAT-MATERIAL-001` | IMP/QA 物资测试 |
| 设备 | `UAT-EQUIPMENT-001` | 设备管理测试 |
| 合同 | `UAT-CONTRACT-001` | PM 费用合同测试 |
| AE | `UAT-AE-001` | PV/医学审核测试 |
| PD | `UAT-PD-001` | 风险问题测试 |
| 监查问题 | `UAT-MONITOR-001` | CRA/QA 测试 |
| FAQ | `UAT-FAQ-001` | PM 维护、其他角色查看 |
| 知识库笔记 | `UAT-NOTE-001` | 医学审核/CRA/PV 协作 |
测试数据命名必须保留 `UAT-` 前缀,便于审计日志筛选和测试结束后清理。
## 6. 通用执行规则
1. 每个角色使用自己的账号登录,不共用浏览器会话。
2. 切换角色前退出登录,或使用无痕窗口。
3. 每个场景执行前确认当前项目为 `UAT-CTMS-角色功能验收项目`
4. 需要验证权限边界时,必须记录系统表现:按钮不可见、按钮禁用、提交后提示权限不足,或自动跳转。
5. 写操作完成后刷新页面,确认数据仍存在。
6. 涉及审计的操作完成后,由 ADMIN 或 QA 在审计日志中核查。
7. 若前置数据不存在,先回到 ADMIN 或 PM 手册补齐,不直接修改本角色测试步骤。
## 7. 结果判定
| 结果 | 判定标准 |
|---|---|
| 通过 | 用户按步骤完成操作,结果与期望一致,刷新后数据保持一致 |
| 失败 | 页面报错、数据错误、权限放行/拦截不符合期望 |
| 阻塞 | 测试无法继续,例如账号不可用、项目不可见、基础数据缺失 |
| 不适用 | 当前版本页面未提供对应入口,且产品确认本轮不验收 |
失败和阻塞必须记录截图、账号、时间、项目、操作路径和实际提示。
## 8. 缺陷记录格式
```markdown
### 缺陷编号:UAT-角色-序号
- 测试角色:
- 测试账号:
- 测试时间:
- 所属项目:
- 操作路径:
- 前置条件:
- 操作步骤:
- 期望结果:
- 实际结果:
- 截图或附件:
- 严重程度:阻塞 / 高 / 中 / 低
- 是否可复现:是 / 否
```
## 9. 场景模板
各角色手册统一使用以下格式:
```markdown
### 场景 X:场景名称
适用角色:
前置条件:
操作路径:
测试步骤:
1.
2.
3.
测试数据:
-
期望结果:
-
通过标准:
-
```
## 10. 验收完成标准
本轮角色功能验收完成需同时满足:
- ADMIN 手册全部核心场景通过。
- PM、CRA、PV、MEDICAL_REVIEW、IMP、QA 每个角色至少完成主流程和权限边界测试。
- 权限与规则交叉清单中高风险规则全部通过。
- 所有失败项均已登记,阻塞项已明确责任和后续处理方式。
- 测试负责人确认不再有影响继续验收的环境问题。
@@ -1,320 +0,0 @@
# ADMIN 系统管理员测试手册
## 1. 角色定位
ADMIN 负责系统级治理,包括账号、项目、中心、成员、权限和审计。ADMIN 不是项目岗位角色,但必须能完成项目初始化,并具备项目内 PM 操作的兜底访问能力。
## 2. 测试前置
- 使用 `uat-admin@example.com` 登录。
- 确认账号状态为启用。
- 参考 `00-测试总说明.md` 准备 UAT 数据。
- 每个高风险操作执行后记录审计日志是否生成。
## 3. 核心场景
### 场景 1:登录并进入管理后台
适用角色:ADMIN
前置条件:管理员账号已启用。
操作路径:登录页 -> 管理后台。
测试步骤:
1. 打开系统登录页。
2. 输入 `uat-admin@example.com` 和测试密码。
3. 点击登录。
4. 确认进入管理后台或可从导航进入管理后台。
测试数据:
- 账号:`uat-admin@example.com`
期望结果:
- 登录成功。
- 可看到账号管理、项目管理、权限管理、审计日志等入口。
- 未选择项目时不影响系统级管理功能。
通过标准:
- ADMIN 无需项目成员身份即可访问管理后台。
### 场景 2:创建或确认测试用户
适用角色:ADMIN
前置条件:已进入账号管理。
操作路径:管理后台 -> 账号管理。
测试步骤:
1. 进入账号管理列表。
2. 搜索 `uat-pm@example.com`
3. 若账号不存在,点击新建用户。
4. 填写邮箱、姓名、角色、科室和初始密码。
5. 保存后确认用户状态为启用。
6. 按同样方式确认 CRA、PV、MEDICAL_REVIEW、IMP、QA、无项目角色用户。
测试数据:
- `uat-pm@example.com`PM
- `uat-cra@example.com`CRA
- `uat-pv@example.com`PV
- `uat-medical@example.com`MEDICAL_REVIEW
- `uat-imp@example.com`IMP
- `uat-qa@example.com`QA
- `uat-no-role@example.com`:普通启用用户或任一非项目成员账号
期望结果:
- 所有测试用户存在且状态为启用。
- 用户角色与总说明一致。
- 用户创建或更新操作写入审计日志。
通过标准:
- 每个角色账号均可用于后续登录测试。
### 场景 3:审核自助注册用户
适用角色:ADMIN
前置条件:存在一个待审核注册用户。
操作路径:登录页 -> 注册;管理后台 -> 用户审核。
测试步骤:
1. 退出 ADMIN。
2. 在注册页提交一个测试账号,例如 `uat-pending@example.com`
3. 返回 ADMIN 登录。
4. 进入用户审核页面。
5. 找到待审核用户。
6. 点击通过。
7. 退出后使用该用户登录。
测试数据:
- 注册账号:`uat-pending@example.com`
期望结果:
- 注册后用户状态为待审核,不能直接登录。
- ADMIN 审核通过后用户可以登录。
- 审核动作写入审计日志。
通过标准:
- 待审核用户被正确拦截,审核通过后状态正确变更。
### 场景 4:禁用用户并验证登录拦截
适用角色:ADMIN
前置条件:存在启用状态测试用户。
操作路径:管理后台 -> 账号管理。
测试步骤:
1. 搜索 `uat-no-role@example.com`
2. 执行禁用操作。
3. 退出 ADMIN。
4. 使用 `uat-no-role@example.com` 登录。
5. 返回 ADMIN,将该用户重新启用。
测试数据:
- 用户:`uat-no-role@example.com`
期望结果:
- 禁用后该用户不能登录或不能继续访问系统。
- 重新启用后可恢复登录。
- 禁用和启用动作写入审计日志。
通过标准:
- 用户状态能正确控制登录访问。
### 场景 5:创建 UAT 项目
适用角色:ADMIN
前置条件:ADMIN 已登录。
操作路径:管理后台 -> 项目管理 -> 新建项目。
测试步骤:
1. 进入项目管理。
2. 点击新建项目。
3. 填写项目名称、编号、申办方、适应症等必填信息。
4. 保存。
5. 返回项目列表搜索该项目。
测试数据:
- 项目名称:`UAT-CTMS-角色功能验收项目`
- 项目编号:`UAT-CTMS-RUAT-001`
期望结果:
- 项目创建成功。
- 项目列表可查询到该项目。
- 项目详情显示与输入一致。
- 项目创建动作写入审计日志。
通过标准:
- 后续角色可选择该项目或被加入该项目。
### 场景 6:创建中心并绑定 CRA
适用角色:ADMIN
前置条件:UAT 项目已存在,CRA 用户已启用。
操作路径:管理后台 -> 项目管理 -> 项目详情 -> 中心管理。
测试步骤:
1. 进入 UAT 项目的中心管理。
2. 新建 `UAT-中心-01`
3. 填写机构名称、中心编号、PI、联系电话等字段。
4. 保存。
5. 新建 `UAT-中心-02`
6. 在中心 CRA 绑定页面,将 `uat-cra@example.com` 绑定到 `UAT-中心-01`
测试数据:
- 中心 1`UAT-中心-01`
- 中心 2`UAT-中心-02`
- CRA`uat-cra@example.com`
期望结果:
- 两个中心创建成功。
- `UAT-中心-01` 显示已绑定 CRA。
- 中心创建和 CRA 绑定动作写入审计日志。
通过标准:
- CRA 后续能看到或使用绑定中心完成受试者测试。
### 场景 7:添加项目成员并分配 6 个项目角色
适用角色:ADMIN
前置条件:UAT 项目和测试用户均已存在。
操作路径:管理后台 -> 权限管理 -> 项目权限配置 -> 成员。
测试步骤:
1. 进入 UAT 项目的项目权限配置。
2. 打开成员配置。
3. 添加 PM、CRA、PV、MEDICAL_REVIEW、IMP、QA 六个账号。
4. 分别设置对应项目角色。
5. 确认 `uat-no-role@example.com` 不在项目成员中。
测试数据:
- 参考总说明测试账号表。
期望结果:
- 六个业务角色均成为 UAT 项目成员。
- 每个成员角色正确。
- 非项目成员账号不在项目成员列表中。
- 成员变更写入审计日志。
通过标准:
- 六个业务角色后续可进入项目工作区。
### 场景 8:查看和调整项目权限矩阵
适用角色:ADMIN
前置条件:UAT 项目已有成员。
操作路径:管理后台 -> 权限管理 -> 项目权限配置。
测试步骤:
1. 进入项目权限配置。
2. 查看角色权限矩阵。
3. 确认 PM 权限全部放行。
4. 临时关闭 CRA 的“创建参与者”权限。
5. 保存权限。
6. 使用 CRA 登录,尝试创建受试者。
7. 返回 ADMIN,恢复 CRA 的“创建参与者”权限并保存。
8. 使用 CRA 再次验证创建受试者入口恢复。
测试数据:
- 项目:`UAT-CTMS-角色功能验收项目`
- 角色:CRA
- 权限:创建参与者
期望结果:
- PM 权限不可被实际削弱或始终具备项目内全权限。
- CRA 权限关闭后无法创建受试者。
- CRA 权限恢复后可继续创建受试者。
- 权限变更写入审计日志。
通过标准:
- 权限变更能被真实角色用户感知,且不会破坏 PM 全权限规则。
### 场景 9:锁定和解锁项目
适用角色:ADMIN
前置条件:UAT 项目未锁定。
操作路径:管理后台 -> 项目管理 -> 项目详情。
测试步骤:
1. 打开 UAT 项目详情。
2. 执行锁定项目。
3. 使用 PM 或 CRA 登录并进入项目。
4. 尝试执行一个写操作,例如新建受试者或保存立项配置。
5. 返回 ADMIN 解锁项目。
6. 使用同一角色再次尝试写操作。
测试数据:
- 项目:`UAT-CTMS-角色功能验收项目`
期望结果:
- 锁定后项目只读或写操作被明确阻止。
- 解锁后写操作恢复。
- 锁定和解锁动作写入审计日志。
通过标准:
- 项目锁定规则对所有项目角色生效。
### 场景 10:查看和导出审计日志
适用角色:ADMIN
前置条件:已完成若干账号、项目、权限或业务操作。
操作路径:管理后台 -> 审计日志。
测试步骤:
1. 进入审计日志。
2. 按操作人筛选 `uat-admin@example.com`
3. 按对象或事件筛选项目、用户、权限变更记录。
4. 设置时间范围。
5. 导出系统审计日志。
6. 如支持项目审计,选择 UAT 项目导出项目审计日志。
测试数据:
- 操作人:`uat-admin@example.com`
- 项目:`UAT-CTMS-角色功能验收项目`
期望结果:
- 审计日志列表可按条件筛选。
- 导出前出现敏感信息确认提示。
- 导出文件包含筛选范围内的关键操作。
通过标准:
- 管理员能追溯用户、项目、权限、锁定等关键动作。
### 场景 11:验证 ADMIN 项目内兜底权限
适用角色:ADMIN
前置条件:UAT 项目已存在,ADMIN 未必是项目成员。
操作路径:项目工作区 -> 项目总览 / 受试者 / 费用 / 立项配置。
测试步骤:
1. 以 ADMIN 身份进入 UAT 项目。
2. 查看项目总览。
3. 尝试进入受试者管理。
4. 尝试进入合同费用管理。
5. 尝试进入立项配置或里程碑页面。
测试数据:
- 项目:`UAT-CTMS-角色功能验收项目`
期望结果:
- ADMIN 可访问项目内主要页面。
- ADMIN 不因缺少项目成员身份被拒绝。
- ADMIN 写操作能力与 PM 保持一致。
通过标准:
- ADMIN 具备系统治理和项目内兜底能力。
## 4. ADMIN 权限边界核查
| 检查项 | 期望结果 |
|---|---|
| 待审核用户登录 | 被拒绝 |
| 禁用用户登录 | 被拒绝 |
| 非项目成员访问 UAT 项目 | 被拒绝或只能看到允许范围 |
| 项目锁定后业务写操作 | 被拒绝 |
| 权限关闭后对应角色操作 | 被拒绝 |
| 权限恢复后对应角色操作 | 恢复 |
| 审计日志导出 | 需要确认,且可追溯 |
## 5. 完成标准
- 所有测试账号准备完成。
- UAT 项目、中心、成员、权限准备完成。
- 项目锁定、权限变更、审计日志三个高风险规则通过。
- 后续 6 个项目角色可以开始业务验收。
@@ -1,279 +0,0 @@
# PM 项目负责人测试手册
## 1. 角色定位
PM 是项目内最高业务权限角色,负责项目主数据、里程碑、立项配置、费用、FAQ、项目成员协同和关键关闭/删除动作。项目内权限规则要求 PM 始终具备项目内全权限。
## 2. 测试前置
- 使用 `uat-pm@example.com` 登录。
- 已被加入 `UAT-CTMS-角色功能验收项目`,项目角色为 PM。
- UAT 项目未锁定。
- 已存在 `UAT-中心-01``UAT-中心-02`
## 3. 核心场景
### 场景 1:登录并进入 UAT 项目
适用角色:PM
前置条件:PM 账号启用且已加入项目。
操作路径:登录页 -> 项目列表或当前项目 -> 项目总览。
测试步骤:
1. 使用 `uat-pm@example.com` 登录。
2. 在项目列表中选择 `UAT-CTMS-角色功能验收项目`
3. 进入项目总览。
4. 查看项目关键指标、中心、受试者和待办信息。
测试数据:
- 项目:`UAT-CTMS-角色功能验收项目`
期望结果:
- PM 可进入项目。
- 项目总览正常显示。
- 无权限不足提示。
通过标准:
- PM 可以作为项目业务负责人进入项目工作区。
### 场景 2:维护立项配置草稿
适用角色:PM
前置条件:已进入 UAT 项目。
操作路径:项目工作区 -> 立项配置或相关入口。
测试步骤:
1. 打开立项配置页面。
2. 创建或编辑立项配置草稿。
3. 填写项目基本信息、中心计划、访视窗口或药品配置等可编辑项。
4. 保存草稿。
5. 刷新页面后重新打开草稿。
测试数据:
- 配置名称:`UAT-SETUP-DRAFT-001`
期望结果:
- 草稿保存成功。
- 刷新后数据仍存在。
- 保存动作写入审计日志。
通过标准:
- PM 可以维护项目配置草稿。
### 场景 3:发布和回滚立项配置
适用角色:PM
前置条件:存在可发布的立项配置草稿。
操作路径:项目工作区 -> 立项配置。
测试步骤:
1. 打开已保存的配置草稿。
2. 点击发布。
3. 确认发布结果和版本号。
4. 修改草稿并再次发布一个新版本。
5. 执行回滚到上一版本。
6. 查看当前生效版本。
测试数据:
- 版本 1`UAT-SETUP-V1`
- 版本 2`UAT-SETUP-V2`
期望结果:
- 发布成功并生成版本记录。
- 回滚后当前版本恢复到指定版本。
- 发布和回滚动作写入审计日志。
通过标准:
- PM 可以控制项目配置版本生命周期。
### 场景 4:维护项目里程碑
适用角色:PM
前置条件:已进入 UAT 项目。
操作路径:项目工作区 -> 项目里程碑。
测试步骤:
1. 打开项目里程碑页面。
2. 新增或编辑一个里程碑。
3. 设置计划日期、负责人和状态。
4. 保存。
5. 修改状态为已完成或延期。
测试数据:
- 里程碑:`UAT-MILESTONE-001`
期望结果:
- 里程碑保存成功。
- 状态变更后列表和详情一致。
- 操作写入审计日志或项目历史。
通过标准:
- PM 可以维护项目计划节点。
### 场景 5:创建费用合同
适用角色:PM
前置条件:至少存在一个中心。
操作路径:项目工作区 -> 合同费用管理 -> 新建。
测试步骤:
1. 进入合同费用管理。
2. 点击新建合同。
3. 填写合同编号、中心、金额、付款计划等必填信息。
4. 保存。
5. 返回列表查看合同。
6. 进入详情核对字段。
测试数据:
- 合同编号:`UAT-CONTRACT-001`
- 中心:`UAT-中心-01`
- 合同金额:`10000`
期望结果:
- 合同创建成功。
- 列表和详情展示一致。
- 合同创建动作写入审计日志。
通过标准:
- PM 可以维护费用合同。
### 场景 6:维护付款节点
适用角色:PM
前置条件:存在 `UAT-CONTRACT-001`
操作路径:项目工作区 -> 合同费用管理 -> 合同详情。
测试步骤:
1. 打开 `UAT-CONTRACT-001`
2. 新增第一个付款节点。
3. 新增第二个付款节点。
4. 编辑其中一个付款节点金额或日期。
5. 删除一个测试付款节点。
测试数据:
- 节点 1:启动费,金额 `3000`
- 节点 2:入组费,金额 `7000`
期望结果:
- 付款节点可新增、编辑和删除。
- 合同详情中的金额汇总正确。
- 操作写入审计日志。
通过标准:
- PM 可以完成费用分期维护。
### 场景 7:维护 FAQ
适用角色:PM
前置条件:已进入 UAT 项目。
操作路径:项目工作区 -> FAQ 或共享库相关入口。
测试步骤:
1. 打开 FAQ 页面。
2. 新建 FAQ 分类。
3. 新建问题 `UAT-FAQ-001`
4. 填写问题、答案、适用范围。
5. 保存后编辑答案。
6. 删除测试问题或测试分类。
测试数据:
- FAQ`UAT-FAQ-001`
期望结果:
- PM 可维护 FAQ 分类和内容。
- 其他角色后续可查看。
- 创建、编辑、删除动作写入审计日志。
通过标准:
- PM 可以维护项目知识问答。
### 场景 8:管理项目成员
适用角色:PM
前置条件:项目权限允许 PM 管理成员。
操作路径:管理后台 -> 权限管理 -> 项目权限配置 -> 成员。
测试步骤:
1. 使用 PM 进入项目权限配置。
2. 查看项目成员列表。
3. 添加或移除一个测试成员。
4. 修改该成员项目角色。
5. 恢复到总说明要求的成员状态。
测试数据:
- 临时成员:`uat-no-role@example.com`
期望结果:
- PM 可以查看和调整项目成员。
- 成员变更后对应账号项目访问权限变化。
- 成员变更写入审计日志。
通过标准:
- PM 具备项目成员管理能力。
### 场景 9:验证 PM 全权限规则
适用角色:PM
前置条件:ADMIN 尝试关闭某个 PM 权限或权限矩阵存在变更。
操作路径:项目工作区多个模块。
测试步骤:
1. 进入受试者管理,确认可新建或编辑。
2. 进入合同费用管理,确认可新建或编辑。
3. 进入药品流向管理,确认可新建或编辑。
4. 进入监查访视问题,确认可创建和关闭问题。
5. 进入权限管理,确认可查看项目权限。
测试数据:
- 项目:`UAT-CTMS-角色功能验收项目`
期望结果:
- PM 在项目内关键模块均可执行写操作。
- 若权限矩阵页面显示 PM 权限,PM 权限应保持全部放行。
通过标准:
- PM 不被误降权。
### 场景 10:项目锁定后的写操作拦截
适用角色:PM
前置条件:ADMIN 已锁定 UAT 项目。
操作路径:项目工作区 -> 任一写操作页面。
测试步骤:
1. 进入项目总览,确认仍可查看项目。
2. 尝试保存立项配置。
3. 尝试新建或编辑费用合同。
4. 记录系统提示。
5. 等 ADMIN 解锁项目后重复一次写操作。
测试数据:
- 项目:`UAT-CTMS-角色功能验收项目`
期望结果:
- 项目锁定后写操作被阻止。
- 解锁后写操作恢复。
通过标准:
- 项目锁定规则对 PM 也生效。
## 4. PM 权限边界核查
| 检查项 | 期望结果 |
|---|---|
| 项目总览 | 可查看 |
| 立项配置保存/发布/回滚 | 可执行 |
| 项目里程碑维护 | 可执行 |
| 合同费用维护 | 可执行 |
| 受试者和访视维护 | 可执行 |
| 药品和物资维护 | 可执行 |
| FAQ 维护 | 可执行 |
| 项目成员和权限配置 | 可执行 |
| 项目锁定后写操作 | 被阻止 |
## 5. 完成标准
- PM 能完成项目内主流程。
- PM 全权限规则通过。
- 项目锁定对 PM 写操作生效。
- PM 的关键写操作可被审计追溯。
@@ -1,274 +0,0 @@
# CRA 临床监查员测试手册
## 1. 角色定位
CRA 负责项目现场执行相关工作,重点验证中心查看、受试者、访视、PDS、受试者历史、监查问题、文档和附件。CRA 应能执行与临床监察相关的写操作,但不能管理项目权限、项目成员或高风险删除类操作。
## 2. 测试前置
- 使用 `uat-cra@example.com` 登录。
- 已加入 `UAT-CTMS-角色功能验收项目`,项目角色为 CRA。
- `UAT-中心-01` 已绑定该 CRA。
- 项目未锁定。
## 3. 核心场景
### 场景 1:登录并进入项目
适用角色:CRA
前置条件:CRA 账号启用且已加入项目。
操作路径:登录页 -> 项目列表 -> 项目总览。
测试步骤:
1. 使用 `uat-cra@example.com` 登录。
2. 选择 `UAT-CTMS-角色功能验收项目`
3. 进入项目总览。
4. 查看项目关键指标和中心信息。
测试数据:
- 项目:`UAT-CTMS-角色功能验收项目`
期望结果:
- CRA 可进入项目。
- 项目总览正常展示。
- 无权限不足提示。
通过标准:
- CRA 可查看项目基础运行信息。
### 场景 2:查看中心并确认 CRA 绑定
适用角色:CRA
前置条件:`UAT-中心-01` 已绑定 CRA。
操作路径:项目工作区 -> 中心相关入口或项目总览。
测试步骤:
1. 查看中心列表或中心信息。
2. 找到 `UAT-中心-01`
3. 确认中心联系人或 CRA 绑定信息。
4. 尝试编辑中心基础信息。
测试数据:
- 中心:`UAT-中心-01`
期望结果:
- CRA 可查看中心信息。
- CRA 不能编辑中心基础信息或提交后被提示权限不足。
通过标准:
- 中心读权限和写权限边界正确。
### 场景 3:创建受试者
适用角色:CRA
前置条件:项目未锁定,存在可用中心。
操作路径:项目工作区 -> 参与者管理 -> 新建。
测试步骤:
1. 进入参与者管理。
2. 点击新建。
3. 选择 `UAT-中心-01`
4. 输入受试者编号 `UAT-SUBJ-001`
5. 填写筛选、入组或基线相关必填字段。
6. 保存。
7. 返回列表搜索该受试者。
测试数据:
- 受试者编号:`UAT-SUBJ-001`
- 中心:`UAT-中心-01`
期望结果:
- 受试者创建成功。
- 列表和详情页数据一致。
- 创建动作写入审计日志。
通过标准:
- CRA 可完成受试者创建。
### 场景 4:更新受试者状态
适用角色:CRA
前置条件:存在 `UAT-SUBJ-001`
操作路径:项目工作区 -> 参与者管理 -> 受试者详情。
测试步骤:
1. 打开 `UAT-SUBJ-001` 详情。
2. 编辑受试者状态。
3. 将状态更新为入组或完成当前允许状态。
4. 保存。
5. 刷新详情页。
测试数据:
- 受试者:`UAT-SUBJ-001`
期望结果:
- 状态更新成功。
- 刷新后状态保持一致。
- 状态变更写入审计日志或受试者历史。
通过标准:
- CRA 可维护受试者状态。
### 场景 5:创建和更新访视
适用角色:CRA
前置条件:存在 `UAT-SUBJ-001`,且有可用访视配置。
操作路径:项目工作区 -> 参与者管理 -> 受试者详情 -> 访视。
测试步骤:
1. 打开 `UAT-SUBJ-001` 详情。
2. 新建一次访视记录。
3. 填写访视日期、访视类型和备注。
4. 保存。
5. 编辑访视备注并保存。
测试数据:
- 访视:`UAT-VISIT-001`
期望结果:
- 访视创建和更新成功。
- 访视记录展示在受试者详情中。
- 操作写入审计日志或受试者历史。
通过标准:
- CRA 可维护访视信息。
### 场景 6:维护 PDS 或方案偏离
适用角色:CRA
前置条件:存在 `UAT-SUBJ-001`
操作路径:项目工作区 -> 风险问题 -> PD 或受试者详情 -> PDS。
测试步骤:
1. 进入 PD/PDS 页面。
2. 新建 `UAT-PD-001`
3. 选择关联受试者和中心。
4. 填写偏离类型、发生日期、描述和处理措施。
5. 保存。
6. 编辑处理措施。
测试数据:
- PD 编号:`UAT-PD-001`
- 受试者:`UAT-SUBJ-001`
期望结果:
- PD/PDS 记录创建和更新成功。
- 记录可在列表和详情中查看。
通过标准:
- CRA 可维护与现场执行相关的偏离记录。
### 场景 7:创建监查访视问题
适用角色:CRA
前置条件:存在可用中心。
操作路径:项目工作区 -> 风险问题 -> 监查访视问题。
测试步骤:
1. 进入监查访视问题页面。
2. 新建 `UAT-MONITOR-001`
3. 选择中心、问题分类、严重程度和责任人。
4. 填写问题描述和整改要求。
5. 保存。
6. 修改问题状态或补充整改信息。
测试数据:
- 问题编号:`UAT-MONITOR-001`
- 中心:`UAT-中心-01`
期望结果:
- 监查问题创建和更新成功。
- 问题状态变化可追踪。
通过标准:
- CRA 可完成监查问题管理。
### 场景 8:上传附件或维护文档
适用角色:CRA
前置条件:存在受试者或监查问题记录。
操作路径:相关详情页 -> 附件;或项目工作区 -> 文件版本管理。
测试步骤:
1. 打开 `UAT-SUBJ-001``UAT-MONITOR-001` 详情。
2. 上传一个测试 PDF 或图片附件。
3. 保存。
4. 下载或预览附件。
5. 如页面支持,编辑附件说明。
测试数据:
- 附件名称:`UAT-CRA-附件-001`
期望结果:
- 附件上传成功。
- 附件可查看或下载。
- 附件操作写入审计日志。
通过标准:
- CRA 可完成现场文档或附件维护。
### 场景 9:查看费用合同但不能维护合同
适用角色:CRA
前置条件:PM 已创建 `UAT-CONTRACT-001`
操作路径:项目工作区 -> 合同费用管理。
测试步骤:
1. 进入合同费用管理。
2. 打开 `UAT-CONTRACT-001`
3. 查看合同金额、中心和付款节点。
4. 尝试新建或编辑合同。
测试数据:
- 合同:`UAT-CONTRACT-001`
期望结果:
- CRA 可查看合同。
- CRA 不能创建、编辑或删除合同,或提交后被权限拦截。
通过标准:
- 费用读写边界符合角色职责。
### 场景 10:权限边界验证
适用角色:CRA
前置条件:已登录并进入项目。
操作路径:多个模块。
测试步骤:
1. 尝试进入项目权限配置。
2. 尝试添加项目成员。
3. 尝试删除受试者。
4. 尝试删除中心。
5. 尝试发布或回滚立项配置。
测试数据:
- 项目:`UAT-CTMS-角色功能验收项目`
期望结果:
- CRA 不能配置权限。
- CRA 不能管理项目成员。
- CRA 不能执行 PM 专属删除、发布、回滚类操作。
通过标准:
- 越权操作被明确阻止。
## 4. CRA 权限边界核查
| 检查项 | 期望结果 |
|---|---|
| 项目总览 | 可查看 |
| 中心信息 | 可查看,不可维护 |
| 受试者创建/更新 | 可执行 |
| 访视创建/更新 | 可执行 |
| PD/PDS 创建/更新 | 可执行 |
| 监查问题创建/更新/关闭 | 可执行 |
| 合同费用 | 可查看,不可维护合同主数据 |
| 项目成员和权限配置 | 不可执行 |
| 高风险删除 | 不可执行或仅允许明确授权范围 |
## 5. 完成标准
- CRA 可完成现场监察主流程。
- CRA 不能越权执行 PM 或 ADMIN 治理操作。
- CRA 写操作可被审计追溯。
@@ -1,244 +0,0 @@
# PV 药物警戒测试手册
## 1. 角色定位
PV 负责药物安全相关信息处理,重点验证 AE/SAE、风险问题、医学相关信息查看和监查问题协作。PV 应能参与不良事件和部分风险问题处理,但不能维护项目成员、中心、费用合同、药品流向或项目配置。
## 2. 测试前置
- 使用 `uat-pv@example.com` 登录。
- 已加入 `UAT-CTMS-角色功能验收项目`,项目角色为 PV。
- 项目未锁定。
- 至少存在一个受试者 `UAT-SUBJ-001`
## 3. 核心场景
### 场景 1:登录并进入项目
适用角色:PV
前置条件:PV 账号启用且已加入项目。
操作路径:登录页 -> 项目列表 -> 项目总览。
测试步骤:
1. 使用 `uat-pv@example.com` 登录。
2. 选择 `UAT-CTMS-角色功能验收项目`
3. 进入项目总览。
4. 查看项目基础信息。
测试数据:
- 项目:`UAT-CTMS-角色功能验收项目`
期望结果:
- PV 可进入项目并查看总览。
- 无权限不足提示。
通过标准:
- PV 可以访问项目基础信息。
### 场景 2:查看受试者信息
适用角色:PV
前置条件:存在 `UAT-SUBJ-001`
操作路径:项目工作区 -> 参与者管理。
测试步骤:
1. 打开参与者管理。
2. 搜索 `UAT-SUBJ-001`
3. 进入受试者详情。
4. 查看中心、状态、访视和医学相关信息。
5. 尝试编辑受试者基础资料。
测试数据:
- 受试者:`UAT-SUBJ-001`
期望结果:
- PV 可查看受试者详情。
- PV 不能编辑受试者基础资料。
通过标准:
- 受试者信息对 PV 只读。
### 场景 3:创建 AE/SAE
适用角色:PV
前置条件:存在受试者和中心。
操作路径:项目工作区 -> 风险问题 -> AE/SAE。
测试步骤:
1. 进入 AE/SAE 页面。
2. 点击新建。
3. 选择 `UAT-SUBJ-001``UAT-中心-01`
4. 填写事件名称、发生日期、严重程度、处理措施和报告状态。
5. 保存。
6. 返回列表搜索 `UAT-AE-001`
测试数据:
- AE 编号:`UAT-AE-001`
- 受试者:`UAT-SUBJ-001`
- 中心:`UAT-中心-01`
期望结果:
- AE/SAE 创建成功。
- 列表和详情展示一致。
- 创建动作写入审计日志。
通过标准:
- PV 可创建药物安全相关事件。
### 场景 4:更新 AE/SAE
适用角色:PV
前置条件:存在 `UAT-AE-001`
操作路径:项目工作区 -> 风险问题 -> AE/SAE -> 详情。
测试步骤:
1. 打开 `UAT-AE-001`
2. 编辑事件严重程度、处理措施或随访信息。
3. 保存。
4. 刷新详情页。
测试数据:
- AE`UAT-AE-001`
期望结果:
- 更新成功。
- 刷新后数据保持一致。
- 更新动作写入审计日志。
通过标准:
- PV 可维护 AE/SAE 处理信息。
### 场景 5:关闭 AE/SAE
适用角色:PV
前置条件:存在开放状态 `UAT-AE-001`
操作路径:项目工作区 -> 风险问题 -> AE/SAE -> 详情。
测试步骤:
1. 打开 `UAT-AE-001`
2. 执行关闭或完成操作。
3. 填写关闭原因或结论。
4. 保存。
5. 返回列表确认状态。
测试数据:
- AE`UAT-AE-001`
期望结果:
- AE 状态变为关闭或完成。
- 关闭动作写入审计日志。
通过标准:
- PV 可完成 AE/SAE 生命周期处理。
### 场景 6:查看和协作处理监查问题
适用角色:PV
前置条件:存在 `UAT-MONITOR-001`
操作路径:项目工作区 -> 风险问题 -> 监查访视问题。
测试步骤:
1. 打开监查访视问题页面。
2. 搜索 `UAT-MONITOR-001`
3. 查看问题详情。
4. 如页面支持,补充 PV 相关说明或更新处理信息。
测试数据:
- 监查问题:`UAT-MONITOR-001`
期望结果:
- PV 可查看监查问题。
- 如权限允许,可更新与风险协作相关字段。
- 不允许删除监查问题。
通过标准:
- PV 可参与风险问题协作,但不能执行 PM 专属删除。
### 场景 7:维护知识库笔记
适用角色:PV
前置条件:项目未锁定。
操作路径:项目工作区 -> 共享库 -> 注意事项。
测试步骤:
1. 进入注意事项页面。
2. 新建 `UAT-NOTE-001`
3. 填写标题、分类和内容。
4. 保存。
5. 编辑内容并保存。
6. 尝试删除该笔记。
测试数据:
- 笔记:`UAT-NOTE-001`
期望结果:
- PV 可创建和编辑知识库笔记。
- PV 不能删除知识库笔记,或删除操作被权限拦截。
通过标准:
- 知识库协作权限和删除边界正确。
### 场景 8:附件上传边界
适用角色:PV
前置条件:存在 AE 或风险问题记录。
操作路径:AE/SAE 详情 -> 附件。
测试步骤:
1. 打开 `UAT-AE-001` 详情。
2. 上传一个安全性报告附件。
3. 保存。
4. 下载或预览附件。
5. 尝试删除 CRA 上传的附件。
测试数据:
- 附件:`UAT-PV-安全性报告-001`
期望结果:
- PV 可上传和查看附件。
- 删除他人附件按系统规则被允许或被拒绝,实际结果需记录。
通过标准:
- 附件权限表现明确且可追溯。
### 场景 9:权限边界验证
适用角色:PV
前置条件:已登录并进入项目。
操作路径:多个模块。
测试步骤:
1. 尝试新建受试者。
2. 尝试维护费用合同。
3. 尝试创建药品发货。
4. 尝试进入项目成员管理。
5. 尝试发布立项配置。
测试数据:
- 项目:`UAT-CTMS-角色功能验收项目`
期望结果:
- PV 不能执行上述非职责范围操作。
- 页面应隐藏入口、禁用按钮或提交后提示权限不足。
通过标准:
- PV 越权操作被明确阻止。
## 4. PV 权限边界核查
| 检查项 | 期望结果 |
|---|---|
| 项目总览 | 可查看 |
| 受试者详情 | 可查看,不可维护基础资料 |
| AE/SAE 创建/更新/关闭 | 可执行 |
| 监查问题查看/协作 | 可执行授权范围内操作 |
| 知识库笔记创建/编辑 | 可执行 |
| 费用合同维护 | 不可执行 |
| 药品流向维护 | 不可执行 |
| 项目成员和权限配置 | 不可执行 |
## 5. 完成标准
- PV 可完成药物警戒主流程。
- PV 不能越权维护项目、费用、药品或受试者主数据。
- PV 关键动作可被审计追溯。
@@ -1,219 +0,0 @@
# MEDICAL_REVIEW 医学审核测试手册
## 1. 角色定位
医学审核负责医学相关信息核查和专业协作,重点验证 AE/SAE、PD、医学咨询、知识库、受试者医学信息和风险问题查看。医学审核可以参与医学相关记录维护,但不能执行项目治理、费用、药品流向或受试者主数据维护。
## 2. 测试前置
- 使用 `uat-medical@example.com` 登录。
- 已加入 `UAT-CTMS-角色功能验收项目`,项目角色为 MEDICAL_REVIEW。
- 项目未锁定。
- 至少存在 `UAT-SUBJ-001``UAT-AE-001`
## 3. 核心场景
### 场景 1:登录并进入项目
适用角色:MEDICAL_REVIEW
前置条件:账号启用且已加入项目。
操作路径:登录页 -> 项目列表 -> 项目总览。
测试步骤:
1. 使用 `uat-medical@example.com` 登录。
2. 选择 `UAT-CTMS-角色功能验收项目`
3. 进入项目总览。
4. 查看项目基础信息。
测试数据:
- 项目:`UAT-CTMS-角色功能验收项目`
期望结果:
- 医学审核可进入项目并查看总览。
- 无权限不足提示。
通过标准:
- 医学审核可以访问项目基础信息。
### 场景 2:查看受试者医学相关信息
适用角色:MEDICAL_REVIEW
前置条件:存在 `UAT-SUBJ-001`
操作路径:项目工作区 -> 参与者管理 -> 受试者详情。
测试步骤:
1. 打开参与者管理。
2. 搜索 `UAT-SUBJ-001`
3. 进入详情。
4. 查看受试者状态、访视、AE/SAE、PD/PDS 和历史记录。
5. 尝试编辑受试者基础资料。
测试数据:
- 受试者:`UAT-SUBJ-001`
期望结果:
- 医学审核可查看受试者相关信息。
- 医学审核不能编辑受试者基础资料。
通过标准:
- 医学审核具备医学判断所需读权限,但不能改主数据。
### 场景 3:查看和更新 AE/SAE 医学信息
适用角色:MEDICAL_REVIEW
前置条件:存在 `UAT-AE-001`
操作路径:项目工作区 -> 风险问题 -> AE/SAE。
测试步骤:
1. 进入 AE/SAE 页面。
2. 搜索并打开 `UAT-AE-001`
3. 查看事件描述、严重程度、处理措施和随访信息。
4. 如页面支持医学意见字段,填写医学审核意见。
5. 保存。
测试数据:
- AE`UAT-AE-001`
- 医学意见:`UAT-医学审核意见-001`
期望结果:
- 医学审核可查看 AE/SAE 详情。
- 授权范围内的医学意见可保存。
- 操作写入审计日志或事件历史。
通过标准:
- 医学审核可完成医学专业协作。
### 场景 4:创建或维护风险问题
适用角色:MEDICAL_REVIEW
前置条件:存在受试者和中心。
操作路径:项目工作区 -> 风险问题 -> AE/SAE 或监查访视问题。
测试步骤:
1. 进入风险问题页面。
2. 新建一条医学相关风险记录,或打开已有记录。
3. 填写医学描述、判断依据和建议措施。
4. 保存。
5. 返回列表确认记录。
测试数据:
- 风险记录:`UAT-MED-RISK-001`
期望结果:
- 医学审核可在授权范围内创建或更新医学相关风险记录。
- 删除操作不可执行或被权限拦截。
通过标准:
- 医学审核可参与风险处理,但不能执行 PM 专属删除。
### 场景 5:使用医学咨询
适用角色:MEDICAL_REVIEW
前置条件:项目未锁定。
操作路径:项目工作区 -> 共享库 -> 医学咨询。
测试步骤:
1. 打开医学咨询页面。
2. 查看咨询列表。
3. 打开一条咨询详情。
4. 如页面支持回复或记录意见,填写 `UAT-医学咨询回复-001`
5. 保存。
测试数据:
- 医学咨询回复:`UAT-医学咨询回复-001`
期望结果:
- 医学审核可查看医学咨询。
- 授权范围内可回复或维护医学意见。
通过标准:
- 医学咨询流程对医学审核可用。
### 场景 6:维护知识库笔记
适用角色:MEDICAL_REVIEW
前置条件:项目未锁定。
操作路径:项目工作区 -> 共享库 -> 注意事项。
测试步骤:
1. 进入注意事项页面。
2. 新建 `UAT-MED-NOTE-001`
3. 填写标题、分类和医学注意事项内容。
4. 保存。
5. 编辑内容。
6. 尝试删除该笔记。
测试数据:
- 笔记:`UAT-MED-NOTE-001`
期望结果:
- 医学审核可创建和编辑知识库笔记。
- 删除操作不可执行或被权限拦截。
通过标准:
- 医学知识协作权限和删除边界正确。
### 场景 7:查看伦理和可行性信息
适用角色:MEDICAL_REVIEW
前置条件:PM 已创建伦理或可行性记录。
操作路径:项目工作区 -> 立项与伦理。
测试步骤:
1. 打开立项与伦理页面。
2. 查看可行性记录。
3. 查看伦理记录。
4. 尝试新建或编辑伦理记录。
测试数据:
- 项目:`UAT-CTMS-角色功能验收项目`
期望结果:
- 医学审核可查看伦理和可行性信息。
- 医学审核不能新建、编辑或删除伦理记录。
通过标准:
- 医学审核可获取医学评估所需信息,但不能维护立项主流程。
### 场景 8:权限边界验证
适用角色:MEDICAL_REVIEW
前置条件:已登录并进入项目。
操作路径:多个模块。
测试步骤:
1. 尝试新建受试者。
2. 尝试维护合同费用。
3. 尝试创建药品发货。
4. 尝试进入项目成员管理。
5. 尝试发布或回滚立项配置。
测试数据:
- 项目:`UAT-CTMS-角色功能验收项目`
期望结果:
- 医学审核不能执行非医学职责范围操作。
- 越权操作被隐藏、禁用或提交后拦截。
通过标准:
- 医学审核权限边界清晰。
## 4. 医学审核权限边界核查
| 检查项 | 期望结果 |
|---|---|
| 项目总览 | 可查看 |
| 受试者详情 | 可查看,不可维护基础资料 |
| AE/SAE 查看和医学协作 | 可执行授权范围内操作 |
| 医学咨询 | 可查看,可执行授权范围内协作 |
| 知识库笔记创建/编辑 | 可执行 |
| 伦理和可行性 | 可查看,不可维护 |
| 费用合同维护 | 不可执行 |
| 药品流向维护 | 不可执行 |
| 项目成员和权限配置 | 不可执行 |
## 5. 完成标准
- 医学审核可完成医学信息查看和协作。
- 医学审核不能越权维护业务主数据。
- 医学审核关键写操作可被审计追溯。
@@ -1,244 +0,0 @@
# IMP 药品管理员测试手册
## 1. 角色定位
IMP 负责药品、物资和设备相关管理,重点验证药品发货、药品流向、物资、设备、预算和合同信息查看。IMP 不应维护受试者主数据、AE/SAE、项目成员、权限或立项配置。
## 2. 测试前置
- 使用 `uat-imp@example.com` 登录。
- 已加入 `UAT-CTMS-角色功能验收项目`,项目角色为 IMP。
- 项目未锁定。
- 已存在 `UAT-中心-01``UAT-中心-02`
## 3. 核心场景
### 场景 1:登录并进入项目
适用角色:IMP
前置条件:IMP 账号启用且已加入项目。
操作路径:登录页 -> 项目列表 -> 项目总览。
测试步骤:
1. 使用 `uat-imp@example.com` 登录。
2. 选择 `UAT-CTMS-角色功能验收项目`
3. 进入项目总览。
4. 查看项目基础信息。
测试数据:
- 项目:`UAT-CTMS-角色功能验收项目`
期望结果:
- IMP 可进入项目并查看总览。
- 无权限不足提示。
通过标准:
- IMP 可以访问项目基础信息。
### 场景 2:查看中心信息
适用角色:IMP
前置条件:项目存在中心。
操作路径:项目工作区 -> 项目总览或中心相关入口。
测试步骤:
1. 查看中心列表或中心信息。
2. 打开 `UAT-中心-01`
3. 查看中心名称、编号、联系人和状态。
4. 尝试编辑中心信息。
测试数据:
- 中心:`UAT-中心-01`
期望结果:
- IMP 可查看中心信息。
- IMP 不能维护中心主数据。
通过标准:
- 药品发货所需中心读权限可用,中心写权限受限。
### 场景 3:创建药品发货记录
适用角色:IMP
前置条件:存在可用中心。
操作路径:项目工作区 -> 药品管理 -> 药品流向管理 -> 新建。
测试步骤:
1. 进入药品流向管理。
2. 点击新建。
3. 选择 `UAT-中心-01`
4. 填写药品批次 `UAT-DRUG-BATCH-001`、数量、发货日期和承运信息。
5. 保存。
6. 返回列表搜索该批次。
测试数据:
- 药品批次:`UAT-DRUG-BATCH-001`
- 中心:`UAT-中心-01`
- 数量:`10`
期望结果:
- 药品发货记录创建成功。
- 列表和详情展示一致。
- 创建动作写入审计日志。
通过标准:
- IMP 可创建药品流向记录。
### 场景 4:更新药品发货记录
适用角色:IMP
前置条件:存在 `UAT-DRUG-BATCH-001` 发货记录。
操作路径:项目工作区 -> 药品流向管理 -> 详情或编辑。
测试步骤:
1. 打开 `UAT-DRUG-BATCH-001` 发货记录。
2. 修改承运信息、备注或收货状态。
3. 保存。
4. 刷新详情页。
测试数据:
- 药品批次:`UAT-DRUG-BATCH-001`
期望结果:
- 更新成功。
- 刷新后数据保持一致。
- 更新动作写入审计日志。
通过标准:
- IMP 可维护药品流向。
### 场景 5:删除药品发货记录边界
适用角色:IMP
前置条件:存在药品发货记录。
操作路径:项目工作区 -> 药品流向管理。
测试步骤:
1. 打开药品流向列表。
2. 找到一条测试发货记录。
3. 尝试删除。
4. 记录系统表现。
测试数据:
- 药品批次:`UAT-DRUG-BATCH-001`
期望结果:
- IMP 不能删除药品发货记录,或删除按钮不可见。
- 如果系统允许删除,必须记录为待确认权限项。
通过标准:
- 删除类高风险操作符合权限矩阵。
### 场景 6:维护物资
适用角色:IMP
前置条件:项目未锁定。
操作路径:项目工作区 -> 物资管理。
测试步骤:
1. 打开物资管理页面。
2. 新建 `UAT-MATERIAL-001`
3. 填写名称、类型、数量、存放位置和备注。
4. 保存。
5. 编辑数量或备注。
测试数据:
- 物资:`UAT-MATERIAL-001`
期望结果:
- 物资创建和更新成功。
- 列表和详情展示一致。
通过标准:
- IMP 可维护物资信息。
### 场景 7:维护设备
适用角色:IMP
前置条件:项目未锁定。
操作路径:项目工作区 -> 设备管理。
测试步骤:
1. 打开设备管理页面。
2. 新建 `UAT-EQUIPMENT-001`
3. 填写设备名称、编号、中心、状态和校准信息。
4. 保存。
5. 编辑设备状态或备注。
6. 尝试删除设备。
测试数据:
- 设备:`UAT-EQUIPMENT-001`
期望结果:
- 设备创建和更新按权限执行。
- 删除操作如果被拒绝,提示清晰;如果允许,需记录为权限确认项。
通过标准:
- IMP 设备管理权限表现清晰。
### 场景 8:查看预算和合同费用
适用角色:IMP
前置条件:PM 已创建 `UAT-CONTRACT-001`
操作路径:项目工作区 -> 合同费用管理;启动与授权或预算相关页面。
测试步骤:
1. 打开合同费用管理。
2. 查看 `UAT-CONTRACT-001`
3. 查看合同金额、中心和付款节点。
4. 尝试编辑合同。
5. 打开预算或启动授权相关页面并查看记录。
测试数据:
- 合同:`UAT-CONTRACT-001`
期望结果:
- IMP 可查看合同和预算相关信息。
- IMP 不能维护合同主数据或付款节点。
通过标准:
- 财务相关读写边界正确。
### 场景 9:权限边界验证
适用角色:IMP
前置条件:已登录并进入项目。
操作路径:多个模块。
测试步骤:
1. 尝试新建受试者。
2. 尝试创建 AE/SAE。
3. 尝试创建或关闭监查问题。
4. 尝试进入项目成员管理。
5. 尝试发布立项配置。
测试数据:
- 项目:`UAT-CTMS-角色功能验收项目`
期望结果:
- IMP 不能执行非药品物资职责范围操作。
- 越权操作被隐藏、禁用或提交后拦截。
通过标准:
- IMP 权限边界清晰。
## 4. IMP 权限边界核查
| 检查项 | 期望结果 |
|---|---|
| 项目总览 | 可查看 |
| 中心信息 | 可查看,不可维护 |
| 药品发货创建/更新 | 可执行 |
| 药品发货删除 | 不可执行或需权限确认 |
| 物资维护 | 可执行 |
| 设备维护 | 可执行授权范围内操作 |
| 合同和预算 | 可查看,不可维护 |
| 受试者维护 | 不可执行 |
| AE/SAE 维护 | 不可执行 |
| 项目成员和权限配置 | 不可执行 |
## 5. 完成标准
- IMP 可完成药品、物资、设备主流程。
- IMP 不能越权维护临床、医学、费用或项目治理数据。
- IMP 关键写操作可被审计追溯。
@@ -1,247 +0,0 @@
# QA 质量稽查测试手册
## 1. 角色定位
QA 负责质量稽查、审计核查和只读监督,重点验证审计日志、监查稽查、文档、物资、受试者和 AE/SAE 的只读查看。QA 不应修改业务主数据,除非项目权限明确授权。
## 2. 测试前置
- 使用 `uat-qa@example.com` 登录。
- 已加入 `UAT-CTMS-角色功能验收项目`,项目角色为 QA。
- 项目未锁定。
- 项目中已存在受试者、AE/SAE、药品流向、物资和审计日志。
## 3. 核心场景
### 场景 1:登录并进入项目
适用角色:QA
前置条件:QA 账号启用且已加入项目。
操作路径:登录页 -> 项目列表 -> 项目总览。
测试步骤:
1. 使用 `uat-qa@example.com` 登录。
2. 选择 `UAT-CTMS-角色功能验收项目`
3. 进入项目总览。
4. 查看项目基础信息。
测试数据:
- 项目:`UAT-CTMS-角色功能验收项目`
期望结果:
- QA 可进入项目并查看总览。
- 无权限不足提示。
通过标准:
- QA 可以访问项目基础信息。
### 场景 2:查看审计日志
适用角色:QA
前置条件:项目已有审计记录。
操作路径:管理后台 -> 审计日志,或项目审计入口。
测试步骤:
1. 进入审计日志页面。
2. 按项目筛选 `UAT-CTMS-角色功能验收项目`
3. 按操作人筛选 `uat-pm@example.com``uat-cra@example.com`
4. 按操作类型筛选创建、更新、权限变更或导出记录。
5. 打开一条审计详情。
测试数据:
- 项目:`UAT-CTMS-角色功能验收项目`
期望结果:
- QA 可查看项目审计日志。
- 筛选条件生效。
- 审计详情包含时间、操作人、对象、动作和结果。
通过标准:
- QA 能完成项目审计追溯。
### 场景 3:导出审计日志
适用角色:QA
前置条件:存在可导出的审计记录。
操作路径:审计日志 -> 导出。
测试步骤:
1. 设置项目和时间范围。
2. 点击导出项目审计。
3. 确认敏感信息导出提示。
4. 打开导出文件。
5. 核对文件中是否包含筛选范围内记录。
测试数据:
- 项目:`UAT-CTMS-角色功能验收项目`
期望结果:
- 导出前有确认提示。
- 导出成功。
- 文件内容与筛选条件一致。
- 导出动作本身写入审计日志。
通过标准:
- QA 可完成审计导出并保留导出留痕。
### 场景 4:查看受试者和访视
适用角色:QA
前置条件:存在 `UAT-SUBJ-001`
操作路径:项目工作区 -> 参与者管理。
测试步骤:
1. 打开参与者管理。
2. 搜索 `UAT-SUBJ-001`
3. 进入受试者详情。
4. 查看访视、状态、附件和历史记录。
5. 尝试编辑受试者基础资料。
6. 尝试新建访视。
测试数据:
- 受试者:`UAT-SUBJ-001`
期望结果:
- QA 可查看受试者和访视。
- QA 不能编辑受试者或新建访视。
通过标准:
- 受试者和访视对 QA 为只读。
### 场景 5:查看 AE/SAE 和风险问题
适用角色:QA
前置条件:存在 `UAT-AE-001``UAT-MONITOR-001`
操作路径:项目工作区 -> 风险问题。
测试步骤:
1. 打开 AE/SAE 页面。
2. 查看 `UAT-AE-001` 详情。
3. 打开监查访视问题页面。
4. 查看 `UAT-MONITOR-001` 详情。
5. 尝试编辑或关闭问题。
测试数据:
- AE`UAT-AE-001`
- 监查问题:`UAT-MONITOR-001`
期望结果:
- QA 可查看风险问题详情。
- QA 不能编辑、关闭或删除风险问题,除非项目权限明确授权。
通过标准:
- 风险问题对 QA 的只读边界正确。
### 场景 6:查看药品流向、物资和设备
适用角色:QA
前置条件:存在药品流向、物资和设备记录。
操作路径:项目工作区 -> 药品管理 / 物资管理 / 设备管理。
测试步骤:
1. 打开药品流向管理。
2. 查看 `UAT-DRUG-BATCH-001`
3. 打开物资管理,查看 `UAT-MATERIAL-001`
4. 打开设备管理,查看 `UAT-EQUIPMENT-001`
5. 尝试编辑任一记录。
测试数据:
- 药品批次:`UAT-DRUG-BATCH-001`
- 物资:`UAT-MATERIAL-001`
- 设备:`UAT-EQUIPMENT-001`
期望结果:
- QA 可查看药品、物资和设备信息。
- QA 不能编辑药品、物资或设备。
通过标准:
- QA 可完成质量核查所需查看,不能改业务数据。
### 场景 7:查看文档和附件
适用角色:QA
前置条件:项目中存在文档或附件。
操作路径:项目工作区 -> 文件版本管理;相关详情页 -> 附件。
测试步骤:
1. 打开文件版本管理。
2. 查看一份项目文档。
3. 打开受试者或 AE 详情中的附件。
4. 下载或预览附件。
5. 尝试上传或删除附件。
测试数据:
- 附件:任一 `UAT-` 前缀附件。
期望结果:
- QA 可查看文档和附件。
- QA 不能上传或删除附件,除非项目权限明确授权。
通过标准:
- 文档和附件满足稽查只读需求。
### 场景 8:监查稽查页面核查
适用角色:QA
前置条件:系统提供监查稽查或稽查入口。
操作路径:项目工作区 -> 监查稽查 / 稽查。
测试步骤:
1. 打开监查稽查页面。
2. 查看列表或占位信息。
3. 如存在记录,打开详情。
4. 尝试新建或编辑稽查记录。
测试数据:
- 项目:`UAT-CTMS-角色功能验收项目`
期望结果:
- QA 可访问质量稽查相关页面。
- 若当前版本仅展示占位信息,记录为不适用或待实现。
- QA 不应越权修改非授权数据。
通过标准:
- QA 稽查入口表现符合当前产品范围。
### 场景 9:权限边界验证
适用角色:QA
前置条件:已登录并进入项目。
操作路径:多个模块。
测试步骤:
1. 尝试新建受试者。
2. 尝试创建 AE/SAE。
3. 尝试创建药品发货。
4. 尝试维护合同费用。
5. 尝试进入项目权限配置。
测试数据:
- 项目:`UAT-CTMS-角色功能验收项目`
期望结果:
- QA 不能执行业务主数据写操作。
- QA 不能配置权限或管理项目成员。
通过标准:
- QA 只读监督边界清晰。
## 4. QA 权限边界核查
| 检查项 | 期望结果 |
|---|---|
| 项目总览 | 可查看 |
| 审计日志查看 | 可执行 |
| 审计日志导出 | 可执行 |
| 受试者和访视 | 可查看,不可维护 |
| AE/SAE 和风险问题 | 可查看,不可维护 |
| 药品、物资、设备 | 可查看,不可维护 |
| 文档和附件 | 可查看,上传/删除受限 |
| 合同费用 | 默认不可维护 |
| 项目成员和权限配置 | 不可执行 |
## 5. 完成标准
- QA 可完成质量核查和审计追溯。
- QA 不能越权修改业务主数据。
- QA 导出审计日志时有确认和留痕。
@@ -1,133 +0,0 @@
# 权限与规则交叉测试清单
## 1. 使用方式
本清单用于在各角色手册执行完成后做集中复核。执行人可以是 ADMIN、PM、QA 或测试负责人。每条规则至少记录一次实际测试结果,失败项必须登记缺陷。
结果填写:
| 规则编号 | 执行角色 | 测试账号 | 结果 | 备注 |
|---|---|---|---|---|
| 例如 R-001 | ADMIN | `uat-admin@example.com` | 通过 / 失败 / 阻塞 | |
## 2. 账号和登录规则
| 编号 | 规则 | 操作 | 期望结果 |
|---|---|---|---|
| R-001 | 启用用户可登录 | 使用启用状态测试账号登录 | 登录成功 |
| R-002 | 待审核用户不可登录 | 注册新用户但不审核,尝试登录 | 被拒绝,提示待审核或认证失败 |
| R-003 | 禁用用户不可登录 | ADMIN 禁用 `uat-no-role@example.com` 后尝试登录 | 被拒绝 |
| R-004 | 密码规则生效 | 创建或修改密码时输入弱密码 | 保存失败并提示规则 |
| R-005 | 退出登录生效 | 登录后退出,再访问项目页面 | 跳转登录或要求重新认证 |
## 3. 项目成员和项目访问规则
| 编号 | 规则 | 操作 | 期望结果 |
|---|---|---|---|
| R-101 | 项目成员可进入项目 | PM/CRA/PV/医学审核/IMP/QA 选择 UAT 项目 | 可进入项目总览 |
| R-102 | 非项目成员不可进入项目 | `uat-no-role@example.com` 尝试访问 UAT 项目 | 被拒绝或看不到项目 |
| R-103 | 停用成员权限失效 | PM 或 ADMIN 临时移除某成员,再让该账号访问项目 | 不能继续访问项目 |
| R-104 | 恢复成员后权限恢复 | 重新添加成员并分配原角色 | 可重新进入项目 |
| R-105 | ADMIN 不依赖项目成员身份 | ADMIN 进入 UAT 项目 | 可访问项目内主要页面 |
## 4. 项目锁定规则
| 编号 | 规则 | 操作 | 期望结果 |
|---|---|---|---|
| R-201 | 锁定后读操作保留 | ADMIN 锁定项目后,各角色查看项目总览 | 可查看 |
| R-202 | 锁定后写操作被阻止 | PM 保存立项配置或 CRA 新建受试者 | 被拒绝并提示项目锁定或不可操作 |
| R-203 | 锁定对 PM 生效 | PM 尝试费用、里程碑、受试者任一写操作 | 被拒绝 |
| R-204 | 锁定对普通项目角色生效 | CRA/PV/IMP 尝试各自写操作 | 被拒绝 |
| R-205 | 解锁后写操作恢复 | ADMIN 解锁项目后重复写操作 | 按角色权限恢复 |
## 5. 权限矩阵规则
| 编号 | 规则 | 操作 | 期望结果 |
|---|---|---|---|
| R-301 | PM 项目内全权限 | PM 分别访问受试者、费用、药品、权限配置 | 可执行项目内写操作 |
| R-302 | ADMIN 可配置项目权限 | ADMIN 打开项目权限配置 | 可查看和保存权限矩阵 |
| R-303 | PM 可配置项目权限 | PM 打开项目权限配置 | 可查看和保存权限矩阵 |
| R-304 | 非 PM 不能配置权限 | CRA/PV/医学审核/IMP/QA 尝试进入权限配置 | 被拒绝或无入口 |
| R-305 | 权限关闭即时生效 | 关闭 CRA 创建受试者权限,CRA 尝试创建 | 被拒绝 |
| R-306 | 权限恢复即时生效 | 恢复 CRA 创建受试者权限,CRA 再次创建 | 可执行 |
| R-307 | 未配置覆盖时使用默认权限 | 清除某角色临时覆盖后复测默认动作 | 与默认权限一致 |
## 6. 前置权限规则
系统部分写操作依赖前置读权限。测试时可由 ADMIN 临时关闭前置权限验证。
| 编号 | 规则 | 操作 | 期望结果 |
|---|---|---|---|
| R-401 | 创建受试者需要中心读权限 | 关闭 CRA `sites:read` 后尝试创建受试者 | 被拒绝 |
| R-402 | 更新受试者需要中心读权限 | 关闭 CRA `sites:read` 后尝试编辑受试者 | 被拒绝 |
| R-403 | 创建访视需要受试者读和中心读 | 关闭 CRA `subjects:read``sites:read` 后创建访视 | 被拒绝 |
| R-404 | 创建 AE/SAE 需要受试者读和中心读 | 关闭 PV 前置读权限后创建 AE | 被拒绝 |
| R-405 | 创建药品发货需要中心读权限 | 关闭 IMP `sites:read` 后创建发货 | 被拒绝 |
| R-406 | 恢复前置权限后操作恢复 | 恢复对应前置权限后重复操作 | 按角色权限恢复 |
## 7. 模块读写规则
| 编号 | 模块 | 角色 | 期望结果 |
|---|---|---|---|
| R-501 | 项目总览 | PM/CRA/PV/医学审核/IMP/QA | 均可查看 |
| R-502 | 受试者 | PM/CRA | 可创建和更新 |
| R-503 | 受试者 | PV/医学审核/QA/IMP | 可查看或按权限受限,不可维护主数据 |
| R-504 | AE/SAE | PM/CRA/PV/医学审核 | 可创建或更新授权范围内信息 |
| R-505 | AE/SAE | IMP/QA | 默认只读或不可维护 |
| R-506 | 合同费用 | PM | 可维护 |
| R-507 | 合同费用 | CRA/IMP | 可查看,不可维护主数据 |
| R-508 | 合同费用 | PV/医学审核/QA | 默认不可维护 |
| R-509 | 药品流向 | PM/IMP | 可创建和更新 |
| R-510 | 药品流向 | CRA/QA | 可查看 |
| R-511 | 药品流向 | PV/医学审核 | 默认不可维护 |
| R-512 | 审计日志 | ADMIN/PM/QA | 可查看或导出授权范围内日志 |
| R-513 | 审计日志 | CRA/PV/医学审核/IMP | 默认不可查看系统审计 |
| R-514 | FAQ | PM | 可维护 |
| R-515 | FAQ | 其他项目成员 | 可查看,回复或协作按权限执行 |
| R-516 | 知识库笔记 | PM/CRA/PV/医学审核 | 可创建和编辑 |
| R-517 | 知识库笔记 | IMP/QA | 可查看,不可维护 |
## 8. 删除和关闭类高风险规则
| 编号 | 规则 | 操作 | 期望结果 |
|---|---|---|---|
| R-601 | 受试者删除仅高权限 | CRA/PV/医学审核/IMP/QA 尝试删除受试者 | 被拒绝 |
| R-602 | 中心删除仅高权限 | 非 ADMIN/PM 尝试删除中心 | 被拒绝 |
| R-603 | 费用合同删除仅 PM | 非 PM 尝试删除合同 | 被拒绝 |
| R-604 | 药品发货删除仅高权限 | IMP 尝试删除药品发货 | 按权限矩阵执行,结果需记录 |
| R-605 | AE 关闭权限 | PV 关闭 AEQA/IMP 尝试关闭 AE | PV 可执行,QA/IMP 被拒绝 |
| R-606 | 监查问题关闭权限 | CRA 关闭监查问题,QA/IMP 尝试关闭 | CRA 可执行,QA/IMP 被拒绝 |
## 9. 审计日志规则
| 编号 | 规则 | 操作 | 期望结果 |
|---|---|---|---|
| R-701 | 用户创建留痕 | ADMIN 创建测试用户 | 审计日志有记录 |
| R-702 | 用户审核留痕 | ADMIN 审核注册用户 | 审计日志有记录 |
| R-703 | 项目创建留痕 | ADMIN 创建 UAT 项目 | 审计日志有记录 |
| R-704 | 中心创建和 CRA 绑定留痕 | ADMIN 创建中心并绑定 CRA | 审计日志有记录 |
| R-705 | 权限变更留痕 | ADMIN/PM 修改 CRA 权限 | 审计日志有记录 |
| R-706 | 项目锁定留痕 | ADMIN 锁定和解锁项目 | 审计日志有记录 |
| R-707 | 业务写操作留痕 | CRA 创建受试者、PV 创建 AE、IMP 创建发货 | 审计日志或业务历史有记录 |
| R-708 | 审计导出留痕 | ADMIN/QA 导出审计日志 | 导出动作本身有记录 |
## 10. 数据校验规则
| 编号 | 规则 | 操作 | 期望结果 |
|---|---|---|---|
| R-801 | 必填字段校验 | 新建受试者时留空必填字段 | 保存失败并提示 |
| R-802 | 日期字段校验 | 输入明显非法日期或结束早于开始 | 保存失败或提示 |
| R-803 | 编号唯一性 | 重复创建 `UAT-SUBJ-001` | 保存失败或提示重复 |
| R-804 | 附件格式校验 | 上传不支持格式文件 | 被拒绝或提示格式不支持 |
| R-805 | 金额字段校验 | 合同金额输入负数或非数字 | 保存失败或提示 |
| R-806 | 数量字段校验 | 药品数量输入负数或非数字 | 保存失败或提示 |
## 11. 完成标准
交叉测试完成需满足:
- `R-001``R-307` 全部通过。
- 前置权限规则至少覆盖 CRA、PV、IMP 三类角色。
- 审计日志规则至少覆盖账号、项目、权限、业务写操作和导出。
- 所有失败项均已登记缺陷。
- 所有临时关闭的权限已恢复到 UAT 默认状态。
Binary file not shown.