Manual integration test strategy
March 11, 2026 ยท View on GitHub
Ensure that all unit test have failed before proceeding to integration testing (YES, they have to fail, since their purpose is to reveal bugs, but they don't).
- This is an incremental, bottom-up strategy.
- Just the subsystems being integrated are listed. In bold text we highlight the subsystems being added to the previous tests.
- Since there are automated integration tests in the CD/CI chain, this integration strategy is not a step-by-step incremental one.
Run order:
flowchart LR
DigitalInputsTest --> InputHubTest
DigitalInputsTest --> GenericCodedSwitchTest
PixelControlTest --> Proto2
InputHubTest --> Proto1
GenericCodedSwitchTest --> Proto1
Proto1 --> Proto2
TelemetryIntegrationTest --> Proto2
Render this graph at mermaid.live
Test name: TelemetryIntegrationTest
- hid (NimBLE)
- telemetry
- ui:
- SimpleShiftLight
- PCF8574RevLights
- OledTelemetry128x64
Test name: DigitalInputsTest
- DigitalInput:
- RotaryEncoderInput
- ButtonMatrixInput
- DigitalButton
- inputs
Test name: PixelControlTest
- hid (NimBLE)
- pixels
- ui:
- PixelControlNotification
Test name: InputHubTest
- DigitalInput
- AnalogInput
- inputs
- inputMap
- inputHub
Test name: GenericCodedSwitchTest
- inputs
- inputHub (only binary coded switches)
Test name: Proto1
- DigitalInput:
- RotaryEncoderInput
- ButtonMatrixInput
- DigitalButton
- AnalogInput:
- AnalogClutchInput
- inputs
- inputHub
- storage
- firmware
- hid (NimBLE)
Note
This is a working prototype
Test name: Proto2
- DigitalPolledInput:
- RotaryEncoderInput
- ButtonMatrixInput
- DigitalButton
- inputs
- storage
- inputHub
- inputMap
- hid (NimBLE)
- firmware
- power
- batteryMonitor
- batteryCalibration
- telemetry
- ui
- pixels
Note
This is a system test