Bitte benutzen Sie diese Kennung, um auf die Ressource zu verweisen: http://dx.doi.org/10.18419/opus-9357
Autor(en): Rudolph, Tobias
Titel: Improving automatic software repair with probabilistic symbolic execution
Erscheinungsdatum: 2016
Dokumentart: Abschlussarbeit (Master)
Seiten: xiii, 52
URI: http://nbn-resolving.de/urn:nbn:de:bsz:93-opus-ds-93740
http://elib.uni-stuttgart.de/handle/11682/9374
http://dx.doi.org/10.18419/opus-9357
Zusammenfassung: 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.
Die automatische Softwarereparatur ist eine Technik, die entwickelt wurde, um das Finden und Beheben von Softwarefehlern zu automatisieren. Oft werden bei solchen Techniken Tests verwendet um Softwarefehler automatisch zu lokalisieren und eine generierte Reparatur zu evaluieren. Allerdings haben solche Verfahren nur Kenntnis darüber, wie sich eine Software unter genau diesen Testfällen verhält. Darauf, wie sich die Software unter den nicht durch Testfällen abgedeckten Anwendungsfällen verhält, wurde in keinem der bisher veröffentlichen Verfahren eingegangen. In dieser Masterarbeit wird eine neue Metrik eingeführt, mit der die Diskrepanz hinsichtlich der gesamten möglichen Programmpfade von verschieden Softwarereparatur-Ergebnissen bestimmt werden kann. Diese Metrik ermöglicht eine Analyse, die über die Informationen hinausgeht, die aus den Testfällen generiert werden, und auch das Verhalten der Szenarien, die nicht Bestandteil der Testfällen sind, beachtet. Die Open Source Reparatursoftware Nopol wurde in dieser Thesis für die neu eingeführten Metrik angepasst. Während der Evaluation der Erweiterung wurde gezeigt, dass die Qualität der generierten Reparaturen verbessert wurde, indem die generierten Reparaturen nicht nur die Testfälle erfüllen, sondern auch die Beeinflussung der nicht in den Testfällen enthalten Szenarien möglichst gering gehalten wird.
Enthalten in den Sammlungen:05 Fakultät Informatik, Elektrotechnik und Informationstechnik

Dateien zu dieser Ressource:
Datei Beschreibung GrößeFormat 
MasterThesisTobiasRudolph.pdf706,6 kBAdobe PDFÖffnen/Anzeigen


Alle Ressourcen in diesem Repositorium sind urheberrechtlich geschützt.