Diplomarbeit, 2005
125 Seiten, Note: Sehr gut
1 Einleitung
2 Grundlagen
2.1 Qualität
2.1.1 Produktqualität
2.1.2 Prozessqualität
2.2 Prozessmodelle
2.3 Testen
2.4 Testverfahren
2.4.1 Statische Verfahren
2.4.2 Dynamische Verfahren
3 Im Werkzeug umgesetzte Testverfahren
3.1 Äquivalenzklassenanalyse
3.1.1 Bestimmen der Äquivalenzklassen
3.1.2 Definition der Testfälle
3.1.3 Beispiel
3.2 Category-Partition Methode
3.2.1 Unabhängige Partitionen
3.2.2 Abhängige Partitionen
3.2.3 Beispiel
3.3 Grenzwertanalyse
3.4 Unit-Tests
4 Benutzerhandbuch
4.1 Einführung in TestIt
4.1.1 Systemvoraussetzungen
4.1.2 Installation
4.2 Funktionsweise
4.2.1 Erzeugen der Testdaten
4.2.2 Erzeugen des Testablaufs
4.3 Benutzeroberfläche
4.3.1 Menü- und Symbolleiste
4.3.2 Statusleiste
4.3.3 Standardschaltflächen für Dialoge
4.3.4 Datei-Dialog
4.3.5 Klassenansicht
4.3.6 Mitteilungen-Fenster
4.3.7 Ausgabe-Fenster
4.3.8 Eigenschaften-Fenster
4.3.9 Auflistungs-Editor
4.3.10 Bedingungen-Editor
4.3.11 Quelltext-Editor
4.3.12 Navigator
4.3.13 Programm-Einstellungen
4.4 Verwenden von TestIt
4.4.1 Erstellen der Metainformationen
4.4.2 Quelltext-Vorlagen erstellen
4.4.3 Testfälle vervollständigen
4.4.4 Ausführen der Tests
4.4.5 Beispiele
4.4.6 Tipps und Tricks
4.5 Erweitern von TestIt
4.5.1 Erstellen von Plugins
4.6 Referenz
4.6.1 Fehlermeldungen
4.6.2 Quelltext-Marken
4.6.3 Tastenkürzel
5 Implementierung von TestIt
5.1 Model-View-Controller
5.2 Datenmodell
5.2.1 PropertyGrid
5.2.2 Kulturinformationen
5.2.3 Laufzeit-Typinformationen
5.2.4 Persistenz
5.2.5 Testspezifikation
5.3 Testfallerzeugung
5.4 Plattformunabhängigkeit
5.5 Projekte
5.5.1 AssemblyParser
5.5.2 ComponentModel
5.5.3 Controls
5.5.4 MetaInfo
5.5.5 SharpParser
5.5.6 TestIt
5.5.7 TestSpecParser
5.5.8 Util
5.6 Laufzeitstatistik
6 Ähnliche Projekte
6.1 Condition-Table-Methode
6.2 Cause-Effect-Graphing
6.3 Revealing Subdomains
6.4 Partition Analysis
7 Ausblick
7.1 Verbesserung der Bedienung
7.2 Weiterentwicklung
7.2.1 Testing by Contract
7.2.2 Object Constraint Language
8 Zusammenfassung
Das Hauptziel dieser Arbeit ist die Entwicklung einer systematischen Methode sowie eines zugehörigen Werkzeugs, um den Prozess der Black-Box-Testfallgenerierung zu automatisieren, die Anzahl notwendiger Testfälle zu reduzieren und diese direkt in testbare Code-Strukturen zu überführen.
3.2 Category-Partition Methode
Eine systematischere Vorgehensweise bei der Erstellung von Äquivalenzklassen verfolgt die Category-Partition Methode. [16] Dabei wird die in einer natürlichen Sprache verfasste Spezifikation, welche unmittelbar als Basis für Black-Box-Tests ungeeignet ist, in eine formale Sprache übersetzt. Während der Transformation der Spezifikation fallen häufig unvollständige, mehrdeutige oder widersprüchliche Formulierungen auf. Dieser Übersetzungsprozess hilft daher auch die Qualität der Spezifikation zu verbessern, indem die vorher genannten Probleme aufgedeckt werden. Weiters werden nicht nur die Eingabedaten, sondern auch die Ausgabedaten bei den Tests berücksichtigt.
Die Category-Partition Methode beginnt mit der Zerlegung der Spezifikation in funktionale Einheiten, die unabhängig getestet werden können. Im Fall einer Klasse (im Sinne der objektorientierten Programmierung) wäre eine solche funktionale Einheit eine Methode. Der nächste Zerlegungsschritt ermittelt die Parameter und Umgebungseinflüsse, welche das Verhalten der funktionalen Einheit beeinflussen. Parameter sind explizite Eingaben, während Umgebungseinflüsse beispielsweise globale Variablen oder den Systemzustand beschreiben. Parameter und eventuell vorhandene Umgebungseinflüsse werden unter dem Begriff Faktor zusammengefasst. Für diese Faktoren müssen konkrete Werte gefunden werden, um Testfälle erstellen zu können. Auf der Suche nach diesen Werten werden im nächsten Schritt des Zerlegungsprozesses Arten von Informationen gesucht, die jeden Faktor kennzeichnen. Der Tester markiert in der Spezifikation für jeden Faktor jene Textstellen, die das Verhalten der funktionalen Einheit beeinflussen. Jedes erkannte Merkmal wird als Category bezeichnet. Im nächsten Schritt werden die gefundenen Merkmale in Äquivalenzklassen (Choices) unterteilt. Die Begriffe Äquivalenzklasse, Partition sowie Choice haben dieselbe Bedeutung.
Nachdem Faktoren und Äquivalenzklassen feststehen, wird für jede funktionale Einheit eine formale Testspezifikation verfasst. Die Testspezifikation besteht aus einer Liste von Faktoren, die eine Liste von Partitionen enthält. Aus der Testspezifikation werden im nächsten Schritt Testframes für die Testfälle erstellt. Vorerst wird bei der Erstellung der Testframes so vorgegangen, dass jede Äquivalenzklasse mit jeder anderen Partition, die nicht zum selben Faktor gehört, kombiniert wird. Im Abschnitt 3.1.2 wird diese Vorgehensweise noch erweitert.
1 Einleitung: Diese Einleitung thematisiert die Notwendigkeit des systematischen Testens anhand von Softwarefehlern und definiert zentrale Fehlerbegriffe.
2 Grundlagen: Das Kapitel führt grundlegende Begriffe wie Qualität, Prozessmodelle und diverse Testverfahren ein, um den Kontext für die Arbeit zu schaffen.
3 Im Werkzeug umgesetzte Testverfahren: Hier werden die mathematischen und methodischen Konzepte der Äquivalenzklassenanalyse und der Category-Partition Methode für die automatisierte Testfallgenerierung detailliert erläutert.
4 Benutzerhandbuch: Dieser Abschnitt dient als praktische Anleitung zur Bedienung des Werkzeugs TestIt, von der Installation bis zur Erstellung eigener Test-Plugins.
5 Implementierung von TestIt: Es wird die technische Architektur des Programms erläutert, insbesondere das Model-View-Controller Entwurfsmuster und die Datenmodellierung.
6 Ähnliche Projekte: Dieses Kapitel vergleicht die vorgestellte Methode mit existierenden Ansätzen wie Condition-Table-Methode oder Cause-Effect-Graphing.
7 Ausblick: Der Ausblick zeigt zukünftige Erweiterungsmöglichkeiten des Werkzeugs auf, beispielsweise durch die Integration von Design by Contract.
8 Zusammenfassung: Die Arbeit wird abschließend reflektiert, wobei die Wichtigkeit ganzheitlicher Testprozesse und die Vermeidung des Pestizidparadoxons hervorgehoben werden.
Black-Box-Test, Testfallgenerierung, Äquivalenzklassenanalyse, Category-Partition Methode, Unit-Tests, TestIt, Softwarequalität, Testspezifikation, Testautomatisierung, Grenzwertanalyse, Testabdeckung, Model-View-Controller, Testframework, Softwareentwicklung, Debugging
Die Arbeit beschäftigt sich mit der systematischen und automatisierten Generierung von Testfällen für den Black-Box-Test von Software, um manuelle Aufwände zu reduzieren.
Die zentralen Felder umfassen Software-Qualitätssicherung, die Methodik der Äquivalenzklassenanalyse, die Category-Partition Methode und die praktische Tool-Implementierung.
Das primäre Ziel ist die Entwicklung eines Werkzeugs, das Testspezifikationen verwaltet und daraus automatisch eine minimale, aber vollständige Menge relevanter Testfälle generiert.
Es wird primär die Äquivalenzklassenanalyse sowie die Category-Partition Methode eingesetzt, ergänzt durch Grenzwertanalyse zur Auswahl repräsentativer Testwerte.
Der Hauptteil gliedert sich in die methodischen Grundlagen der Testverfahren, ein detailliertes Benutzerhandbuch für das entwickelte Tool und die Erläuterung der softwaretechnischen Implementierung.
Charakterisierende Begriffe sind Testautomatisierung, Black-Box-Test, Äquivalenzklassen, Testspezifikation und softwaretechnische Qualitätssicherung.
Das Tool verwendet ein dreigeteiltes Layout mit einer Klassenansicht für Metainformationen, einem Eigenschaften-Fenster für Daten und Editoren für Testabläufe sowie Quelltext.
Spezialfälle sind Äquivalenzklassen, die aufgrund ihrer Fehleranfälligkeit oder Besonderheit nicht mit allen anderen Faktoren kombiniert werden, um die Anzahl der Testfälle zu minimieren.
Der GRIN Verlag hat sich seit 1998 auf die Veröffentlichung akademischer eBooks und Bücher spezialisiert. Der GRIN Verlag steht damit als erstes Unternehmen für User Generated Quality Content. Die Verlagsseiten GRIN.com, Hausarbeiten.de und Diplomarbeiten24 bieten für Hochschullehrer, Absolventen und Studenten die ideale Plattform, wissenschaftliche Texte wie Hausarbeiten, Referate, Bachelorarbeiten, Masterarbeiten, Diplomarbeiten, Dissertationen und wissenschaftliche Aufsätze einem breiten Publikum zu präsentieren.
Kostenfreie Veröffentlichung: Hausarbeit, Bachelorarbeit, Diplomarbeit, Dissertation, Masterarbeit, Interpretation oder Referat jetzt veröffentlichen!

