Model-Based Testing of Embedded Systems Exemplified for the Automotive Domain

Model-Based Testing of Embedded Systems Exemplified for the Automotive Domain

Justyna Zander, Ina Schieferdecker
DOI: 10.4018/978-1-60566-750-8.ch015
(Individual Chapters)
No Current Special Offers


The purpose of this chapter is to introduce the test methods applied for embedded systems addressing selected problems in the automotive domain. Model-based test approaches are reviewed and categorized. Weak points are identified and a novel test method is proposed. It is called model-in-the-loop for embedded system test (MiLEST) and is realized in MATLAB®/Simulink®/Stateflow® environment. Its main contribution refers to functional black-box testing based on the system and test models. It is contrasted with the test methods currently applied in the industry that form dedicated solutions, usually specialized in a concrete testing context. The developed signal-feature-oriented paradigm developed herewith allows the abstract description of signals and their properties. It addresses the problem of missing reference signal flows and allows for a systematic and automatic test data selection. Processing of both discrete and continuous signals is possible, so that the hybrid behavior of embedded systems can be handled.
Chapter Preview


Embedded System Context

An embedded system (Broy et al., 1998, Lazić & Velašević, 2004) is a system built for dedicated control functions. Embedded software (Lazić & Velašević, 2004; Conrad, 2004) is the software running on an embedded system. Embedded systems have become increasingly sophisticated and their software content has grown rapidly for the last years. Applications now consist of hundreds of thousands or even more lines of code. The requirements that must be fulfilled while developing embedded software are complex in comparison to the standard software. Embedded systems are often produced in large volumes and the software is difficult to be updated once the product is deployed. Embedded systems interact with real-life environment. Hybrid aspects are often expressed via mathematical formulas. In terms of software development, increased complexity of products, shortened development cycles and higher customer expectations of quality implicate the extreme importance and automation need for software testing. Software development activities in every phase are error prone, so the process of defects detection plays a crucial role. The cost of finding and fixing defects grows exponentially in the development cycle. The software testing problem is complex because of the large number of possible scenarios. The typical testing process is a human-intensive activity and, as such, it is usually unproductive and often inadequately done. Nowadays, testing is one of the weakest points of current development practices. According to the study given by Encontre (2003) 50% of embedded systems development projects are months behind schedule and only 44% of designs meet 20% of functionality and performance expectations. This happens despite the fact that approximately 50% of total development effort is spent on testing (Helmerich et al., 2005). The impact of research into test methodologies that reduce this effort is therefore very high and strongly desirable (Helmerich et al., 2005; Bouyssounouse & Sifakis, 2005).

Although a number of valuable efforts in the context of testing already exist, there is still a lot of space to improve the situation. This applies in particular, to the automation potential of the test methods. Also, a systematic, appropriately structured, repeatable and consistent test specification is still an aim to be reached. Furthermore, both abstract and concrete views should be supported so as to improve the readability, on the one hand and assure the executability of the resulting test, on the other hand. The testing method should address all aspects of a tested system – whether a mix of discrete and continuous signals, time constrained functionality or a complex configuration is considered. In order to establish a controlled and stable testing process with respect to time, budget and software quality, the software testing process must be modeled, measured and analyzed. Moreover, the existence of executable system models opens the potentials for model-based testing (MBT).

Complete Chapter List

Search this Book: