Variant Testing for Embedded Software Libraries

 
 

Percepio is a leading provider of development tools (Tracealyzer) and online services (DevAlert) for embedded and IoT software developers. A core component in our technology is a software library that our customers integrate in their embedded software applications to allow for diagnostic logging and tracing. Testing this library is time consuming due to three types of variability, e.g. configuration options, which often are expressed as static definitions for the C preprocessor. Each unique combination of such definitions may correspond to a separate variant that needs testing. This requires recompiling the code, downloading the binary to the device, running a test program, uploading and analyzing the results, which may take several minutes per case. This challenge is representative for many providers of embedded software components and libraries, such as real-time operating systems, communication protocols, file systems, and other middleware components.

Percepio contributes to XIVT by exploring and evaluating suitable methods and tools for test case prioritization and test automation within this context. We expect the project results to speed up software testing and allow a higher pace of innovation, with equal or better software quality. Moreover, since our testing challenges are representative for many types of embedded software, the results may benefit the whole embedded software industry and indirectly all developers of embedded software applications that rely on reusable third-party components and libraries.