Fehlerlokalisierung und Fehlereingrenzung in Java-basierten Programmen für Client-Server-Architekturen

URL
Dokumentart: Diplomarbeit, Magisterarbeit, Master Thesis
Institut: Department Informatik
Sprache: Deutsch
Erstellungsjahr: 2012
Publikationsdatum:
SWD-Schlagwörter: Fehlerortung
DDC-Sachgruppe: Informatik

Kurzfassung auf Deutsch:

Fehler in komplexen Softwaresystemen zu Identifizieren ist eine aufwändige Aufgabe. Der Prozess des Debuggings teilt sich in das Finden und das Beheben des Fehlers auf. Das Beheben eines bereits entdeckten Fehlers ist nicht so aufwändig wie das Finden des Fehlers. Der Zustand eines Softwaresystems besteht aus einer Vielzahl von Variablen, welche sich zu jedem Zeitpunkt ändern können. Mit dieser Arbeit wird die Machbarkeit einer automatisierten Fehlerlokalisierung in Java-Programmen erforscht. Dazu werden vorerst die für die Lokalisierung von Fehlern in Java-Programmen relevanten Fehlerwirkungen identifiziert. Anschließend werden die in Client-Server- Architekturen möglichen Propagierungen der Fehler erarbeitet. Auf Basis der Fehlerwirkungen und der möglichen Propagierungen werden dann die für die angestrebte Fehlerlokalisierung denkbaren Softwarefehler identifiziert. Das Konzept beruht auf der Instrumentierung der Ausführung von erfolgreichen und fehlschlagenden Testfällen, um mit Hilfe von dynamischen Slices die Ausführungspfade zu extrahieren. Die Ausführungspfade werden wiederum mit ausgewählten Mengenoperationen zu einem resultierenden Slice vereinigt. Der resultierende Slice wird dem Softwareentwickler präsentiert. Die Präsentation des vereinigten Slices soll dazu führen, dass der Softwareentwickler nur eine reduzierte Menge von Anweisungen untersuchen muss, um den jeweiligen Fehler zu erkennen.

Kurzfassung auf Englisch:

The identification of failures in complex software system is an elaborate task. The process of debugging consists of finding and solving a failure. Solving the failure is not as elaborate as finding it. The status of a software system depends on a great variety of variables, which can change at any time. This work understands itself as an proof of concept for an automated localization technique of failures in Java programs. At first, the failures will be identified in order to compile possible propagations of failures in client-server-architectures. Based on the identified failures and possible propagations a set of failure-causing software faults is generated. This concept consists of the instrumentation of successful and failing test case executions to extract execution traces by dynamic slices. The execution traces are joined by chosen set operations to resulting sets of slices. The resulting slice is presented to the software developer. The presentation should help the developer to identify the particular fault, because a reduced amount of possibly wrong instructions is given to him.

Hinweis zum Urherberrecht

Für Dokumente, die in elektronischer Form über Datenenetze angeboten werden, gilt uneingeschränkt das Urheberrechtsgesetz (UrhG). Insbesondere gilt:

Einzelne Vervielfältigungen, z.B. Kopien und Ausdrucke, dürfen nur zum privaten und sonstigen eigenen Gebrauch angefertigt werden (Paragraph 53 Urheberrecht). Die Herstellung und Verbreitung von weiteren Reproduktionen ist nur mit ausdrücklicher Genehmigung des Urhebers gestattet.

Der Benutzer ist für die Einhaltung der Rechtsvorschriften selbst verantwortlich und kann bei Mißbrauch haftbar gemacht werden.