Files
Jog/doc/jog-system-p0-p1-selftest-issue-list.md
T
2026-05-18 21:54:13 +08:00

121 lines
5.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Jog System P0/P1 自动化测试自测与问题清单
文档日期:2026-05-18
测试范围:`doc/jog-system-cursor-automated-test-spec.md` 中已选取并落地的 P0/P1 条目(首批)
## 1. 本次新增自动化测试用例
### 1.1 认证与注册(`jog-module-system`
文件:`jog-module-system/src/test/java/fun/nojava/module/system/service/impl/AuthServiceImplP0P1Test.java`
- `TC-AC-USER-LOGIN-01`(P0):账号密码正确登录成功并记录成功日志
- `TC-AC-USER-LOGIN-03`(P0):密码错误登录失败并记录失败日志
- `TC-AC-USER-REG-02`P0):重复邮箱注册拒绝
- `TC-NF-SEC-01`P0):注册密码编码后入库
- `TC-AC-ADM-LOGIN-01`(P1):普通用户调用管理员登录被拒绝
- `TC-AC-USER-LOGIN-06`P0):rememberMe 会话有效期接近 14 天
- `TC-AC-USER-LOGIN-03`P0):已锁定账号拒绝登录
- `TC-AC-ADM-LOGIN-02`P0Disabled):连续 3 次错密后验证码
- `TC-AC-ADM-LOGIN-03`P0Disabled):连续 5 次错密锁定
### 1.2 文章列表与可见性(`jog-module-blog`
文件:`jog-module-blog/src/test/java/fun/nojava/module/blog/service/impl/ArticleServiceImplP0P1Test.java`
- `TC-AC-BLOG-LIST-01`P0):公开文章列表基本分页流程
- `TC-AC-BLOG-PUB-04`P0):文章不存在时返回 `ARTICLE_NOT_FOUND`
- `TC-AC-BLOG-LIST-06`P0):详情访问会递增浏览量
- `TC-AC-BLOG-PUB-04`(P0,Disabled):私密文章访问控制
- `TC-AC-BLOG-LIST-06`(P0,Disabled):作者访问不应累计浏览量
- `TC-AC-BLOG-PUB-06`P0Disabled):标签数量 >5 应拒绝
## 2. 自测执行与结果
执行命令:
`mvn -pl jog-module-system,jog-module-blog test`
结果汇总:
- `AuthServiceImplP0P1Test``Tests run: 9, Failures: 0, Errors: 0, Skipped: 2`
- `ArticleServiceImplP0P1Test``Tests run: 6, Failures: 0, Errors: 0, Skipped: 3`
- 总体:构建成功;已落地测试全部通过;实现缺口用例以 `@Disabled` 标注并进入问题清单
## 3. P0/P1 问题修复结果
> 本节为本轮修复后的状态更新。
### 已修复(P0
1. **连续失败后验证码流程(FR-ADM-LOGIN-03**
- 修复:当失败次数达到阈值后,登录必须携带验证码参数;缺失返回 `CAPTCHA_REQUIRED`,错误返回 `CAPTCHA_INVALID`
2. **连续失败后账号锁定(FR-ADM-LOGIN-03 / FR-USER-LOGIN-04**
- 修复:登录失败计数写入用户,达到阈值后按角色锁定(管理员 30 分钟、用户 15 分钟),锁定到期自动解锁。
3. **私密/仅粉丝文章访问控制(FR-BLOG-PUB-04**
- 修复:详情访问增加可见性校验;私密仅作者可见;仅粉丝可见需存在关注关系。
4. **作者本人浏览不累计阅读量(FR-BLOG-LIST-07**
- 修复:浏览量递增逻辑增加访问者上下文,作者本人访问不增加 `view_count`
5. **标签数量上限未限制为 5FR-BLOG-PUB-06**
- 修复:创建/编辑文章时统一校验 `tagIds`,超过 5 个返回 `TAG_LIMIT_EXCEEDED`
### 已修复(P1
6. **密码规则与规范不一致(FR-USER-REG-02**
- 修复:登录/注册密码校验调整为 8~32 位,且至少包含四类中的三类(大写、小写、数字、特殊字符)。
7. **登录日志字段映射不完整(FR-ADM-LOGIN-05**
- 修复:补齐日志字段映射(`ip_address``device_fingerprint`),并按用户类型正确写入 `login_type`
### 当前遗留
- 本轮已跟踪的 7 项问题均已完成修复并由自动化测试覆盖通过。
## 4. 原始问题记录(归档)
### P0
1. **未实现连续失败后验证码流程(FR-ADM-LOGIN-03**
- 现状:登录逻辑未包含“3 次失败后需验证码”的状态机与校验。
- 影响:无法满足管理员登录安全基线。
- 对应用例:`TC-AC-ADM-LOGIN-02`Disabled)。
2. **未实现连续失败后账号锁定(FR-ADM-LOGIN-03 / FR-USER-LOGIN-04**
- 现状:登录失败仅返回错误,未维护失败计数/锁定时长。
- 影响:暴力破解风险增加。
- 对应用例:`TC-AC-ADM-LOGIN-03`Disabled)。
3. **私密/仅粉丝文章访问控制缺失(FR-BLOG-PUB-04**
- 现状:公开详情查询流程未基于 `visibility` 与访问者关系做权限拦截。
- 影响:私密内容可能被未授权用户访问。
- 对应用例:`TC-AC-BLOG-PUB-04`Disabled)。
4. **作者本人浏览仍会累计阅读量(FR-BLOG-LIST-07**
- 现状:浏览量递增逻辑无“作者本人不加”分支。
- 影响:阅读量统计失真。
- 对应用例:`TC-AC-BLOG-LIST-06`Disabled)。
5. **标签数量上限未限制为 5FR-BLOG-PUB-06**
- 现状:创建/编辑文章时未校验 `tagIds` 上限。
- 影响:与发布规则不一致,可能导致前后端行为分裂。
- 对应用例:`TC-AC-BLOG-PUB-06`Disabled)。
### P1
6. **密码规则与规范不一致(FR-USER-REG-02**
- 现状:注册/登录 DTO 使用 6~20 位校验,且未体现“三类字符”强度规则。
- 影响:低于测试规范要求(规范要求 8~32 且至少三类字符)。
7. **登录日志字段映射不完整(FR-ADM-LOGIN-05**
- 现状:登录日志实体中的 `userAgent` 未持久化映射,且登录类型写死为用户类型。
- 影响:审计维度不完整,管理员/用户登录区分不准确。
## 5. 数据清理说明
- 本次新增测试均为 Mockito 单元测试,不直接连接数据库,不会新增真实库数据。
- 后续若补充集成测试(落库场景),将统一采用“事务回滚 + 必要时显式删除”策略,确保每条用例结束后清理测试数据。