On the Efficient Design and Testing of Dependable Systems Software

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...

Full description

Bibliographic Details
Main Author: Schwahn, Oliver
Format: Others
Language:en
Published: 2019
Online Access:https://tuprints.ulb.tu-darmstadt.de/8577/1/schwahn_efficient_design_testing_systems_software.pdf
Schwahn, Oliver <http://tuprints.ulb.tu-darmstadt.de/view/person/Schwahn=3AOliver=3A=3A.html> (2019): On the Efficient Design and Testing of Dependable Systems Software.Darmstadt, Technische Universität, [Ph.D. Thesis]
id ndltd-tu-darmstadt.de-oai-tuprints.ulb.tu-darmstadt.de-8577
record_format oai_dc
spelling ndltd-tu-darmstadt.de-oai-tuprints.ulb.tu-darmstadt.de-85772020-07-15T07:09:31Z http://tuprints.ulb.tu-darmstadt.de/8577/ On the Efficient Design and Testing of Dependable Systems Software Schwahn, Oliver 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. 2019 Ph.D. Thesis NonPeerReviewed text only the rights of use according to UrhG https://tuprints.ulb.tu-darmstadt.de/8577/1/schwahn_efficient_design_testing_systems_software.pdf Schwahn, Oliver <http://tuprints.ulb.tu-darmstadt.de/view/person/Schwahn=3AOliver=3A=3A.html> (2019): On the Efficient Design and Testing of Dependable Systems Software.Darmstadt, Technische Universität, [Ph.D. Thesis] en info:eu-repo/semantics/doctoralThesis info:eu-repo/semantics/openAccess
collection NDLTD
language en
format Others
sources NDLTD
description 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.
author Schwahn, Oliver
spellingShingle Schwahn, Oliver
On the Efficient Design and Testing of Dependable Systems Software
author_facet Schwahn, Oliver
author_sort Schwahn, Oliver
title On the Efficient Design and Testing of Dependable Systems Software
title_short On the Efficient Design and Testing of Dependable Systems Software
title_full On the Efficient Design and Testing of Dependable Systems Software
title_fullStr On the Efficient Design and Testing of Dependable Systems Software
title_full_unstemmed On the Efficient Design and Testing of Dependable Systems Software
title_sort on the efficient design and testing of dependable systems software
publishDate 2019
url https://tuprints.ulb.tu-darmstadt.de/8577/1/schwahn_efficient_design_testing_systems_software.pdf
Schwahn, Oliver <http://tuprints.ulb.tu-darmstadt.de/view/person/Schwahn=3AOliver=3A=3A.html> (2019): On the Efficient Design and Testing of Dependable Systems Software.Darmstadt, Technische Universität, [Ph.D. Thesis]
work_keys_str_mv AT schwahnoliver ontheefficientdesignandtestingofdependablesystemssoftware
_version_ 1719327691779342336