Ein Modell zur Untersuchung der Formalisierbarkeit des funktionsorientierten Tests

A model for investigating functional testing techniques

  • Software stellt ein komplexes Werkzeug dar, das durch seine umfassenden Möglichkeiten die moderne Gesellschaft entscheidend geprägt hat. Daraus ergibt sich eine Abhängigkeit von Funktion und Fehlfunktion der Software, die eine an den funktionalen Anforderungen orientierte Entwicklung und Qualitätssicherung der Software notwendig macht. Die vorliegende Arbeit schafft durch Formalisierung und Systematisierung der Verfahren im funktionsorientierten Test eine fundierte Basis für eine Hinwendung zu den funktionsorientierten Techniken in Softwareentwicklung und –qualitätssicherung. Hierzu wird in der Arbeit zunächst ein formales Modell für das Vorgehen im dynamischen Test beschrieben, das sich an der Begriffsbildung der Literatur und dem Verständnis der Praxis orientiert. Das Modell beruht auf wenigen zentralen Annahmen, eignet sich für formale Untersuchungen und Nachweise und ist wegen seiner sehr allgemein gehaltenen Definitionen breit anwendbar und einfach erweiterbar. Auf dieser Basis werden Vorgehen und Verfahren zum funktionsorientierten Test analysiert. Zunächst wird dazu das Vorgehen im funktionsorientierten Test im Rahmen des Modells dargestellt. Darauf aufbauend werden zentrale Verfahren des funktionsorientierten Tests analysiert, die zum Gegenstand die systematische Prüfung der Umsetzung von weitgehend informal beschriebenen Anforderungen in einem Softwareprodukt haben. Betrachtet werden Verfahren der funktionalen Partitionierung, der funktionalen Äquivalenzklassenanalyse und Grenzwertbildung, Verfahren zur Prüfung von kausalen Zusammenhängen zwischen Ursachen und Wirkungen, Verfahren zur Prüfung von graphisch spezifizierter Funktionalität in Syntaxdiagrammen, Aktivitätsdiagrammen, Sequenz- und Kollaborationsdiagrammen und Petrinetzen, Verfahren zum Test zustandsbasierter Systeme sowie Ansätze einer funktionalen Dekomposition. Die Analyse und Diskussion der bekannten Verfahren im formalisierten Rahmenwerk führt zu zahlreichen Ergebnissen und Verfahrensergänzungen. So zeigt sich, dass in den klassischen, informalen Beschreibungen häufig Unklarheiten bestehen. Diese werden hier adressiert und durch Angabe von Kriterien präzisiert, Optimierungsmöglichkeiten werden aufgezeigt. Darüber hinaus wird an der einheitlichen formalen Darstellung der in der Literatur meist separat betrachteten Verfahren deutlich, welche Vergleichbarkeit zwischen den Verfahren besteht, welche Verfahrenskombinationen sinnvoll sind und wie durch ein kombiniert funktions- und strukturorientiertes Vorgehen eine hohe Aussagekraft in der analytischen Qualitätssicherung erreicht werden kann. Bei der Formulierung der Verfahren im Rahmen des Modells wird herausgearbeitet, wo zur Verfahrensdurchführung die kreative Leistung des Testers notwendig ist und welche Anteile formalisiert und damit automatisiert unterstützt werden können. Diese Betrachtungen bilden die Grundlage für die Skizzierung einer integrierten Entwicklungsumgebung, in der ein funktionsorientiertes Vorgehen in Entwicklung und Qualitätssicherung umgesetzt wird: Hier helfen funktionsorientierte Beschreibungsformen bei der Angabe der Spezifikation, ihrer Verfeinerung und ihrer Vervollständigung, sie unterstützen die Entwicklung durch Modellbildung, sie liefern die Basis für eine funktionsorientierte Testdatenselektion mit Adäquatheitsprüfung, sie können bei geeigneter Interpretierbarkeit über den Datenbereichen zur automatisierten Testfallgenerierung genutzt werden und unterstützen als suboptimale Testorakel eine automatisierte Auswertung des dynamischen Tests. Diese Skizze zeigt die praktische Umsetzbarkeit der vorwiegend theoretischen Ergebnisse dieser Arbeit und setzt einen Impuls für ein verstärktes Aufgreifen funktionsorientierter Techniken in Wissenschaft und Praxis.
  • Software is a complex medium that, due to the opportunities it offers, has had a high impact on the forming of modern society. A general dependency on the correct functioning of software arises thereof, leading to the necessity to strictly align development and quality assurance of software to the functional requirements it has to fulfill. By formalizing and systematizing functional testing techniques, this thesis provides a solid basis for an intensified usage and a further development of functional techniques for software development and quality assurance. As a basis, a framework providing a formal model for the approach underlying software testing is proposed, which is aligned to general concepts from literature and common understanding in practice. The model relies on few, central assumptions and is suited for formal investigations. Because of its clear definitions and general terms it is broadly applicable and can be easily adapted and expanded. Relying on this basis, the approach to and the techniques for functional testing are analyzed: Firstly, the approach to functional testing is described within the framework in terms of the formal model. Secondly, general and well-known techniques for functional testing are described and investigated. These techniques mainly focus on systematically testing the implementation of requirements that have been described informally, e.g. in natural language text. The investigation is directed to a plurality of widely used techniques, such as program testing based on functional partitioning, equivalence partitioning, boundary value analysis, cause-effect-graphing, functional decomposition and graphical specifications such as syntax diagrams, activity diagrams, sequence diagrams, collaboration diagrams and Petri nets. Additionally, techniques for program testing based on state based specifications are described. The analysis and discussion of these well-known techniques in terms of the formal model led to a plurality of results and expansions. It is shown how, in the light of the examined techniques, the lack of clarity often comprised in requirements that have been described informally may be addressed when applying a functional testing technique. For each technique, the information required is stated expressly and criteria for completeness of testing are given. Additionally, several improvements concerning completeness and efficiency of the examined techniques are described. Moreover, from the description and examination of the various functional testing techniques in a single framework it becomes clear how functional testing techniques may be effectively combined, and, broadening the scope, how a combination of functional and structural testing techniques can lead to a high impact quality assurance. When describing functional testing techniques in terms of the model, it becomes on the one hand apparent which parts of a respective technique can be formalized and potentially supported by a tool. On the other hand it is shown where a tester’s creativity is indispensable and forms part of the technique. Based on these results, an integrated development environment is drafted, supporting a functional approach to software development and quality assurance at various stages of a project: In such an environment, functional techniques can support specification, stepwise refinement and systematic completion of requirements. In a later stage of a project, they support test data selection and checking of test data adequacy. Furthermore, when a specification described by means of functional techniques allows linking of structural elements with associated data, it may even be used for automatically generating test data and may be applied as a testing oracle, supporting automated evaluation of test results.

Export metadata

  • Export Bibtex
  • Export RIS

Additional Services

Share in Twitter Search Google Scholar
Metadaten
Author:Benedikte Elbel
URN (permanent link):urn:nbn:de:hbz:386-kluedo-21399
Advisor:Peter Liggesmeyer
Document Type:Doctoral Thesis
Language of publication:German
Year of Completion:2007
Year of Publication:2007
Publishing Institute:Technische Universität Kaiserslautern
Granting Institute:Technische Universität Kaiserslautern
Acceptance Date of the Thesis:2007/06/20
GND-Keyword:Dynamischer Test ; Modellgetriebene Entwicklung ; Software Engineering; Softwareentwicklung ; Softwarespezifikation ; UML
Faculties / Organisational entities:Fachbereich Informatik
CCS-Classification (computer science):D.2 SOFTWARE ENGINEERING (K.6.3)
D.2.1 Requirements/Specifications (D.3.1)
D.2.5 Testing and Debugging
D.2.6 Programming Environments
DDC-Cassification:004 Datenverarbeitung; Informatik

$Rev: 12793 $