Treffer: Evidence-driven testing and debugging of software systems

Title:
Evidence-driven testing and debugging of software systems
Contributors:
Zeller, Andreas
Publisher Information:
Saarländische Universitäts- und Landesbibliothek
Publication Year:
2021
Collection:
SciDok - Der Wissenschaftsserver der UdS (Universität des Saarlandes)
Subject Terms:
Document Type:
Dissertation doctoral or postdoctoral thesis
Language:
English
Relation:
hdl:20.500.11880/31243
DOI:
10.22028/D291-33858
Rights:
openAccess ; Alle Ressourcen in diesem Repository sind urheberrechtlich geschützt ; http://creativecommons.org/licenses/by-nc-nd/3.0/de/
Accession Number:
edsbas.9608BD0F
Database:
BASE

Weitere Informationen

Program debugging is the process of testing, exposing, reproducing, diagnosing and fixing software bugs. Many techniques have been proposed to aid developers during software testing and debugging. However, researchers have found that developers hardly use or adopt the proposed techniques in software practice. Evidently, this is because there is a gap between proposed methods and the state of software practice. Most methods fail to address the actual needs of software developers. In this dissertation, we pose the following scientific question: How can we bridge the gap between software practice and the state-of-the-art automated testing and debugging techniques? To address this challenge, we put forward the following thesis: Software testing and debugging should be driven by empirical evidence collected from software practice. In particular, we posit that the feedback from software practice should shape and guide (the automation) of testing and debugging activities. In this thesis, we focus on gathering evidence from software practice by conducting several empirical studies on software testing and debugging activities in the real-world. We then build tools and methods that are well-grounded and driven by the empirical evidence obtained from these experiments. Firstly, we conduct an empirical study on the state of debugging in practice using a survey and a human study. In this study, we ask developers about their debugging needs and observe the tools and strategies employed by developers while testing, diagnosing and repairing real bugs. Secondly, we evaluate the effectiveness of the state-of-the-art automated fault localization (AFL) methods on real bugs and programs. Thirdly, we conducted an experiment to evaluate the causes of invalid inputs in software practice. Lastly, we study how to learn input distributions from real-world sample inputs, using probabilistic grammars. To bridge the gap between software practice and the state of the art in software testing and debugging, we proffer the following empirical ...