Back to results

Universität Potsdam

Test-driven fault navigation for debugging reproducible failures

Abstract

dc:description.abstract

The correction of software failures tends to be very cost-intensive because their debugging is an often time-consuming development activity. During this activity, developers largely attempt to understand what causes failures: Starting with a test case that reproduces the observable failure they have to follow failure causes on the infection chain back to the root cause (defect). This idealized procedure requires deep knowledge of the system and its behavior because failures and defects can be far apart from each other. Unfortunately, common debugging tools are inadequate for systematically investigating such infection chains in detail. Thus, developers have to rely primarily on their intuition and the localization of failure causes is not time-efficient. To prevent debugging by disorganized trial and error, experienced developers apply the scientific method and its systematic hypothesis-testing. However, even when using the scientific method, the search for failure causes can still be a laborious task. First, lacking expertise about the system makes it hard to understand incorrect behavior and to create reasonable hypotheses. Second, contemporary debugging approaches provide no or only partial support for the scientific method. In this dissertation, we present test-driven fault navigation as a debugging guide for localizing reproducible failures with the scientific method. Based on the analysis of passing and failing test cases, we reveal anomalies and integrate them into a breadth-first search that leads developers to defects. This systematic search consists of four specific navigation techniques that together support the creation, evaluation, and refinement of failure cause hypotheses for the scientific method. First, structure navigation localizes suspicious system parts and restricts the initial search space. Second, team navigation recommends experienced developers for helping with failures. Third, behavior navigation allows developers to follow emphasized infection chains back to root causes. Fourth, state navigation identifies corrupted state and reveals parts of the infection chain automatically. We implement test-driven fault navigation in our Path Tools framework for the Squeak/Smalltalk development environment and limit its computation cost with the help of our incremental dynamic analysis. This lightweight dynamic analysis ensures an immediate debugging experience with our tools by splitting the run-time overhead over multiple test runs depending on developers’ needs. Hence, our test-driven fault navigation in combination with our incremental dynamic analysis answers important questions in a short time: where to start debugging, who understands failure causes best, what happened before failures, and which state properties are infected.

Degree

thesis:*
Level thesis:degree_level
thesis.doctoral
Grantor dc:publisher
Universität Potsdam
Year
2013

Author and committee

dc:creator, dc:contributor.*
Author dc:creator
  • Perscheid, Michael
Contributors dc:contributor
  • Hirschfeld, Robert

Subjects

dc:subject × 10

Rights

dc:rights
Statement dc:rights
  • Creative Commons - Namensnennung, Nicht kommerziell, Weitergabe zu gleichen Bedingungen 3.0 Deutschland

Identifiers

dc:identifier.*
OAI identifier oai:identifier
oai:kobv.de-opus4-uni-potsdam:6585

Chain of custody

source
Harvested from
Universität Potsdam - Diss
Base URL
publishup.uni-potsdam.de/opus4-ubp/oai
Last updated
2026-07-24
Source record
OAI-PMH GetRecord
citation

Perscheid, Michael. Test-driven fault navigation for debugging reproducible failures. thesis.doctoral thesis, Universität Potsdam, 2013. https://publishup.uni-potsdam.de/frontdoor/index/index/docId/6585