Master Thesis MSTR-2016-37

BibliographyRudolph, Tobias: Improving Automatic Software Repair with Probabilistic Symbolic Execution.
University of Stuttgart, Faculty of Computer Science, Electrical Engineering, and Information Technology, Master Thesis (2016).
69 pages, english.
CR-SchemaD.2.5 (Software Engineering Testing and Debugging)
D.2.8 (Software Engineering Metrics)

Automatic software repair techniques aim at repairing error-prone code automatically. In particular, test-based automatic software repair approaches use test cases to locate a bug and evaluate the automatically created repair code. However, this evaluation is only based on the successful or failing execution of the test cases but ignore the behavior of the software under the majority of of usage scenarios, which are not covered by the given test cases. Despite a variety of test-based program repair approaches have appeared in literature, the problem of a repair code altering the behavior of the program for uncovered scenarios has not addressed. This thesis introduces a new metric to quantify the discrepancy in the set of possible execution paths introduced by different repair candidates, and computes it from the source code of the program using probabilistic symbolic execution. This allows for an exhaustive analysis that takes into account also the behaviors not covered by the available test cases. The approach has been implemented extending Nopol, an opensource tool for test-based automatic software repair. The new approach has been evaluate on a set of Java benchmarks, demonstrating an improved quality of the computed program repairs, which do not only pass the tests but also limit as much as possible the alteration of the uncovered program behaviors.

Full text and
other links
PDF (723561 Bytes)
Department(s)University of Stuttgart, Institute of Software Technology, Software Reliability and Security
Superviser(s)Filieri, Dr. Antonio
Entry dateAugust 1, 2018
   Publ. Computer Science