Auflistung nach Autor:in "Soremekun, Ezekiel"
1 - 4 von 4
Treffer pro Seite
Sortieroptionen
- ZeitschriftenartikelEvidence-driven Testing and Debugging of Software Systems(Softwaretechnik-Trends Band 42, Heft 2, 2022) Soremekun, EzekielThis article is a summary of the dissertation titled “Evidence-driven Testing and Debugging of Software Systems” submitted in April, 2021 for the degree Doctor of Engineering (Dr.-Ing.) in Soft ware Engineering at the Faculty of Mathematics and Computer Science, Saarland University, Germany. This dissertation proposes an evidence-driven approach to address several challenges in software testing and debugging. This work provides several empirical data and methods to guide researchers to build and evaluate testing and debugging aids. We have proposed a hybrid approach that synergistically combines the strengths of dynamic slicing and statistical debugging.
- ConferencePaperIsolating Faults in Failure-Inducing Inputs(Software Engineering 2021, 2021) Kirschner, Lukas; Soremekun, Ezekiel; Zeller, AndreasProgram failures are often caused by faulty inputs (e.g. due to data corruption). When an input induces failure, one needs to debug the input data, i.e. isolate faults to obtain valid input data. Typically, debuggers focus on diagnosing faults in the program, rather than the input. This talk instead presents an approach that automatically repairs faults in the input data, without requiring program analysis. In addition, we present empirical data on the causes and prevalence of invalid inputs in practice, we found that four percent of inputs in the wild are invalid. We present a general-purpose algorithm called ddmax that automatically isolates faults in invalid inputs and recovers the maximal valid input data. The aim of ddmax is to (1) identify which parts of the input data prevent processing by the program, and (2) recover as much of the (valuable) input data as possible. Given a program and an invalid input, through experiments, ddmax recovers and repairs as much data as possible. The difference between the original failing input and the “maximized” passing input includes all input fragments that could not be processed, i.e. the fault. This approach is useful for automatically debugging and repairing invalid inputs.
- ConferencePaperLearning Circumstances of Software Failures(Software Engineering 2021, 2021) Gopinath, Rahul; Havrikov, Nikolas; Kampmann, Alexander; Soremekun, Ezekiel; Zeller, AndreasA program fails. Under which circumstances does the failure occur? Starting with a single failure-inducing input ("The input ((4)) fails") and an input grammar, this talk presents two techniques that use systematic tests to automatically determine the circumstances under which the failure occurs. The DDSET algorithm [Go20] generalizes the input to an _abstract failure-inducing input_ that contains both (concrete) terminal symbols and (abstract) nonterminal symbols from the grammar - for instance, “(())”, which represents any expression in double parentheses. The ALHAZEN technique [Ka20] takes this even further, using decision trees to learn input properties such as length or numerical values associated with failures: "The error occurs as soon as there are two parentheses or more." Such abstractions can be used as debugging diagnostics, characterizing the circumstances under which a failure occurs; and as producers of additional failure-inducing tests to help design and validate fixes and repair candidates. Both have the potential to significantly boost speed and quality of software debugging.
- ConferencePaperProbabilistic Grammar-based Test Generation(Software Engineering 2021, 2021) Soremekun, Ezekiel; Pavese, Esteban; Havrikov, Nikolas; Grunske, Lars; Zeller, AndreasGiven a program that has been tested on some sample input(s), what does one test next? To further test the program, one needs to construct inputs that cover (new) input features, in a manner that is different from the initial samples. This talk presents an approach that learns from past test inputs to generate new but different inputs. To achieve this, we present an approach called inputs from hell which employs probabilistic context-free grammars to learn the distribution of input elements from sample inputs. In this work, we employ probabilistic grammars as input parsers and producers. Applying probabilistic grammars as input parsers, we learn the statistical distribution of input features in sample inputs. As a producer, probabilistic grammars ensure that generated inputs are syntactically correct by construction, and it controls the distribution of input elements by assigning probabilities to individual production rules. Thus, we create inputs that are dissimilar to the sample by inverting learned probabilities. In addition, we generate failure-inducing inputs by learning from inputs that caused failures in the past, this gives us inputs that share similar features and thus also have a high chance of triggering bugs. This approach is useful for bug reproduction and testing for patch completeness.