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

5.6 KiB
Raw Permalink Blame History

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-02P0):重复邮箱注册拒绝
  • TC-NF-SEC-01P0):注册密码编码后入库
  • TC-AC-ADM-LOGIN-01P1):普通用户调用管理员登录被拒绝
  • TC-AC-USER-LOGIN-06P0):rememberMe 会话有效期接近 14 天
  • TC-AC-USER-LOGIN-03P0):已锁定账号拒绝登录
  • TC-AC-ADM-LOGIN-02P0Disabled):连续 3 次错密后验证码
  • TC-AC-ADM-LOGIN-03P0Disabled):连续 5 次错密锁定

1.2 文章列表与可见性(jog-module-blog

文件:jog-module-blog/src/test/java/fun/nojava/module/blog/service/impl/ArticleServiceImplP0P1Test.java

  • TC-AC-BLOG-LIST-01P0):公开文章列表基本分页流程
  • TC-AC-BLOG-PUB-04P0):文章不存在时返回 ARTICLE_NOT_FOUND
  • TC-AC-BLOG-LIST-06P0):详情访问会递增浏览量
  • TC-AC-BLOG-PUB-04(P0,Disabled):私密文章访问控制
  • TC-AC-BLOG-LIST-06(P0,Disabled):作者访问不应累计浏览量
  • TC-AC-BLOG-PUB-06P0Disabled):标签数量 >5 应拒绝

2. 自测执行与结果

执行命令:

mvn -pl jog-module-system,jog-module-blog test

结果汇总:

  • AuthServiceImplP0P1TestTests run: 9, Failures: 0, Errors: 0, Skipped: 2
  • ArticleServiceImplP0P1TestTests 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

  1. 密码规则与规范不一致(FR-USER-REG-02

    • 修复:登录/注册密码校验调整为 8~32 位,且至少包含四类中的三类(大写、小写、数字、特殊字符)。
  2. 登录日志字段映射不完整(FR-ADM-LOGIN-05

    • 修复:补齐日志字段映射(ip_addressdevice_fingerprint),并按用户类型正确写入 login_type

当前遗留

  • 本轮已跟踪的 7 项问题均已完成修复并由自动化测试覆盖通过。

4. 原始问题记录(归档)

P0

  1. 未实现连续失败后验证码流程(FR-ADM-LOGIN-03

    • 现状:登录逻辑未包含“3 次失败后需验证码”的状态机与校验。
    • 影响:无法满足管理员登录安全基线。
    • 对应用例:TC-AC-ADM-LOGIN-02Disabled)。
  2. 未实现连续失败后账号锁定(FR-ADM-LOGIN-03 / FR-USER-LOGIN-04

    • 现状:登录失败仅返回错误,未维护失败计数/锁定时长。
    • 影响:暴力破解风险增加。
    • 对应用例:TC-AC-ADM-LOGIN-03Disabled)。
  3. 私密/仅粉丝文章访问控制缺失(FR-BLOG-PUB-04

    • 现状:公开详情查询流程未基于 visibility 与访问者关系做权限拦截。
    • 影响:私密内容可能被未授权用户访问。
    • 对应用例:TC-AC-BLOG-PUB-04Disabled)。
  4. 作者本人浏览仍会累计阅读量(FR-BLOG-LIST-07

    • 现状:浏览量递增逻辑无“作者本人不加”分支。
    • 影响:阅读量统计失真。
    • 对应用例:TC-AC-BLOG-LIST-06Disabled)。
  5. 标签数量上限未限制为 5FR-BLOG-PUB-06

    • 现状:创建/编辑文章时未校验 tagIds 上限。
    • 影响:与发布规则不一致,可能导致前后端行为分裂。
    • 对应用例:TC-AC-BLOG-PUB-06Disabled)。

P1

  1. 密码规则与规范不一致(FR-USER-REG-02

    • 现状:注册/登录 DTO 使用 6~20 位校验,且未体现“三类字符”强度规则。
    • 影响:低于测试规范要求(规范要求 8~32 且至少三类字符)。
  2. 登录日志字段映射不完整(FR-ADM-LOGIN-05

    • 现状:登录日志实体中的 userAgent 未持久化映射,且登录类型写死为用户类型。
    • 影响:审计维度不完整,管理员/用户登录区分不准确。

5. 数据清理说明

  • 本次新增测试均为 Mockito 单元测试,不直接连接数据库,不会新增真实库数据。
  • 后续若补充集成测试(落库场景),将统一采用“事务回滚 + 必要时显式删除”策略,确保每条用例结束后清理测试数据。