Architecture Overview

The Factory includes a generic API and data model to allow customers the freedom to test how they choose. In most cases, you’ll be able to use fiotest as-is for your testing needs.

All things in the Factory revolve around Targets and the testing mechanism is no different. Devices run Targets. The results of any tests they run are correlated with its Target. This allows you to get a test reporting of Targets in your Factory.

The fiotest container can be set up in your Factory as a Docker Compose application. The fiotest container has the ability to interact with the host OS and configure aktualizr-lite to notify it when a new Target has been installed. fiotest is then able to run tests and report the results back through the device gateway.

fiotest includes a test specification that allows you to define how and what to test. The container can also be extended/customized for your specific needs.

Workflow

The way testing typically flows:

  • Customer pushes code (git push)
  • CI builds a new Target
  • aktualizr-lite will see this new Target and:
    • Installs Target
    • Notifies fiotest once the Target becomes active
      • Tests are run and results are reported via the device gateway for the Target.
Testing architecture diagram