Automatic Generation Of Object-Oriented Unit Tests Using Genetic Programming [article]

Stefan Wappler, Technische Universität Berlin, Technische Universität Berlin, Ina Schieferdecker
2008
Die Automatisierung der Testfallermittlung für den struktur-orientierten Unit-Test objektorientierter Software verspricht enorme Kostenreduktion und Qualitätssteigerung für ein Softwareentwicklungsprojekt. Die Herausforderung besteht darin, automatisch Testsequenzen zu generieren, die eine hohe Überdeckung des Quellcodes der zu testenden Klasse erreichen. Diese Testsequenzen modellieren bestimmte Szenarien, in denen die zu testende Klasse geprüft wird. Der Grad an erzielter Code-Überdeckung ist
more » ... ein Maß für die Testabdeckung und damit der Testqualität generell. Die existierenden Automatisierungsansätze beruhen hauptsächlich auf entweder symbolischer Ausführung und Constraint-Lösung oder auf einem Suchverfahren. Sie haben jedoch verschiedene Begrenzungen, die sowohl ihre Anwendbarkeit für unterschiedliche zu testende Klassen als auch ihre Effektivität im Hinblick auf die erreichbare Code-Überdeckung einschränken. Die Ansätze basierend auf symbolischer Ausführung und Constraint-Lösung weisen die Beschränkungen dieser Techniken auf. Dies sind beispielsweise Einschränkungen hinsichtlich der Skalierbarkeit und bei der Verwendung bestimmter Programmierkonstrukte wie Schleifen, Felder und komplexer Prädikate. Die suchbasierten Ansätze haben Schwierigkeiten bei komplexen Prädikaten und komplexen Methodenaufrufabhängigkeiten. Die Ansätze adressieren weder den Test nicht-öffentlicher Methoden, ohne die Objektkapselung zu verletzen, noch die Behandlung von Laufzeitausnahmen während der Testgenerierung. Objektkapselung, nicht-öffentliche Methoden und Laufzeitausnahmen sind jedoch grundlegende Konzepte objektorientierter Software, die besonderes Augenmerk während des Tests erfordern. Die vorliegende Dissertation schlägt einen neuen Ansatz zur automatischen Generierung objektorientierter Unit-Tests vor. Dieser Ansatz verwendet Genetische Programmierung, ein neuartiges meta-heuristisches Optimierungsverfahren. Dadurch kann die Testsequenz-Generierung geeigneter als Suchproblem formuliert werden als es die existierenden Ansätze g [...]
doi:10.14279/depositonce-1748 fatcat:oegbpveilff5jnwmpac2vta7la