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