同一个 case hash,永远同一个测试结果。

Same case hash. Same test result. Every time.

确定性 XiL 场景测试内核

The deterministic XiL scenario testing kernel

Cyclone 把 ADAS / 机器人回归测试收进一条流水线:数据回放 → 故障注入 → 统计判定 → 证据链。PASS 不再是"跑过一次没红",而是可复现、可审计的机器证明。

Cyclone turns ADAS / robotics regression testing into one pipeline: replay → fault injection → statistical verdict → evidence chain. A PASS is no longer "it went green once" — it is reproducible, auditable machine proof.

$ python -m cyclone run cases/aeb_cipv_50kph.yaml --out out/ verdict: PASS $ shasum -a 256 out/AEB_CIPV_50kph_log.jsonl 2e075b42f19031aa… $ python -m cyclone run cases/aeb_cipv_50kph.yaml --out out2/ # 再跑一次 / run it again $ shasum -a 256 out2/AEB_CIPV_50kph_log.jsonl 2e075b42f19031aa… # 同 seed → 逐字节一致 / same seed → bitwise identical

回归测试的三个老问题Three old problems of regression testing

四根支柱Four pillars

确定性回放Deterministic Replay

虚拟时间回放 + 内容寻址:同 seed 的证据日志逐字节一致。

Virtual-time replay with content addressing: identical seeds produce bitwise-identical evidence logs.

统计判定Statistical Verdicts

Wilson 置信区间 + SPRT 序贯检验——用统计显著性替代人肉阈值。

Wilson score intervals + SPRT sequential testing — statistical significance instead of hand-tuned thresholds.

证据链Evidence Chain

case hash + digest + manifest.json:每条 CI 记录可回溯到用例版本与原始数据。

Case hash + SHA-256 digest + manifest.json: every CI record traces back to the case version and raw data.

CI 原生CI-Native

JUnit XML 开箱即用;rules_cyclone 让场景测试成为 bazel test 一等公民;BES 就绪。

JUnit XML out of the box; rules_cyclone makes scenario tests first-class bazel test citizens; BES-ready.

一条流水线One pipeline

用例 YAMLCase YAML 数据源回放Dataset replay 故障注入Fault injection SUT 统计判定Verdicts 证据报告Evidence report

261 项自动化测试全绿 · JUnit/Jenkins 就绪 · UDS 诊断演示 · Bazel 规则包 rules_cyclone

261 automated tests green · JUnit/Jenkins ready · UDS diagnostics demo · Bazel ruleset rules_cyclone

划清边界Clear boundaries

Cyclone 不是What Cyclone is not Cyclone 是What Cyclone is
仿真器——CarMaker / Carla 负责"世界有多真" A simulator — CarMaker / Carla own "how real the world is" 测试内核——负责"测试信不信得过" A testing kernel — it owns "how trustworthy the result is"
测试管理平台——管人和流程 Test management — people and process 执行引擎——管机器和证据 An execution engine — machines and evidence

演进路线Roadmap

M0→M3 十二周:Walking Skeleton → 实时内核 → 数据闭环 → CI 验收——每周可交付,三周一决策。

M0→M3 in twelve weeks: walking skeleton → real-time kernel → data loop → CI acceptance. Weekly deliverables, a decision gate every three weeks.

Cyclone Core MVP 演进路线图 M0→M3 / Roadmap M0–M3

接入路径Two ways in

Bazel 用户For Bazel users

# MODULE.bazel bazel_dep(name = "rules_cyclone", version = "0.1.0") # BUILD.bazel cyclone_test( name = "aeb_regression", scenario = "scenarios/aeb.yaml", ) $ bazel test //... # 与单元测试同图、同缓存、同看板

其他 CIAny other CI

# 单文件二进制,下载即跑 / single-file binary $ cyclone run cases/aeb.yaml --out out/ # JUnit XML → Jenkins / GitLab CI 直接消费 out/aeb_report.xml out/aeb_manifest.json # 证据索引 / evidence index

资料下载Downloads

POC 合作方案(含商务条款)不公开下载,请通过下方联系方式获取。

The POC proposal (incl. commercial terms) is not publicly downloadable — please request it via the contact below.

拿你自己的场景跑一次Run it on your own scenario

30 分钟演示:AEB 回归 → 注入故障 → 打开证据报告。

A 30-minute demo: AEB regression → inject a fault → open the evidence report.

GitHub 仓库GitHub Repo 约演示Book a demo