Holzer, A. M. M. (2013). Query-based test case generation [Dissertation, Technische Universität Wien]. reposiTUm. http://hdl.handle.net/20.500.12708/159683
Test Generation; Testing; Rational Sets of Regular Languages; Model-based Testing; Software Engineering; Coverage Criteria; FQL
en
Abstract:
Im Softwaretesten spielen Abdeckungskriterien eine wichtige Rolle bei der Bestimmung der Qualität einer existierenden Menge von Testfällen. Abdeckungskriterien identifizieren Codeartefakte (Testziele), welche durch eine Menge von Testfällen ausgeführt werden sollen. Die Qualität der Menge von Testfällen hängt dann von der Anzahl der durch diese Menge abgedeckten Testziele ab. Darüber hinaus können Abdeckungskriterien verwendet werden um die Testfallgenerierung zu steuern. Obwohl Testen eine dominante Rolle in der Qualitätsbestimmung von Software spielt, wurde erst kürzlich ein Rahmenwerk für die formale Spezifikation von Abdeckungskriterien realisiert. Dieses Rahmenwerk verwendet die deklarative Sprache FQL (FShell Query Language) um Abdeckungskriterien zu spezifizieren. Im Gegensatz zu früheren Bestrebungen zur Formalisierung von Abdeckungskriterien bietet FQL eine exakte Semantik und - mittels neuartiger deklarativer Sprachkonzepte - die Mittel um existierende und neue Abdeckungskriterien auf eine präzise aber dennoch einfache und intuitive Weise zu spezifizieren.<br />In dieser Dissertation initiieren wir eine systematische theoretische Untersuchung des zentralen Sprachkonzepts von FQL - rationalen Mengen regulärer Sprachen. Darüber hinaus präsentieren wir einen neuartigen FQL-basierten Testgenerierungsansatz welcher pradikatenabstraktionsbasiertes Software Model Checking verwendet.<br />Dieser Ansatz verwendet Optimierungen, die auf strukturellen Eigenschaften von Testzielen basieren, und kann dadurch während der Testgenerierung für verschiedene Testziele Informationen wiederverwenden. Zu guter Letzt adaptieren wir FQL für modellbasiertes Testen und präsentieren eine Methode, die es erlaubt Blackbox- und Whitebox-Testen zu kombinieren, so dass wir nicht nur fähig sind Testeingaben gesteuert durch Modelle zu bestimmen, sondern ebenfalls in der Lage sind die Beziehung zwischen Modellen und dem zu testenden Code zu bestimmen.<br />
de
In software testing, coverage criteria play an important role to assess the quality of existing test suites. Coverage criteria identify code artifacts (test goals) that have to be executed by a test suite.<br />The quality of the test suite then depends on the amount of test goals covered by the test suite. Furthermore, coverage criteria can be used to guide test generation. Although testing plays a dominant role in the quality assessment of software, only recently a framework for formally specifying coverage criteria was realized. This framework uses the declarative language FQL (FShell Query Language) in order to specify coverage criteria. In contrast to earlier attempts of formalizing coverage criteria, FQL provides an exact semantics and - via novel declarative language concepts - the means to specify existing and new coverage criteria in a precise, yet simple and intuitive way.<br />In this thesis, we initiate a systematic theoretical study of the central language concept of FQL - rational sets of regular languages.<br />Furthermore, we present a novel FQL-based test generation approach which uses predicate-abstraction-based software model checking. This approach applies optimizations based on the structural properties of test goals and thereby reuses information across test generation for different test goals. Finally, we adapt FQL for model-based testing and provide a method that combines black-box and white-box testing such that we are not only able to derive test inputs guided by models but are also able to assess the relation between models and the code under test.