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.
 
 
 

7.9 KiB

W1-T3 最终独立复审报告(DP-5 唯一复审)

状态

完成。本轮只读取实现、V35/V36、期望映射、证据快照和前序评审报告,并独立执行指定测试、CSV 来源审计与文件哈希核验;未修改任何实现或测试文件,仅写入本报告。

Verdict

PASS

第三轮 findings 已全部关闭,允许进入 T4。未发现 Critical 或 Important 阻断项。

独立测试输出

环境:

  • JAVA_HOME=D:\java\jdk
  • Java:OpenJDK 17.0.16
  • Maven:D:\maven\apache-maven-3.9.7\bin\mvn.cmd
  • 工作目录:D:\1\zhi\zhilai\mydreamjob-server

命令:

$env:JAVA_HOME='D:\java\jdk'
& 'D:\maven\apache-maven-3.9.7\bin\mvn.cmd' '-Dtest=SkillTaxonomyMigrationTest,SkillCloudSeedDataIntegrationTest' test

结果:

SkillCloudSeedDataIntegrationTest: Tests run: 8, Failures: 0, Errors: 0, Skipped: 0
SkillTaxonomyMigrationTest:       Tests run: 2, Failures: 0, Errors: 0, Skipped: 0
Total:                            Tests run: 10, Failures: 0, Errors: 0, Skipped: 0
BUILD SUCCESS
Total time: 39.479 s

第三轮 Finding 逐项关闭状态

1. 47/47 条 O*NET 技能来源逐技能精确锁定:关闭

  • skill-cloud-expected-mappings.csv 含 47 条 SKILL_SOURCE + O*NET 记录,47 个技能编码和 47 个来源三元组均唯一。
  • verifyExpectedMappings 先通过 assertSameMappingKeys 精确比较期望文件与数据库的全部实体键;随后对每一条执行 assertMappingMatches,逐条比较 source_type 和 source_code。
  • verifySkillEvidence 逐条将 47 个 skill_code -> SOC|Workplace Example|Element ID 与证据快照核对,并用 assertEvidenceKeySet 要求期望软件来源集合与快照 47 条集合完全相等。
  • 交换任意两个 O*NET 技能来源时,至少一行会在逐字段断言处失败,不再存在仅验证“来源三元组集合合法”的缺口。
  • assertMappingVerifierRejectsTampering 的交换来源自检通过,且它调用的是全量循环实际使用的同一个比较函数。

2. 137/137 条非空 Importance 全字段精确断言:关闭

  • 期望文件包含 139 条职位技能关系,其中 137 条非空 Importance、2 条空 Importance。
  • 137 条非空关系均包含非空 expected_source_code、expected_element_id、expected_importance,且 expected_is_proxy=1。
  • 全量循环对每条关系精确比较 source_type、source_code、element_id、importance 和 importance_is_proxy;数值使用 0.001 容差,其余字段使用严格相等。
  • 任意一条非空关系的 proxy 从 1 改为 0、来源 SOC/Element ID 被替换、或数值被修改,都会在对应关系上失败。
  • 2 条空 Importance 关系均断言来源 SOC、Element ID、Importance 为空且 importance_is_proxy=0。

3. expected-mappings 覆盖且仅覆盖 10/10 occupation、72/72 skill、139/139 relation:关闭

  • 期望文件共 221 条数据行:OCCUPATION_SOURCE=10、SKILL_SOURCE=72、RELATION=139。
  • record_type + entity_key 重复数:0。
  • assertExpectedMappingCounts 锁定三类记录数量;assertSameMappingKeys 进一步比较期望与数据库完整键集合,缺项和多余项都会失败。
  • 独立测试通过证明 Flyway 实际生成的 10 个职位、72 个技能和 139 条关系与期望文件一一对应。

4. expected-mappings 与证据快照交叉一致,且 reference 匹配官方 O*NET 31.0 CSV:关闭

独立解析结果:

检查项 结果
onet-31-reference.csv 数据行 92
SOFTWARE 证据 47,键无重复
IMPORTANCE 唯一证据 45,键无重复
47/47 SOFTWARE 在官方 software_skills.csv 精确命中 通过
45/45 IMPORTANCE 在声明官方 CSV 中精确命中 SOC、Element ID、Scale ID=IM、Data Value 通过
137/137 加权关系的证据键和值可回溯到 reference 通过
期望文件引用的 SOFTWARE 与 reference SOFTWARE 集合相等 通过
期望文件引用的唯一 IMPORTANCE 键与 reference IMPORTANCE 集合相等 通过

target/onet-31 当前 CSV 哈希:

software_skills.csv      6AABB96B464288DB849580E6510530EFFF3F80E25DDE2BB23F1FC36BB526B016
work_activities.csv      6C266205B2926C0C854A7A577AAE29FE492C71BB0DF7E197ADCA830B58FE4EA1
knowledge.csv            88092E17D16096CDEBE292FEE4389DEB460EDDA24AE8B4637212C69C71562F55
essential_skills.csv     68C4D31D8C55077238395DCA40CC4E6D32E6A608B5474BB8264B1F98AE415BD7
transferable_skills.csv  F17D0419E818A3BF2F55076510C76C4AEF01CC8F5AEE2670D2F44F6F44AC60F7
occupation_data.csv      A09EAE1D6609686E44E05B7290993A1C8B523D8CA224BC0EEDC194C855C3EE02

这些 CSV 哈希与前次独立审计记录的 O*NET 31.0 官方发布包解压文件哈希一致。本轮再次请求官方 ZIP 时收到 HTTP 200,但连接在完成前中断;因此未重复完成 ZIP 级哈希计算。该限制不影响本轮映射验证,因为 reference 已与哈希不变的官方 CSV 逐行精确匹配。

5. 测试独立性、无 target 依赖、可证伪性:关闭

  • SkillCloudSeedDataIntegrationTest 只使用 ClassPathResource 读取 skill-cloud/onet-31-reference.csv 和 skill-cloud/skill-cloud-expected-mappings.csv。
  • 测试源码未引用 V36 文件、target/onet-31、文件系统绝对路径或其他运行后才生成的期望数据。
  • 期望映射是独立静态资源;数据库实际值通过 Flyway 迁移和 JDBC 读取,不是从 V36 文本反推后生成期望文件。
  • 测试可在没有 target/onet-31 的前提下运行;target/onet-31 仅在本次人工来源审计中用于交叉核对。
  • 自检覆盖来源交换、proxy 翻转和 Importance 篡改,且生产断言路径已对全部 221 条期望实体执行。

6. 68/68 分类、8 个唯一 ESCO occupation URI、混合来源契约及 V35/V36 约束:关闭

  • 测试 seedDataCoversIndustriesOccupationsAndEveryDeclaredCategory 通过:3 个行业、10 个职位、68 个分类,10 个职位的分类清单逐项一致,每个分类至少关联 1 条技能关系,每个职位至少 10 个加权技能。
  • 10 个职位均使用 ESCO 职位来源;8 个 URI 值唯一,均符合 http://data.europa.eu/esco/occupation/... 格式。DevOps 与量化开发按已批准契约复用软件开发职位 URI。
  • 混合来源契约保持明确:25 个技能为 ESCO,47 个具体技术为 O*NET software_skills 补充;skills.source_type、来源三元组唯一约束和来源版本外键一致。
  • V35 仍具备所需唯一约束、外键、查询索引、importance 0–5 CHECK、非空 Importance 来源完整性 CHECK 和 proxy 0/1 CHECK。
  • V36 的 137 条非空 Importance 均保存 O*NET SOC、Element ID 和 proxy=1;2 条无可靠映射的关系保留技能并写入 NULL,proxy=0。
  • H2 MODE=MySQL 集成迁移测试通过;本轮未新增真实 MySQL 8.4 执行要求。

文件哈希

A9399B4C1D9525F3ED91694FE8F02433C1BF634B458C693D91A4014C1252183B  V35__skill_cloud_taxonomy.sql
0D5D39A556B6D72CDB21422ED7020B1EAEC0BE8661635B497D12B40D9D104724  V36__skill_cloud_seed.sql
2A281B099AF4DB5E8117A99D8281191EBC60E68B4BC0E153551AD2013B0071A5  SkillCloudSeedDataIntegrationTest.java
4672287B3197784E4144EE36C322AD27AB3BD6955D6626D885E31349C9A19435  onet-31-reference.csv
F6D7545F01C18A6C13D17C00A051D757AED4A8BD2BEBA34757D5DEC1403A6C7B  skill-cloud-expected-mappings.csv

Findings

Critical

无。

Important

无。

Minor

  • 官方发布包 ZIP 本轮重下载未完成,reference 的官方身份依赖“官方 CSV 哈希不变 + 前次已建立的官方 ZIP 审计记录”。当前不影响 T3 正确性或 T4 放行。
  • 测试不会联网重新校验官方 CSV 哈希;这是有意的离线设计,但后续若更新 reference,仍需人工保留来源审计记录。

是否允许进入 T4

允许。 第三轮两项 Important finding 均已关闭,10/10 测试通过,未发现新的 Critical 或 Important 问题。