TU Darmstadt / ULB / TUprints

On the Efficient Design and Testing of Dependable Systems Software

Schwahn, Oliver (2019)
On the Efficient Design and Testing of Dependable Systems Software.
Technische Universität Darmstadt
Ph.D. Thesis, Primary publication

[img]
Preview
Text
schwahn_efficient_design_testing_systems_software.pdf
Copyright Information: In Copyright.

Download (1MB) | Preview
Item Type: Ph.D. Thesis
Type of entry: Primary publication
Title: On the Efficient Design and Testing of Dependable Systems Software
Language: English
Referees: Suri, Prof. Neeraj ; Pattabiraman, Prof. Karthik
Date: 2019
Place of Publication: Darmstadt
Date of oral examination: 29 March 2019
Abstract:

Modern computing systems that enable increasingly smart and complex applications permeate our daily lives. We strive for a fully connected and automated world to simplify our lives and increase comfort by offloading tasks to smart devices and systems. We have become dependent on the complex and ever growing ecosystem of software that drives the innovations of our smart technologies. With this dependence on complex software systems arises the question whether these systems are dependable, i.e., whether we can actually trust them to perform their intended functions. As software is developed by human beings, it must be expected to contain faults, and we need strategies and techniques to minimize both their number and the severity of their impact that scale with the increase in software complexity. Common approaches to achieve dependable operation include fault acceptance and fault avoidance strategies. The former gracefully handle faults when they occur during operation, e.g., by isolating and restarting faulty components, whereas the latter try to remove faults before system deployment, e.g., by applying correctness testing and software fault injection (SFI) techniques. On this background, this thesis aims at improving the efficiency of fault isolation for operating system kernel components, which are especially critical for dependable operation, as well as at improving the efficiency of dynamic testing activities to cope with the increasing complexity of software. Using the widely used Linux kernel, we demonstrate that partial fault isolation techniques for kernel software components can be enhanced with dynamic runtime profiles to strike a balance between the expected overheads imposed by the isolation mechanism and the achieved degree of isolation according to user requirements. With the increase in software complexity, comprehensive correctness and robustness assessments using testing and SFI require a substantially increasing number of individual tests whose execution requires a considerable amount of time. We study, considering different levels of the software stack, if modern parallel hardware can be employed to mitigate this increase. In particular, we demonstrate that SFI tests can benefit from parallel execution if such tests are carefully designed and conducted. We furthermore introduce a novel SFI framework to efficiently conduct such experiments. Moreover, we investigate if existing test suites for correctness testing can already benefit from parallel execution and provide an approach that offers a migration path for test suites that have not originally been designed for parallel execution.

Alternative Abstract:
Alternative AbstractLanguage

Moderne Computersysteme, die immer intelligentere und komplexere Anwendungen ermöglichen, durchdringen unseren Alltag. Wir streben eine vollständig vernetzte und automatisierte Welt an, um unser Leben zu vereinfachen und unseren Komfort zu erhöhen, indem Aufgaben auf intelligente Geräte und Systeme verlagert werden. Wir sind von dem komplexen und ständig wachsenden Software-Ökosystem abhängig, das die Innovationen unserer intelligenten Technologien vorantreibt. Mit dieser Abhängigkeit von komplexen Softwaresystemen stellt sich die Frage, ob diese Systeme zuverlässig sind, d.h. ob wir tatsächlich darauf vertrauen können, dass sie ihre beabsichtigten Funktionen ausführen. Da Software von Menschen entwickelt wird, muss davon ausgegangen werden, dass sie Fehler enthält, und wir benötigen Strategien und Techniken, um deren Anzahl und Schweregrad zu verringern, die mit der zunehmenden Komplexität skalieren. Übliche Ansätze, um einen zuverlässigen Betrieb zu erreichen, umfassen Fehlerakzeptanz- und Fehlervermeidungsstrategien. Die Ersteren tolerieren Fehler, wenn sie während des Betriebs auftreten, z.B. durch Isolieren und Neustarten fehlerhafter Komponenten, während die Letzteren versuchen, Fehler vor dem Einsatz des Systems zu entfernen, z.B. durch Anwenden von Korrektheitstest- und Softwarefehlerinjektionstechniken (SFI-Techniken). Vor diesem Hintergrund zielt diese Dissertation darauf ab, die Effizienz der Fehlerisolierung für Betriebssystemkernelkomponenten zu verbessern, die für einen zuverlässigen Betrieb besonders wichtig sind, und die Effizienz dynamischer Testaktivitäten zu verbessern, um der zunehmenden Komplexität von Software Rechnung zu tragen. Wir zeigen, dass Techniken zur partiellen Fehlerisolierung für Kernelsoftwarekomponenten durch dynamische Laufzeitprofile erweitert werden können, um den erwarteten Overhead durch den Isolationsmechanismus und den erreichten Isolierungsgrad gemäß den Benutzeranforderungen zu balancieren. Mit zunehmender Softwarekomplexität erfordern umfassende Korrektheits- und Robustheitsbewertungen mit Korrektheitstests oder Software-Testverfahren und SFI eine wesentlich höhere Anzahl von Einzeltests, deren Durchführung einen erheblichen Zeitaufwand erfordert. Wir untersuchen unter Berücksichtigung verschiedener Ebenen des Software-Stacks, ob moderne parallele Hardware eingesetzt werden kann, um diesen Anstieg abzumildern. Wir zeigen insbesondere, dass SFI-Tests von einer parallelen Ausführung profitieren können, wenn diese Tests sorgfältig entworfen werden. Wir führen außerdem ein neues SFI-Framework ein, um solche Experimente effizient durchzuführen. Darüber hinaus untersuchen wir, ob vorhandene Testsuites für Korrektheitstests bereits von der parallelen Ausführung profitieren können und bieten einen Ansatz, der einen Migrationspfad für Testsuites bietet, die ursprünglich nicht für die parallele Ausführung konzipiert wurden.

German
URN: urn:nbn:de:tuda-tuprints-85772
Classification DDC: 000 Generalities, computers, information > 004 Computer science
Divisions: 20 Department of Computer Science > Dependable Embedded Systems & Software
Date Deposited: 10 May 2019 08:52
Last Modified: 09 Jul 2020 02:33
URI: https://tuprints.ulb.tu-darmstadt.de/id/eprint/8577
PPN: 448621835
Export:
Actions (login required)
View Item View Item