Testen ist die Grundlage, um qualitativ hochwertige Software zu erstellen. Obwohl das Testen im Softwareentwicklungsprozess einen hohen Stellenwert einnehmen sollte, wird es dennoch oft vernachlässigt. Vermutlich ein Grund dafür, dass Testen mit hohem Arbeitsaufwand verbunden ist und hauptsächlich per Hand durchgeführt werden muss.
In dieser Arbeit wird eine systematische Methode zur automatischen Testfallgenerierung für den Black-Box-Test vorgestellt. Das für die Umsetzung der Methode implementierte Werkzeug verknüpft Unit-Tests mit Äquivalenzklassen- und Grenzwertanalyse. Durch den Gebrauch von Quelltext-Vorlagen ist das Programm völlig unabhängig vom eingesetzten Unit-Testing-Framework und der verwendeten Programmiersprache. Darüber hinaus können die Testfälle auch als textuelle Beschreibung viel abstrakter formuliert werden.
Zur Einführung in die Thematik des Testens wird zuerst der Begriff Qualität definiert. Darauf aufbauend werden Prozessmodelle zur Softwareentwicklung vorgestellt und gezeigt wie sie Einfluss auf die Softwarequalität nehmen. Ein Überblick über Testen im Allgemeinen und Testverfahren im Besonderen ermöglichen die Einordnung der vorgestellten Testmethoden in einem breiteren Kontext. Im Anschluss daran werden die im Werkzeug umgesetzten Testmethoden ausführlich beschrieben. Das Benutzerhandbuch und ausgewählte Problemstellungen der Implementierung ermöglichen einen tieferen Einblick in das Werkzeug selbst. Ein Ausblick auf mögliche Verbesserungen und Weiterentwicklungen runden diese Arbeit ab.
Inhaltsverzeichnis
- 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
- 2.1 Qualität
- 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
- 3.1 Äquivalenzklassenanalyse
- 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.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
- 4.1 Einführung in TestIt
- 5 Implementierung von TestIt
- 5.1 Model-View-Controller
- 5.2 Datenmodell
- 5.3 Testspezifikation
- 5.4 Testfallerzeugung
- 5.5 Plattformunabhängigkeit
- 5.5.1 Projekte
- 5.5.2 AssemblyParser
- 5.5.3 ComponentModel
- 5.5.4 Controls
- 5.5.5 MetaInfo
- 5.5.6 SharpParser
- 5.5.7 TestIt
- 5.5.8 TestSpecParser
- 5.5.9 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
Zielsetzung und Themenschwerpunkte
Die Arbeit präsentiert eine systematische Methode zur automatisierten Testfallgenerierung für Black-Box-Tests. Ziel ist die Reduktion des manuellen Aufwands beim Testen und die Steigerung der Softwarequalität. Das entwickelte Werkzeug integriert Unit-Tests, Äquivalenzklassenanalyse und Grenzwertanalyse, um eine umfassende Teststrategie zu ermöglichen.
- Automatisierung von Testfallgenerierung
- Integration verschiedener Testmethoden (Unit-Tests, Äquivalenzklassenanalyse, Grenzwertanalyse)
- Sprach- und Framework-Unabhängigkeit des Werkzeugs
- Verbesserung der Softwarequalität durch systematisches Testen
- Effizienzsteigerung im Software-Testprozess
Zusammenfassung der Kapitel
1 Einleitung: Dieses Kapitel führt in die Thematik der systematischen Testfallgenerierung ein und skizziert die Ziele und den Aufbau der Arbeit. Es hebt die Problematik des hohen manuellen Aufwands beim Testen hervor und positioniert die vorgestellte Methode als Lösung.
2 Grundlagen: Dieser Abschnitt legt die theoretischen Grundlagen für das Verständnis der Testfallgenerierung. Er definiert den Begriff "Qualität" (Produkt- und Prozessqualität) und beschreibt verschiedene Prozessmodelle der Softwareentwicklung, um den Einfluss auf die Softwarequalität zu beleuchten. Weiterhin werden allgemeine Testverfahren und ihre Einordnung in den Kontext der Arbeit erläutert.
3 Im Werkzeug umgesetzte Testverfahren: Hier werden die im Rahmen der Arbeit implementierten Testmethoden detailliert beschrieben: Äquivalenzklassenanalyse (inkl. Bestimmung der Klassen und Definition von Testfällen), Category-Partition Methode (mit Unterscheidung zwischen unabhängigen und abhängigen Partitionen) und Grenzwertanalyse. Die Beschreibung der Unit-Tests rundet diesen Abschnitt ab, indem sie die Integration dieser in das Gesamtkonzept verdeutlicht.
4 Benutzerhandbuch: Dieses Kapitel bietet eine detaillierte Anleitung zur Nutzung des entwickelten Werkzeugs. Es umfasst die Einführung in TestIt, die Systemvoraussetzungen und Installation, die Funktionsweise (einschließlich der Testdaten- und Testablaufgenerierung), die Benutzeroberfläche mit ihren verschiedenen Komponenten und Elementen, sowie eine Anleitung zur Erstellung von Metainformationen und Quelltextvorlagen. Schließlich werden Tipps und Tricks zur effektiven Nutzung des Werkzeugs gegeben.
5 Implementierung von TestIt: Dieser Abschnitt beleuchtet die technischen Aspekte der Werkzeugs-Implementierung. Es werden das verwendete Model-View-Controller-Architekturmuster, das Datenmodell, die Testspezifikation und die Testfallerzeugung erläutert. Ein Schwerpunkt liegt auf der Beschreibung der Plattformunabhängigkeit und der verschiedenen Module (AssemblyParser, ComponentModel, Controls, MetaInfo, SharpParser, TestIt, TestSpecParser, Util).
6 Ähnliche Projekte: In diesem Kapitel werden ähnliche Projekte und Ansätze zur Testfallgenerierung vorgestellt und im Vergleich zur eigenen Arbeit eingeordnet. Die Methoden Condition-Table-Methode, Cause-Effect-Graphing, Revealing Subdomains und Partition Analysis werden kurz beschrieben und in ihren Stärken und Schwächen diskutiert.
Schlüsselwörter
Systematische Testfallgenerierung, Black-Box-Test, Automatisierung, Softwarequalität, Unit-Tests, Äquivalenzklassenanalyse, Grenzwertanalyse, Category-Partition Methode, TestIt, Softwareentwicklungsprozess, Prozessmodelle.
Häufig gestellte Fragen zu "Automatisierung der Testfallgenerierung"
Was ist das Thema dieser Arbeit?
Die Arbeit beschreibt die Entwicklung und Implementierung eines Werkzeugs zur automatisierten Generierung von Testfällen für Black-Box-Tests. Ziel ist die Reduktion manuellen Aufwands und die Verbesserung der Softwarequalität.
Welche Testmethoden werden im Werkzeug integriert?
Das Werkzeug integriert verschiedene Testmethoden, darunter Unit-Tests, Äquivalenzklassenanalyse und Grenzwertanalyse, um eine umfassende Teststrategie zu ermöglichen.
Wie funktioniert die automatisierte Testfallgenerierung?
Die Arbeit präsentiert eine systematische Methode zur automatisierten Generierung. Details zur genauen Funktionsweise und den Algorithmen finden sich in den Kapiteln zur Implementierung und den beschriebenen Testverfahren.
Welche Vorteile bietet das entwickelte Werkzeug?
Das Werkzeug bietet Vorteile durch die Automatisierung der Testfallgenerierung, was zu einer Reduktion des manuellen Aufwands, einer Effizienzsteigerung im Software-Testprozess und einer Verbesserung der Softwarequalität führt.
Für welche Art von Tests ist das Werkzeug geeignet?
Das Werkzeug ist für Black-Box-Tests konzipiert. Es unterstützt die Integration von Unit-Tests, was eine umfassendere Teststrategie erlaubt.
Welche Kapitel beinhaltet die Arbeit?
Die Arbeit gliedert sich in folgende Kapitel: Einleitung, Grundlagen (inkl. Qualitätsdefinition und Prozessmodelle), Im Werkzeug umgesetzte Testverfahren (Äquivalenzklassenanalyse, Category-Partition Methode, Grenzwertanalyse, Unit-Tests), Benutzerhandbuch (inkl. Installation, Funktionsweise und Beispielen), Implementierung von TestIt (inkl. Architektur und Plattformunabhängigkeit), Ähnliche Projekte, Ausblick (inkl. geplanter Erweiterungen).
Wie ist das Werkzeug implementiert?
Das Werkzeug (TestIt) basiert auf dem Model-View-Controller-Architekturmuster und ist für Plattformunabhängigkeit konzipiert. Die Implementierung wird detailliert in einem eigenen Kapitel beschrieben, inklusive der verwendeten Module und Komponenten.
Welche ähnlichen Projekte werden in der Arbeit betrachtet?
Die Arbeit vergleicht das entwickelte Werkzeug mit ähnlichen Projekten und Ansätzen zur Testfallgenerierung, darunter die Condition-Table-Methode, Cause-Effect-Graphing, Revealing Subdomains und Partition Analysis.
Welche zukünftigen Erweiterungen sind geplant?
Der Ausblick beschreibt geplante Erweiterungen, beispielsweise die Integration von "Testing by Contract" und der "Object Constraint Language". Ziel ist die weitere Verbesserung der Bedienung und Funktionalität des Werkzeugs.
Wo finde ich das Benutzerhandbuch?
Ein detailliertes Benutzerhandbuch ist Bestandteil der Arbeit und erklärt die Installation, die Funktionsweise und die Nutzung des Werkzeugs TestIt, inklusive Tipps und Tricks.
Welche Schlüsselwörter beschreiben die Arbeit?
Schlüsselwörter sind: Systematische Testfallgenerierung, Black-Box-Test, Automatisierung, Softwarequalität, Unit-Tests, Äquivalenzklassenanalyse, Grenzwertanalyse, Category-Partition Methode, TestIt, Softwareentwicklungsprozess, Prozessmodelle.
- Quote paper
- Thomas Wetzlmaier (Author), 2005, Systematische Testfallgenerierung für den Black-Box-Test, Munich, GRIN Verlag, https://www.grin.com/document/42067