Automatic Generation Of Object-Oriented Unit Tests Using Genetic Programming

Created by W.Langdon from gp-bibliography.bib Revision:1.3973

@PhdThesis{Wappler:thesis,
  author =       "Stefan Wappler",
  title =        "Automatic Generation Of Object-Oriented Unit Tests
                 Using Genetic Programming",
  title_de =     "Automatische Generierung objektorientierter Unit-Tests
                 mittels Genetischer Programmierung",
  school =       "Institut fur Softwaretechnik und Theoretische
                 Informatik, Elektrotechnik und Informatik, Technische
                 Universitat Berlin",
  year =         "2007",
  month =        "19 " # dec,
  keywords =     "genetic algorithms, genetic programming, SBSE, Test
                 case generation, automation, object orientation,",
  URL =          "http://opus.kobv.de/tuberlin/volltexte/2008/1733/",
  URL =          "http://opus.kobv.de/tuberlin/volltexte/2008/1733/pdf/wappler_stefan.pdf",
  URN =          "urn:nbn:de:kobv:83-opus-17330",
  size =         "172 pages",
  abstract =     "Automating the generation of object-oriented unit
                 tests for structural testing techniques has been
                 challenging many researchers due to the benefits it
                 promises in terms of cost saving and test quality
                 improvement. It requires test sequences to be
                 generated, each of which models a particular scenario
                 in which the class under test is examined. The
                 generation process aims at obtaining a preferably
                 compact set of test sequences which attains a high
                 degree of structural coverage. The degree of achieved
                 structural coverage indicates the adequacy of the tests
                 and hence the test quality in general.

                 Existing approaches to automatic test generation for
                 object-oriented software mainly rely either on symbolic
                 execution and constraint solving, or on a particular
                 search technique. However, these approaches suffer from
                 various limitations which negatively affect both their
                 applicability in terms of classes for which they are
                 feasible, and their effectiveness in terms of
                 achievable structural coverage. The approaches based on
                 symbolic execution and constraint solving inherit the
                 limitations of these techniques, which are, for
                 instance, issues with scalability and problems with
                 loops, arrays, and complex predicates. The search-based
                 approaches encounter problems in the presence of
                 complex predicates and complex method call dependences.
                 In addition, existing work addresses neither testing
                 non-public methods without breaking data encapsulation,
                 nor the occurrence of runtime exceptions during test
                 generation. Yet, data encapsulation, non-public
                 methods, and exception handling are fundamental
                 concepts of object-oriented software and require also
                 particular consideration for testing.

                 This thesis proposes a new approach to automating the
                 generation of object-oriented unit tests. It employs
                 genetic programming, a recent meta-heuristic
                 optimisation technique, which allows formulating the
                 task of test sequence generation as a search problem
                 more suitably than the search techniques applied by the
                 existing approaches. The approach enables testing
                 non-public methods and accounts for run time exceptions
                 by appropriately designing the objective functions that
                 are used to guide the genetic programming search.

                 The value of the approach is shown by a case study with
                 real-world classes that involve non-public methods and
                 runtime exceptions. The structural coverage achieved by
                 the approach is contrasted with that achieved by a
                 random approach and two commercial test sequence
                 generators. In most of the cases, the approach of this
                 thesis outperformed the other methods.",
  abstract =     "Die Automatisierung der Testfallermittlung fur den
                 struktur-orientierten Unit-Test objektorientierter
                 Software verspricht enorme Kostenreduktion und
                 Qualitatssteigerung fur ein
                 Softwareentwicklungsprojekt. Die Herausforderung
                 besteht darin, automatisch Testsequenzen zu generieren,
                 die eine hohe Uberdeckung des Quellcodes der zu
                 testenden Klasse erreichen. Diese Testsequenzen
                 modellieren bestimmte Szenarien, in denen die zu
                 testende Klasse gepruft wird. Der Grad an erzielter
                 Code-Uberdeckung ist ein Mass fur die Testabdeckung und
                 damit der Testqualitat generell.

                 Die existierenden Automatisierungsansatze beruhen
                 hauptsachlich auf entweder symbolischer Ausfuhrung und
                 Constraint-Losung oder auf einem Suchverfahren. Sie
                 haben jedoch verschiedene Begrenzungen, die sowohl ihre
                 Anwendbarkeit fur unterschiedliche zu testende Klassen
                 als auch ihre Effektivitat im Hinblick auf die
                 erreichbare Code-Uberdeckung einschranken. Die Ansatze
                 basierend auf symbolischer Ausfuhrung und
                 Constraint-Losung weisen die Beschrankungen dieser
                 Techniken auf. Dies sind beispielsweise Einschrankungen
                 hinsichtlich der Skalierbarkeit und bei der Verwendung
                 bestimmter Programmierkonstrukte wie Schleifen, Felder
                 und komplexer Pradikate. Die suchbasierten Ansatze
                 haben Schwierigkeiten bei komplexen Pradikaten und
                 komplexen Methodenaufrufabhangigkeiten. Die Ansatze
                 adressieren weder den Test nicht-offentlicher Methoden,
                 ohne die Objektkapselung zu verletzen, noch die
                 Behandlung von Laufzeitausnahmen wahrend der
                 Testgenerierung. Objektkapselung, nicht-offentliche
                 Methoden und Laufzeitausnahmen sind jedoch grundlegende
                 Konzepte objektorientierter Software, die besonderes
                 Augenmerk wahrend des Tests erfordern.

                 Die vorliegende Dissertation schlagt 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 Ansatze
                 gestatten. Effektivere Suchen nach Testsequenzen zur
                 Erreichung von hoher Code-Uberdeckung werden so
                 ermoglicht. Der Ansatz umfasst ausserdem den Test
                 nicht-offentlicher Methoden ohne Kapselungsbruch und
                 berucksichtigt Laufzeitausnahmen, indem er die fur die
                 Suche verwendeten Zielfunktionen adequat
                 definiert.

                 Eine umfangreiche Fallstudie demonstriert die
                 Effektivitat des Ansatzes. Die dabei verwendeten
                 Klassen besitzen nicht-offentliche Methoden und fuhren
                 in zahlreichen Fallen zu Laufzeitausnahmen wahrend der
                 Testgenerierung. Die erreichten Code-Uberdeckungen
                 werden den Ergebnissen eines Zufallsgenerators sowie
                 zweier kommerzieller Testsequenz-Generatoren
                 gegenubergestellt. In der Mehrheit der Falle ubertraf
                 der hier vorgeschlagene Ansatz die alternativen
                 Generatoren.",
}

Genetic Programming entries for Stefan Wappler

Citations