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
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 仍具备所需唯一约束、外键、查询索引、
importance0–5 CHECK、非空 Importance 来源完整性 CHECK 和 proxy0/1CHECK。 - 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 问题。