Software fault injection and localization in embedded systems

dc.contributor.advisorSpinczyk, Olaf
dc.contributor.authorGabor, Ulrich Thomas
dc.contributor.refereeHowar, Falk
dc.date.accepted2021-06-25
dc.date.accessioned2021-07-07T05:59:25Z
dc.date.available2021-07-07T05:59:25Z
dc.date.issued2021
dc.description.abstractInjection 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++.en
dc.identifier.urihttp://hdl.handle.net/2003/40298
dc.identifier.urihttp://dx.doi.org/10.17877/DE290R-22171
dc.language.isoenen
dc.subjectFault injectionde
dc.subjectFault localizationde
dc.subjectDependabilityde
dc.subjectEmbedded systemsde
dc.subjectInternet of thingsde
dc.subjectFehlertoleranzde
dc.subjectSoftwareentwicklungde
dc.subjectSoftware engineeringde
dc.subjectSoftware testingde
dc.subject.ddc004
dc.subject.rswkZuverlässigkeitde
dc.subject.rswkFehlerortungde
dc.subject.rswkEingebettetes Systemde
dc.subject.rswkInternet der Dingede
dc.subject.rswkFehlertoleranzde
dc.subject.rswkSoftwareentwicklungde
dc.subject.rswkSoftware Engineeringde
dc.subject.rswkSoftwaretestde
dc.titleSoftware fault injection and localization in embedded systemsde
dc.typeTextde
dc.type.publicationtypedoctoralThesisde
dcterms.accessRightsopen access
eldorado.secondarypublicationfalsede

Files

Original bundle
Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
Thesis_Gabor_PDFA.pdf
Size:
1.01 MB
Format:
Adobe Portable Document Format
Description:
DNB
License bundle
Now showing 1 - 1 of 1
No Thumbnail Available
Name:
license.txt
Size:
4.85 KB
Format:
Item-specific license agreed upon to submission
Description: