Permanently increasing software complexity of today's electronic control units (ECUs) makes testing a central and significant task within embedded software development. While new software functions are still being developed or optimized, other functions already undergo certain tests, mostly on module level but also on system and integration level.
Testing must be done as early as possible within the automotive development process. Typically ECU software developers test new function modules by stimulating the code with test data and capturing the modules' output behavior to compare it with reference data.
This paper presents a new and systematic way of testing embedded software for automotive electronics, called MTest. MTest combines the classical module test with model-based development. The central element of MTest is the classification-tree method, which has originally been developed by the DaimlerChrysler research department. The classification-tree method exists for several years now and is mostly used for C-code testing. Now, it has been adopted to the needs of a model-based development process for embedded systems.
MTest opens a new way of assuring quality for embedded software, that is especially designated for automotive software developers.
This paper demonstrates, how MTest is used to test automotive software from model-in-the-loop over software in-the-loop down to processor-in-the-loop testing. Additionally, test scenarios once developed using MTest can be reused in a hardware-in-the-loop environment. Thus, MTest provides a means to automatically test automotive software within the whole development process.