ARC 4接入真实业务工程第 15–18 章

第 18 章 —— 多层测试证据的适用范围

本章目标: 本章完成后,开发者能够为领域端口、真实 Runtime、多节点协议和网络黑盒分别选择证据,并拒绝用较低层绿灯替代较高层验收。

学习目标

  1. 建立 E1—E4 测试证据阶梯。
  2. 为每层写出环境、固定 revision、已证明与未证明事项。
  3. 区分真实集合实现、受控 fake membership 和真实网络端口。
  4. 为三类集合安排最小但不失真的验证组合。

前置条件

案例进度

履约团队已有领域测试、单 Runtime 测试和 chaos 测试。发布评审追问:「这些绿灯是否证明真实端口、客户端协议与进程隔离?」团队不再回答笼统的「测试覆盖了」,而是按证据层逐项陈述。

证据强度是适用范围,不是积分

从领域合同到真实网络黑盒的证据阶梯

等级 执行面 最适合证明 不能替代
E1 领域 fake / 静态资产 端口语言、决策表、失败翻译 真实集合与协议行为
E2 真实 Runtime,单进程 spec、codec、typed handle、生命周期 多节点传播和分区
E3 多节点协议/受控 chaos delta、repair、分区、恢复、成员事件 独立进程和真实端口
E4 独立进程、真实端口、客户端协议 进程边界、协议兼容、网络可达 生产容量与故障域全貌

E4 比 E3 更接近部署现实,但依然不是生产就绪分数。生产网络拓扑、容量、权限、告警与运维流程仍要单独验收。

三类集合的最小证据组合

Register

Lease

CRDT

证据卡需要固定四类信息

每次记录至少包含:

  1. 环境与 revision:运行在哪个源码与 JDK/Maven 环境。
  2. 输入/故障:实际注入了什么,不用「模拟异常」含糊带过。
  3. 观察结果:test 数、失败、错误、跳过及关键行为。
  4. 未证明事项:下一层仍要回答什么。

SkippedTests run: 0 不是通过;只编译成功也不是行为证据。

反例与故障注入

实验

先运行书籍自有 E1/E2:

cd examples/order-fulfillment-control-plane
mvn clean test

再运行固定源码 E2/E3:

cd submodule/dsm
mvn -q -pl dsm-integration-test -am \
  -Dtest=RuntimeIntegrationTest,TwoNodeIntegrationTest,ChaosIntegrationTest \
  -Dsurefire.failIfNoSpecifiedTests=false test

evidence-ladder.json 核对每一层的 provesdoesNotProve 都非空。

实验验收卡

字段 内容
运行命令 书籍示例 2 test;Runtime/TwoNode/Chaos 聚焦测试
输入或故障 fake port、真实单 Runtime、双节点、消息漏失和网络分区
可观察结果 各层绿灯与 test count 可独立复核;没有 0 test 或 skipped 假绿
证据等级 E1、E2、E3;E4 留给第 23 章真实端口实验
本实验未证明 生产容量、跨主机部署、真实外部 fencing、完整安全配置

回顾

下一步

第五篇进入运行责任:第 19 章先建立 diagnostics、metrics 和 trace 观察面,让分布式差异可以被定位。

证据链接