Oleg Nenashev

WireMock Inc (Switzerland)

Testing APIs of embedded systems with Testcontainers and WireMock

Containers and, specifically, the Testcontainers framework have become one of the most popular tools for software integration testing, including the embedded systems. If you can put your system-under-test into a container, Docker compose cluster or a pod, this is what you’re likely to use. If your target isn’t ready, not containerizable or just too heavy for testing as is, you can always use mock testing frameworks, e.g. WireMock or MockServer in the JVM ecosystem. Can you combine both approaches and use Testcontainers for mocking your systems? Sure! The embedded world is no exception from containers, many new projects leverage them for integration testing, or even run containers or whole Kubernetes clusters “on edge”. In such a case, reproducing target environments is costly, and various kinds of mocking and virtualization come to help. If your system uses standard interfaces like REST, ASN.1 or gRPC, classic software testing tools like testcontainers and WireMock can work well for you. In this talk we will discuss putting using testcontainers and Mock testing for , and applying them for embedded software testing. We will focus on the embedded examples with Rust or C++ as programming languages, and a few standard services like OpenSCADA. Similar approaches can be used in any technology stack for which the testcontainers SDK is available.

Oleg is an open source community builder and open hardware advocate. He is a core maintainer and board member in the Jenkins project where he writes code, mentors contributors and organizes community events. He is a technical oversight committee member in the Continuous Delivery Foundation. Oleg has a PhD degree in electronics design and volunteers in the Free and Open Source Silicon Foundation.