DK Studio/Documentation
ProductChangelog

Standards and Conformance

Which protocol specifications DK Studio is aimed at, what a conformance pack is, what it contains, how it runs against a bench, and how the coverage of a standard family is reported.

The protocol families we target

FamilyScopeWhere it shows up
CCCThe ε…¨ηƒθ½¦θ”θ”η›Ÿ digital key specification.OEM and Tier-1 digital key programmes.
ICCEThe δΈ­ε›½ζ™Ίζ…§θ½¦θ”δΊ§δΈšεˆ›ζ–°θ”η›Ÿ vehicle-side key and access protocols.Vehicle-side implementations and readers.
ICCOAThe ζ™Ίζ…§θ½¦θ”εΌ€ζ”Ύθ”η›Ÿ specifications, covering digital key and T-Box connectivity.China-market programmes.
COTDK Studio's own proprietary digital key protocol, shipped with a driver of its own.Interoperability and conformance work.

A family is the unit that a conformance pack is written against. For a public standard the platform does not implement the family's stack itself: the frames are spoken by the key reader, the ECU or the bench script, and the platform carries the commands, the observations and the results. COT is DK Studio's own protocol, and its driver ships with the platform.

What a conformance pack is

A conformance pack is a structured set of test cases, each one traced back to a requirement of a specification. It is the meeting point between a standard and the test-case model: the requirement says what the specification demands, the test case says what behaviour is asserted, the procedure says how it is exercised, and the expectation says what counts as a pass.

LayerThe question it answersWhat it holds
RequirementWhich clause of the specification does this cover?The requirement id, the specification version, and the clause reference.
Test caseWhat behaviour is being asserted?The title, the preconditions, the capability and variant it applies to.
ProcedureHow is it exercised?The steps: the commands to run on the bench, the frames to send, the readings to take.
ExpectationWhat counts as a pass?The observable outcome, the tolerance where one applies, and the evidence to keep.

What a pack contains

  1. A requirement table β€” one table per specification, one row per requirement, with the clause reference and the specification version it came from.
  2. Cases traced to requirements β€” every test case names the requirement it covers, so coverage is a query rather than an argument.
  3. Procedures expressed as bench commands β€” the steps use the platform's command vocabulary, so a pack runs on any bench that has an agent.
  4. Expectations and evidence β€” each case states what counts as a pass and what evidence to keep (log excerpts, captured frames, files pulled from the bench).
  5. Parameters β€” the project data the procedure binds to: the IMSI, the port, the timeouts.
  6. A run and report definition β€” a pack run produces a per-case result and a report, in the same run and report model as everything else.

Running a pack against a bench

A pack runs through the same command channel as every other test in the platform.

  1. Select the suite and the target. The suite is the pack; the target names the protocol family, the device type, the OEM and the project.
  2. Resolve the case to a procedure. Each test case in the pack resolves to the variant that matches the target, and the variant owns the procedure.
  3. Bind the parameters. The project's data is substituted into the procedure's placeholders, and the rendered steps are hashed so a later edit to the script is visible in the history.
  4. Hand the steps to the driver. The driver is the execution backend: the agent driver runs the procedure over the command channel β€” shell, open_serial, serial_write β€” against the device under test; a local driver runs the same procedure on a workstation. The driver is the only layer that knows about a specific lab.
  5. Evaluate the expectations. Each step produces an observation, the extractor reads the value out of it and the matcher decides pass or fail. The case passes when all of its expectations hold.
  6. Record the run. The run, its executions and their durations are stored, the evidence is attached as an artifact, and the report is produced from the same model as any other run.

A case whose variant does not match the target is skipped with a reason, not failed. A missing mandatory parameter is a configuration error, because it is a problem with the run rather than with the device under test.

Reporting coverage of a standard family

Coverage is reported per family, from the requirement table outwards. Because every case names its requirement, the report is a query over the pack rather than a count kept by hand.

ReportedHow it is derived
Requirements in the familyThe rows of the family's requirement table.
Requirements coveredThe requirements named by at least one test case in the pack.
Requirements executedThe requirements whose cases were executed in the run, with their pass/fail outcome.
Uncovered requirementsThe requirements with no case, or with a case that was not executed.
Cases without a requirementThe cases in the pack that name no requirement. These are reported so that the trace stays complete in both directions.

The numbers are reported for the whole family and for each case within it, so a gap is always attributable to a named requirement. See The Test Case Model for the layers the report is built on, and Results and Reports for how a run is turned into a report.

See also