ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

OBLITERATUS Gate 3 覆盖率基线报告解析:从 75.68% 仓库语句覆盖到 95% 变更行硬性下限的质量门槛体系

OBLITERATUS Gate 3 覆盖率基线报告解析:从 75.68% 仓库语句覆盖到 95% 变更行硬性下限的质量门槛体系 OBLITERATUS Gate 3 覆盖率基线报告解析从 75.68% 仓库语句覆盖到 95% 变更行硬性下限的质量门槛体系【免费下载链接】OBLITERATUSOBLITERATE THE CHAINS THAT BIND YOU项目地址: https://gitcode.com/GitHub_Trending/ob/OBLITERATUS导读本文以 OBLITERATUS 仓库中 Gate 3 increment 1 覆盖率报告.aiwg/testing/coverage-report.md为主体系统解析该项目以测试深度为门槛的质量治理体系报告记录于 2026-08-15对应规范提交256c39ea6a492749a4db44146830e9d78fd3fed8基准为8456e52bf8604a72ec6cfcc1ab71cbf46c90e1e7采用 coverage.py branch JSON v3 格式。读完本文你将掌握仓库级与成熟 CPU 范围两级覆盖率指标的计算口径、从 90% 提升到 95% 的不可变变更行下限如何在策略文件、校验脚本与 CI 工作流中三处一致落地、以及为什么退出标准仍开放而本轮通过可以同时成立。一、报告定位Gate 3 增量 1 在整个测试计划中的位置1.1 Gate 3 是什么OBLITERATUS 的质量治理并非简单的测试越多越好而是一套分层递进的测试深度门禁gate体系。根据 .aiwg/testing/master-test-plan.md 的描述整个计划依次经过基础锁定Python 3.10–3.12 密封矩阵、wheel/sdist 安装冒烟、精确基准覆盖率对比、90% 变更行下限、风险地图、质量策略、重复与变异证据、条件工作流、供应链作业Wave B1Gate 1高风险 CPU 契约研究/数值正确性、加载器与架构边界、持久化与破坏性操作、公共/远程契约、评估与研究输出Wave B2Gate 2离线纵向切片tiny-model CLI→加载器→流水线→检查点→评估器→报告、故障恢复切片、确定性往返、并发/幂等、风险地图穷举Wave CGate 3属性测试、变异测试、确定性重放、回归深度并将开放式的改进方向转换为下一个强制交付门禁。Gate 3 的核心思想是测试数量不是成功指标每个增量必须保护一个具名行为、在故意植入实现缺陷时失败并至少改善下述维度之一oracle 强度、故障路径覆盖、变异抵抗力、环境证据、确定性重放。1.2 增量 1 的具体使命本报告对应的增量 1 是一次纯测试基础设施增量policy/test/docs only其使命包括采纳 Gate 3 量化质量策略并刷新当期测量将不可变变更行下限从 90% 提升到 95%增加时长预算duration budget强制执行不改变任何生产行为。这一点从报告的Changed production lines Not applicable一行可见一斑由于本轮不触碰生产代码生产变更行检查自然不适用而两个被修改的策略/证据脚本则被单独审计242 行可执行代码全部覆盖100%。二、五维覆盖率指标表口径、数值与门槛报告给出了五组度量这里逐行拆解其含义与口径范围ScopePython 3.12 实测强制下限Enforced floorGate 3 退出标准状态Status仓库语句Repository statements75.68%75%80%通过下限退出开放仓库分支Repository branches61.72%60%65%通过下限退出开放成熟 CPU 语句Mature CPU statements92.71%92%94%通过下限退出开放成熟 CPU 分支Mature CPU branches81.55%80%84%通过下限退出开放变更生产行Changed production lines不适用仅策略/测试/文档95%95%通过变更策略脚本行Changed policy-script lines100%242/242 聚焦本地审计95%95%通过三个关键概念需要明确1. 三级阈值的层级关系。每个指标都有三层数值实测值本提交的真实测量、强制下限不可突破的底线Gate 3 期间只能收紧不能放松、Gate 3 退出标准要结束测试暂停、恢复普通特性开发必须达到的量化目标。报告表明增量 1 的实测值全部高于下限但低于退出标准因此状态是PASS floor; exit open——本提交合法通过但 Gate 3 大门仍然敞开需要后续有界增量逐步逼近退出标准。2. 成熟 CPU 范围Mature CPU Scope是什么。根据 ci/test-quality-policy.json 中的mature_cpu_scope定义范围涵盖除那些本质上需要真实模型运行时、外部服务、交互式 UI 或远程/硬件执行的边界模块之外的所有源码模块。该文件列出了 15 个被排除的模块每个都带boundary边界类型、rationale理由和conditional_gate对应的条件门禁全部挂接条件测试问题 #71model-runtimeabliterate.py、auto_obliterate.py、bayesian_optimizer.py、informed_pipeline.py、lora_ablation.py、sweep.py未覆盖路径涉及真实 transformer 架构的加载、变异、生成与保存network-servicebestiary_sync.py、models_client.py、watchtower.py依赖外部 BESTIARY 目录 HTTP 端点或 Hugging Face 服务响应external-evaluatorevaluation/heretic_eval.py、tourney.py依赖下载的基准数据、分类器、实时模型与 lm-evalinteractive-uiinteractive.py、local_ui.py、ui_watchtower.py依赖交互终端或 Gradio 浏览器环境remote-executionremote.py依赖具备凭据的远程主机进行 SSH 发现、传输、执行、取消与结果同步。排除策略的意义在于这些路径的未覆盖并非测试偷懒而是其执行前提客观上无法在纯 CPU 的 CI 沙箱内成立它们被显式映射到conditional-tests条件工作流见 .github/workflows/conditional-tests.yml而不是被 mock 伪装成已覆盖。这也是成熟 CPU 语句 92.71%远超仓库语句 75.68%的根本原因——前者把 15 个边界模块剔除后再测量。3. 变更行审计为何要做两次。报告把变更生产行Not applicable与变更策略脚本行100%242/242分开普通仓库覆盖门槛测量的对象是obliteratus包本身但本轮改动的两个脚本scripts/check_quality_policy.py 与证据脚本不在包内因此审计直接对这两个脚本的全部可执行变更行做聚焦本地测量确认 242 行全部被覆盖。三、95% 变更行下限策略、校验器、CI 的三处一致落地报告强调95% 的变更行下限一致存在于ci/test-quality-policy.json、scripts/check_quality_policy.py、.github/workflows/ci.yml、测试与操作员文档中。逐一验证如下3.1 策略文件中的基线ci/test-quality-policy.json 的minimums对象包含七项{ schema_version: 1, minimums: { repository_statement: 75.0, repository_branch: 60.0, changed_line: 50.0, mature_cpu_statement: 94.0, mature_cpu_branch: 84.0, mutation_score: 85.0, warning_budget: 0 } }注意这里有两套数值并存minimums中changed_line: 50.0是策略文件的基线默认值而 Gate 3 的当前强制下限 95%通过校验器内置的BASELINE_FLOORS与 CI 调用参数共同生效。策略文件同时承载critical_cpu_paths13 个关键 CPU 路径如 obliteratus/runtime_contracts.py、obliteratus/persistence_contracts.py、obliteratus/models/loader.py、obliteratus/cli.py 等与test_evidence证据保留 90 天、flake 窗口 30 天、最大隔离期 30 天、时长预算。3.2 校验器中的不可变下限逻辑scripts/check_quality_policy.py 第 15–23 行定义了BASELINE_FLOORSBASELINE_FLOORS { repository_statement: 75.0, repository_branch: 60.0, changed_line: 50.0, mature_cpu_statement: 94.0, mature_cpu_branch: 84.0, mutation_score: 85.0, warning_budget: 0.0, }validate_policy()第 474 行起对每一项执行核心校验策略文件中的最小值若低于基线且没有显式审核过的例外threshold_exceptions直接判失败。例外必须满足四重约束_valid_exception第 28–45 行new_value与当前值一致、有非空reason、approved_issue以https://github.com/elder-plinius/OBLITERATUS/issues/开头、且有非空expires过期日期。这套机制把下限只能单向收紧从口头约定变成了机器可执行的硬约束。同一脚本还实现了成熟的 CPU 范围测量measure_mature_cpu_scope第 538 行起从 coverage.py JSON 的files对象中剔除exclusions列出的路径后累加语句/分支与已覆盖数计算出line_percent与branch_percent再与minimums中的成熟 CPU 下限比对validate_mature_cpu_scope第 574 行起。命令行入口main第 599 行起支持三个参数python scripts/check_quality_policy.py \ --policy ci/test-quality-policy.json \ --coverage test-results/coverage-py3.12.json \ --evidence test-results/test-trend.json--policy必填质量策略 JSON--coverage可选coverage.py JSON 报告用于成熟 CPU 范围测量--evidence可选测试趋势证据用于时长预算校验。3.3 CI 工作流中的实际调用.github/workflows/ci.yml 在多处调用该校验器第 274–275 行python scripts/check_quality_policy.py --policy ci/test-quality-policy.json仅校验策略结构本身第 458–462 行--policy ... --coverage test-results/coverage-py${{ matrix.python-version }}.json在 Python 3.10/3.11/3.12 矩阵的每个版本上强制成熟 CPU 范围下限第 484–485 行随证据文件再次执行。check_coverage_thresholds.pyscripts/check_coverage_thresholds.py则负责仓库级全局下限、关键文件下限--min-file PATHPERCENT与变更行下限--min-changed配合--base-ref用git diff --unified0解析新增/修改行号再与 coverage 报告中的executed_lines/missing_lines求交集计算。报告中的精确基准重放exact-base replay零行/零分支差异、零触及生产模块正是该脚本比较 base 报告与 head 报告的结果。3.4 测试与文档中的一致断言.aiwg/testing/master-test-plan.md 明确写入New or modified code must maintain at least 95% changed-line coverage新增或修改代码必须维持至少 95% 的变更行覆盖且被触及的模块不得丢失行或分支覆盖除非 PR 记录理由并补充等价契约或条件证据。测试侧tests/test_quality_policy.py 会直接读取 CI 工作流 YAML 并断言mutate_only_covered_lines、超时常数、变异目标模块列表等内容确保工作流配置本身被测试锁定防止门禁被悄悄改弱。四、版本差异说明为什么覆盖率是一个区间而非单点报告特别解释不同 Python 版本下测量值略有差异因为版本特定分支version-specific branches被不同地执行——仓库覆盖率的实际范围为语句 75.68–75.78%、分支 61.72–61.81%。这一细节提示读者任何覆盖率数字都必须绑定测量环境Python 版本、依赖锁定、运行种子才有意义。这与 .aiwg/testing/master-test-plan.md 中Mandatory Python 3.12 lane: 2,119 tests passed, 9 conditional tests deselected by policy的约束一致条件测试由策略主动剔除不计入默认门禁重复性验证则要求同一测试集在三种不同文件顺序与哈希种子下全部通过增量 1 之后的 Gate 3 最终报告中为 702 个测试 × 3 次全通过、零 flake。五、退出标准从PASS floor到exit open再到达标报告结论明确Gate 3 的量化退出标准仍然开放。后续有界增量必须将仓库语句提升到 80%、仓库分支提升到 65%、成熟 CPU 语句提升到 94%、成熟 CPU 分支提升到 84%且不得削弱上述任一强制下限。随后的 .aiwg/testing/gate3-final-report.md2026-08-16规范提交42b30f7e5b8ee596b3b0b039b10af16f01deec1e显示这一进程如期完成度量增量 1 实测Gate 3 退出标准最终达标值仓库语句75.68%80%83.49%仓库分支61.72%65%71.04%成熟 CPU 语句92.71%94%94.02%成熟 CPU 分支81.55%84%84.54%变异得分—≥85%89.65%1,844/2,057 杀死最终报告同时记录了 8 个递进增量从增量 1 的策略采纳到增量 2 的数值/属性/变质 oraclePR #102、增量 3 的加载器/架构/量化决策契约PR #103、增量 4 的检查点故障注入与原子性PR #104、增量 5 的 BESTIARY/模型客户端/看塔人状态契约PR #105、增量 6 的锦标赛/交互/UI 决策缝PR #108、增量 7 的 tiny-model 纵向切片与量化存储语义PR #109、增量 8 的条件证据治理与同版本 CUDA Torch 覆盖层PR #111以及PR #111 通过不可变头部审计、八项强制作业全部通过、保留四个发布密钥签名的评审完整性结论。六、延伸这套覆盖率体系如何被测试与复用对想要复用或学习该机制的读者仓库提供了完整的证据链策略定义ci/test-quality-policy.json——最小值、关键 CPU 路径、成熟 CPU 排除清单15 项均含 boundary/rationale/conditional_gate、测试证据保留期、flake 窗口、隔离期、时长预算。校验实现scripts/check_quality_policy.py——不可变下限、例外治理、成熟 CPU 范围测量、时长预算校验。覆盖率门槛scripts/check_coverage_thresholds.py——全局/关键文件/变更行/被触及模块无回归四重门槛含--base-ref、--base-report、--touched-module-no-regression、--min-changed等参数。CI 集成.github/workflows/ci.yml——在 3.10/3.11/3.12 矩阵中对每次 PR 强制执行.github/workflows/conditional-tests.yml 承载排除模块对应的条件环境证据。测试锁定tests/test_quality_policy.py——直接解析工作流 YAML 与 pyproject.toml 的 mutmut 配置断言变异目标、超时与线程环境变量防止门禁被悄悄弱化。程序上下文.aiwg/testing/master-test-plan.md、.aiwg/testing/gate3-final-report.md 提供完整波浪计划、退出标准、最终结果与证据位置。值得强调的是其核心设计哲学覆盖率数字只有绑定测量范围仓库 vs 成熟 CPU、测量环境Python 版本/种子、审计对象生产代码 vs 策略脚本与不可变下限四个维度才有意义。该机制不追求单一百分比最大化而是用下限单向收紧 例外需显式审核 条件环境显式豁免但不伪装覆盖 证据新鲜度受控的组合拳让每一次 PR 合并都留下可重放的量化证据——这正是测试深度门禁区别于测试数量竞赛的关键。【免费下载链接】OBLITERATUSOBLITERATE THE CHAINS THAT BIND YOU项目地址: https://gitcode.com/GitHub_Trending/ob/OBLITERATUS创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表