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