How to Test an APIC System for QA Engineers

Build automated test flows with CSV tables - no C++ required.

This guide is for QA engineers verifying an APIC system's behavior. You do not write C++: you define test flows declaratively in a Tests CSV file - a table of injections and expected results. The injection and the results check is done directly in the runtime loop, so it is high performance accurate tests.

1. Your Job

A test flow is a sequence of steps against the system's ICD elements (the same LRU.Block.Element paths defined by DBSimGenerator): inject a value into one element, then check that another element reaches an expected result within a timeout. You build this entirely in a CSV table - see the full column reference in the Tests CSV specification.

2. Anatomy of a Test Flow

Each row is one step, with these columns:

ColumnWhat you put in it
Test NameA unique identifier for the flow. Leave it empty on every row after the first to chain that row into the same flow - see section 3.
ElementThe LRU.Block.Element ICD path you're injecting into or monitoring, e.g. LRU_FC.Control.State.
Injection Raw / Injection EngThe raw or engineering-unit value to drive into the element. Leave both blank on a row that only checks a result.
ResultThe expected value or range (e.g. 2:8) to compare against.
Compare OperatorHow to compare: ==, <, >, <=, >=, !=.
TimeoutMilliseconds to wait before failing. Leave empty to wait indefinitely - use that deliberately, since a runaway test won't fail on its own.

3. Chaining Steps into a Flow

A real flow is usually more than one row: inject a value, then check its effect, optionally chained into further injections and checks. Leave Test Name empty on every row after the first to continue the same flow:

Test Name,Element,Injection Raw,Injection Eng,Result,Compare Operator,Timeout
Test1,LRU_FC.Control.State,,4,,
,LRU_FC.Control.Control,,,5,<=
Test2 in range,LRU_FC.Control.State,,2,,
,LRU_FC.Control.Control,,,2:8,,

Test1 injects 4 into State, then checks that Control is <= 5. Test2 in range injects 2 into State, then checks that Control falls within 2:8.

4. Where This Fits

Two levels of test flow, both written in this same CSV format:

See also: How to Build an APIC System for Software Engineers, sections "Define Unit Tests for Each Model" and "Define ATP Tests for the Whole System", for where these fit into the overall workflow.

5. Full CSV Reference

For the complete column specification, supported compare operators, and timeout semantics, see the Tests CSV reference and How to Write and Run Automated Tests.