返回博客
工程4 分钟阅读

从 OCA 的 OCTT 走到自动化测试

OCA 的官方一致性工具是认证的黄金标准——但它不是为开发流程设计的。本文讲怎么把日常测试和正式认证之间那段空档接起来。

I
Infinite Service Team

两件不同的活

开放充电联盟(OCA)的 OCPP 一致性测试工具服务的是一个明确目的:在产品上市之前,证明它符合 OCPP 规范。它详尽、官方,而且产出的一致性结论对采购团队是有分量的。

它不是为开发流程设计的。这不是批评——只是不同的活需要不同的工具。

把这个差别想清楚,能省掉很多挫败感。

OCTT 擅长什么

OCTT 会对你的实现跑一套全面、标准化的测试集,以结构化的方式覆盖规范中必需和可选的功能。通过之后,你手上有一份成文的一致性证据,在大型客户和电力公司那里是有说服力的。

这个流程本身也是个有用的约束。必须正式认证,就意味着你不能带着「差不多能用」的协议一致性出货。门槛是明确划好的。

OCTT 为什么套不进开发

认证流程是围绕里程碑模型设计的:你做出东西,测这个东西,认证这个东西。开发是迭代的。你在每一次有意义的改动之后都要测,而不是最后测一次。

OCTT 还需要协调——约测试时段、拿到工具的使用权、提交结果。对一个认证里程碑来说,这些开销是可以接受的;作为每天的开发回路,它无法承受。

中间的那段空档

开发者真正需要的,是这样一个东西:

  1. 立刻就能跑,不需要排期
  2. 针对具体的消息往返给出快速反馈
  3. 能在 CI 环境里工作
  4. 细节足够多,能迅速定位失败原因

这就是 TestPilot 要补的那段空档。它不取代 OCTT——如果你需要 OCA 认证,那条路还是得走。但在你准备好做正式认证之前,那 95% 的测试它都能接下来。

一条典型的流程

实践中,流程大致是这样:

  1. 开发阶段:在本地环境里跑 TestPilot。每实现一个消息流就测一个。放进 CI 里防回归。
  1. 认证前:拿完整的实现跑一遍 TestPilot,作为起飞前检查。把失败的都修掉。
  1. 认证:提交给 OCA 的 OCTT。到这一步,核心流程能过,你应该早就知道了。
  1. 认证之后:继续用 TestPilot 开发下一个版本。认证是一张快照,开发是持续的。

关于 OCTT 对接的几点实务

如果你在准备 OCTT 认证,有几件事值得先知道:

测试集是按功能档(Core、Remote Trigger、Smart Charging 等)组织的。在启动流程之前,先弄清楚你要声明哪几个功能档的一致性。

OCTT 会测一些你平常跑不到的边界情况——错误响应、意料之外的状态迁移、缺失的可选字段。开发阶段就尽量把这些场景都对着实现跑一遍。

留好你的测试日志。正式认证里出问题时,手上有开发测试留下的详细日志,根因分析会快得多。

相关文章