Diploma Thesis DIP-2923

BibliographySchumm, Sebastian: Praxistaugliche Unterstützung beim selektiven Regressionstest.
University of Stuttgart, Faculty of Computer Science, Electrical Engineering, and Information Technology, Diploma Thesis No. 2923 (2009).
93 pages, german.
CR-SchemaD.2.5 (Software Engineering Testing and Debugging)
D.2.7 (Software Engineering Distribution, Maintenance, and Enhancement)
KeywordsTest, Regressionstest, Selektiver Regressionstest, CodeCover, Glassbox-Test, Software-Wartung, Wartung
Abstract

"regression testing: Selective retesting of a system or component to verify that modifications have not caused unintended effects and that the system or component still complies with its specified requirements."

IEEE Std 610.12 (1990)

Der Regressionstest wird hauptsächlich in der Wartung einer Software eingesetzt und im Lebenslauf der Software häufig wiederholt. Der selektive Regressionstest hat das Ziel, Aufwand bei der Ausführung der Testsuite einzusparen. Dazu werden nur diejenigen Testfälle der Testsuite ausgewählt, die, bezogen auf die Änderungen zwischen zwei Programmversionen, eine Chance haben Fehler aufzudecken.

In dieser Arbeit werden ein Verfahren für den selektiven Regressionstest von Java-Programmen und ein dafür entwickeltes Werkzeug beschrieben. Dazu werden zunächst die Grundlagen des Regressionstests sowie Alternativen zum selektiven Regressionstest vorgestellt. Anschließend wird ein Überblick über die Literatur zum selektiven Regressionstest gegeben. Der Überblick konzentriert sich auf Verfahren, die auf dem Programmcode arbeiten. Die existierende Literatur behandelt hauptsächlich prozedurale Programmiersprachen, Verfahren für aktuelle objektorientierte Programmiersprachen gibt es nur wenige. Die Verfügbarkeit von Werkzeugen für den selektiven Regressionstest ist ebenfalls gering.

Im weiteren Verlauf der Arbeit wird ein eigenes Verfahren für den selektiven Regressionstest vorgestellt, das auf dem Glassbox-Test-Werkzeug CodeCover basiert. Das Verfahren ermittelt die Änderungen zwischen zwei Programmversionen anhand eines Vergleichs des Programmcodes und wählt alle Testfälle für den Regressionstest aus, die von den ermittelten Änderungen betroffen sind. Das Verfahren ist besonders für die Behandlung von Änderungen auf Anweisungsebene und Methodenebene geeignet.

Das Verfahren wurde in Form eines Werkzeugs umgesetzt, wobei viel Wert auf die Praxistauglichkeit gelegt wurde. Das Werzeug ist in Form eines Plug-ins für die Entwicklungsumgebung Eclipse implementiert und unterstützt auch die Analyse großer Softwaresysteme.

Full text and
other links
PDF (703184 Bytes)
Access to students' publications restricted to the faculty due to current privacy regulations
Department(s)University of Stuttgart, Institute of Software Technology, Software Engineering
Superviser(s)Rainer Schmidberger
Project(s)CodeCover
Entry dateOctober 27, 2009
   Publ. Computer Science