You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
3.2 KiB
3.2 KiB
W2-T7 独立评审报告
Verdict
FAIL
- 提交:
fca1160 feat: add skill learning path service - 评审对象:
SkillLearningPathService、SkillLearningPathItem、SkillLearningPathResponse、SkillLearningPathServiceTest - 阻断项:1 项 Important
- 结论:生产实现整体符合 T7 行为契约,但核心顺序行为缺少可证伪的回归测试,不能放行 T8。
独立测试
执行环境:JDK 17.0.16、Maven 3.9.7。
$env:JAVA_HOME='D:\java\jdk'
& 'D:\maven\apache-maven-3.9.7\bin\mvn.cmd' '-Dtest=SkillTaxonomyMigrationTest,SkillCloudSeedDataIntegrationTest,SkillTaxonomyRepositoryTest,SkillCloudQueryServiceTest,SkillMatchServiceTest,SkillLearningPathServiceTest' test
结果:
Tests run: 49, Failures: 0, Errors: 0, Skipped: 0
BUILD SUCCESS
Total time: 1:00 min
Important
T7-I1:测试无法阻止学习路径按名称重排
- 文件:
mydreamjob-server/src/test/java/com/mydreamjob/skill/SkillLearningPathServiceTest.java:98-117 - 相关实现:
mydreamjob-server/src/main/java/com/mydreamjob/skill/SkillLearningPathService.java:35-38
现有单测的 missing 顺序为:
First/skillId=31/heat=1.00Second/skillId=32/heat=10.00Third/skillId=33/heat=5.00
期望输出保持该输入顺序。但输入的名称和 skillId 本身均为升序,因此把实现改成:
missingSkills.stream()
.sorted(Comparator.comparing(SkillCloudItem::nameZh))
.map(...)
后,单测仍会通过。真实数据集成测试 SkillLearningPathServiceTest.java:62-76 使用职位 1,其当前 TOP10 全部为相同热度,名称顺序也已符合词云次级排序,因此同样无法发现该重排缺陷。
T7 的要求是严格复用 SkillMatchService 返回的 missingSkills 顺序,不自行排序;该回归会破坏 REQ-LP-2。测试需要使用不会被名称排序或 skillId 排序偶然保持一致的缺失技能顺序,最好增加多热度分组的真实数据场景。
已通过检查
- 学习路径只遍历
matchResponse.missingSkills(),未消费已命中技能;优先级从 1 连续生成。 - 编程语言、框架、工具、通用四类模板均已实现;未知、空模板编码及分类不存在时回退通用模板。
- 建议包含技能名,精确断言中未出现 URL、课程链接、讲师、价格、时长、完成度或 AI 内容。
- 无缺口时返回
total=0和空列表,且不访问分类仓储。 - 重复调用返回相同顺序、优先级和建议。
SkillLearningPathItem仅包含技能 ID、技能名、分类 ID、分类名、优先级和建议,不含隐私字段。- 服务使用只读事务;未发现持久化或外部服务调用。
- 提交只新增 4 个指定文件,未包含 T8 及后续实现。
Minor
SkillLearningPathServiceTest.java:195-221覆盖了 null 模板编码、未知模板和分类不存在,但未直接覆盖skill.categoryId()==null;实现已在SkillLearningPathService.java:57-58回退 GENERAL。- 外部内容主要通过精确模板断言和禁用词断言约束;生产类没有外部客户端依赖,因此本项不构成阻断。
未决问题
无。修复测试后需重新执行指定回归并复审。