Authors: Gabor, Ulrich Thomas
Title: Software fault injection and localization in embedded systems
Language (ISO): en
Abstract: Injection and localization of software faults have been extensively researched, but the results are not directly transferable to embedded systems. The domain-specific constraints applying to these systems, such as limited resources and the predominant C/C++ programming languages, require a specific set of injection and localization techniques. In this thesis, we have assessed existing approaches and have contributed a set of novel methods for software fault injection and localization in embedded systems. We have developed a method based on AspectC++ for the injection of errors at interfaces and a method based on Clang for the accurate injection of software faults directly into source code. Both approaches work particularly well in the context of embedded systems, because they do not require runtime support and modify binaries only when necessary. Nevertheless, they are suitable to inject software faults and errors into the software of other domains. These contributions required a thorough assessment of fault injection techniques and fault models presented in literature over the years, which raised multiple questions regarding their validity in the context of C/C++. We found that macros (particularly header files), compile-time language constructs, and the commonly used optimization levels introduce a non-negligible bias to experimental results achieved by injection methods operating on any other layer than the source code. Additionally, we found that the textual specification of fault models is prone to ambiguities and misunderstandings. We have conceived an automatic fault classifier to solve this problem in a field study. Regarding software fault localization, we have combined existing methods making use of program spectra and assertions, and have contributed a new oracle type for autonomous localization of software faults in the field. Our evaluation shows that this approach works particularly well in the context of embedded systems because the generated information can be processed in real-time and, therefore, it can run in an unsupervised manner. Concluding, we assessed a variety of injection and localization approaches in the context of embedded systems and contributed novel methods where applicable improving the current state-of-the-art. Our results also point out weaknesses regarding the general validity of the majority of previous injection experiments in C/C++.
Subject Headings: Fault injection
Fault localization
Dependability
Embedded systems
Internet of things
Fehlertoleranz
Softwareentwicklung
Software engineering
Software testing
Subject Headings (RSWK): Zuverlässigkeit
Fehlerortung
Eingebettetes System
Internet der Dinge
Fehlertoleranz
Softwareentwicklung
Software Engineering
Softwaretest
URI: http://hdl.handle.net/2003/40298
http://dx.doi.org/10.17877/DE290R-22171
Issue Date: 2021
Appears in Collections:Eingebettete Systemsoftware

Files in This Item:
File Description SizeFormat 
Thesis_Gabor_PDFA.pdfDNB1.04 MBAdobe PDFView/Open


This item is protected by original copyright



Items in Eldorado are protected by copyright, with all rights reserved, unless otherwise indicated.