Skip to main content

2013 | Buch

Qualitätssicherung durch Softwaretests

Vorgehensweisen und Werkzeuge zum Test von Java-Programmen

insite
SUCHEN

Über dieses Buch

Softwaretests bekommen bei immer komplexer werdenden Programmen eine immer größere Bedeutung für den Projekterfolg. Obwohl Testkonzepte etabliert sind, werden sie häufig nur in geringem Maße in Unternehmen genutzt, da sie angeblich zu aufwändig und zu teuer sind. Neben einer intuitiven Einführung in Testtechniken zeigt dieses Buch den schnellen Einstieg in das Testen von Java-Programmen mit Hilfe von einfach nutzbaren Open-Source-Werkzeugen. Dabei werden neben klassischen Programmen auch Vorgehensweisen und Werkzeuge für Systeme mit Datenbankintegration und Web-Applikationen betrachtet, die nicht nur für Java-Programme nutzbar sind. Die Werkzeuge decken dabei funktionale Tests, Testüberdeckungen, Tests von Oberflächen, Performance- und Lasttests, sowie die Automatisierung von Testausführungen ab. Alle Beispiele stehen als Download zur Verfügung.

Inhaltsverzeichnis

Frontmatter
1. Einleitung
Zusammenfassung
Die Qualitätssicherung (QS) in der Software-Entwicklung wird häufig als Nebentätigkeit unterschätzt, obwohl 30% – 70% der Entwicklungszeit normaler Software-Produkte mit dieser Tätigkeit verbracht werden. Die Gründe hierfür sind vielfältig.
Stephan Kleuker
2. Grundbegriffe der Qualitätssicherung
Zusammenfassung
Wie in jeder ingenieurmäßigen Disziplin ist es auch in der Software- Qualitätssicherung sehr wichtig, dass alle Beteiligten die gleiche Sprache nutzen und unter den gleichen Fachbegriffen die gleichen Sachverhalte verstehen. Gerade die umgangssprachliche Formulierung von Anforderungen, die später auch Grundlage der Testfallentwicklung sind, ist häufig die Grundlage von Qualitätsproblemen. Da dieses Buch sich scherpunktmäßig mit dem Testen beschäftigt, werden hier allerdings nur die dafür notwendigen Grundlagen genauer betrachtet.
Stephan Kleuker
3. JUnit
Zusammenfassung
Das manuelle Ausführen von Tests kann leicht zu einer monotonen und dadurch selbst wieder zu einer fehleranfälligen Arbeit werden. Tests sollten einfach wiederholbar und schnell zu erstellen sein. Dies war die Motivation zur Erstellung von JUnit, einem Test-Framework für klassische Java-Programme. Genauer spricht man gerne von XUnit-Testwerkzeugen, da die Idee, Tests in der jeweiligen Programmiersprache der Programme zu schreiben, für viele Sprachen umgesetzt wird.Am Anfang stand die Umsetzung für Smalltalk [@SUn], weitere Sprachen, wie Java, aber auch C++, C# und PHP folgten.
Stephan Kleuker
4. Testfallerstellung mit Äquivalenzklassen
Zusammenfassung
Steht man vor der Aufgabe, Testfälle zu entwickeln, werden auch ohne Schulung meist schnell systematische Ideen generiert. Typischerweise überlegt man sich, was die wichtigsten Aufgaben der Software sind und überprüft, ob die Funktionalität gegeben ist. Mit etwas leidvoller IT-Erfahrung kommt man auch darauf, dass man Randfälle untersuchen will, da man hier oft Probleme angetroffen hat. Weiterhin kommt man häufiger auf die Idee, möglichst viele Schritte gleichzeitig auszuführen, auf das Ergebnis zu warten und die Reaktionszeit zu messen.
Stephan Kleuker
5. Überdeckungsmaße
Zusammenfassung
Nachdem in den vorherigen Kapiteln beschrieben wurde, wie man systematisch Tests mit Äquivalenzklassen und Grenzwerten erstellen und mit JUnit umsetzen kann, stellt sich unmittelbar die Frage: „wann habe ich genug getestet ?“. Die Testerstellung benötigt einiges an Zeit und man muss wirtschaftlich diese Erstellungszeit und die Kosten möglicher Fehler gegenrechnen. Bei diesen Kosten sind nicht nur die Wartungsarbeiten, sondern auch ein möglicher Image-Schaden zu beachten. Diese Betrachtungen sind wieder projektindividuell durchzuführen, da hier z.B. für Werbe-Spiele und Software aus dem Medizin-, Luftfahrt-, aber auch Banken- und Versicherungsbereich andere Forderungen gelten.
Stephan Kleuker
6. Testarchitektur und Mocking
Zusammenfassung
In allen modernen Software-Entwicklungsprozessen ist das Testen eng in die Entwicklung integriert und beginnt nicht erst nach der Fertigstellung einer ersten vollständigen Version. Dabei stellt sich die Frage, ob und wie man testen kann, wenn eine weitere in Entwicklung befindliche Teilsoftware, die man für eigene Tests benötigt, noch nicht vorliegt. Die Antwort wird in diesem Kapitel mit der Erstellung einer Minimal-Software, die das Testen ermöglicht, sogenannten Mocks, gegeben.
Stephan Kleuker
7. Test von Nutzungsoberflächen
Zusammenfassung
Die graphische Oberfläche ist typischerweise für den ersten Eindruck einer Software verantwortlich. Neben dem sehr wichtigen, hier aber nicht behandelten Thema Usability, ist es genauso wichtig, dass der Nutzer mit seinen ersten Aktionen automatisch zum Tester der Software wird. Genauer versucht er die gewünschte Funktionalität anzusteuern, bei der er seine Erwartungen an die Ergebnisse hat. Mit gut getesteter und ergonomischer Software sollten die Erwartungen erfüllbar sein. Ansonsten enthalten fast alle Fehlerberichte von Endnutzern Beschreibungen, wie die Software bedient und welches Fehlverhalten dabei beobachtet wurde.
Stephan Kleuker
8. Applikationen mit Datenbankanbindung
Zusammenfassung
Möchte man Daten langfristig speichern, also persistieren, sind Datenbanken meist eine gute Wahl, wenn es sich um strukturierte Informationen handelt. Datenbanken ermöglichen weiterhin, dass Informationen von verschiedenen Nutzern fast gleichzeitig gelesen und bearbeitet werden können. Durch die Transaktionssicherheit ist dabei sichergestellt, dass unerwünschte Situationen von sich gegenseitig beeinflussenden Veränderungen vermieden werden. Durch die lange Zeit, in der Datenbanken entwickelt wurden, gibt es mittlerweile viele sehr performante Lösungen für den generellen Betrieb und für Spezialaufgaben wie Datenanalysen.
Stephan Kleuker
9. Test von Web-Applikationen
Zusammenfassung
Generell können Web-Applikationen als Spezialfall der bereits vorher betrachteten Programmarten betrachtet werden. Daraus folgt unmittelbar, dass die bisher vorgestellten Ideen und auch Werkzeuge zumindest für große Teile der Applikationen genutzt werden. Die Applikationen haben meist einen keinen einfachen Aufbau und nutzen unterschiedliche Techniken, ausgehend von der Gestaltung und Struktur der Oberflächen bis zu transaktionssicheren Operationen auf Datenbanken. Da die Techniken meist in nur einer Schicht genutzt werden, sind diese die zentrale Grundlage der Testplanung.
Stephan Kleuker
10. Performance- und Lasttests
Zusammenfassung
Ein Programm, das alle gewünschten Funktionen korrekt umsetzt, hat auf dem Markt keine Chance, wenn es einfach zu langsam ist. Gerade mit schnelleren Rechnern erwarten Nutzer von Programmen unmittelbare Reaktionen, ansonsten sinkt die Akzeptanz enorm schnell. Zum Glück ist es auch eine Folge von schnellen Rechnern, dass nicht in allen Programmen bei jeder Zeile permanent über Performanz nachgedacht werden muss.
Stephan Kleuker
11. Ausblick
Zusammenfassung
In den vorherigen Kapiteln wurde beschrieben, warum man was, wie testen kann. Dies ist eine Grundlage, wenn man in den systematischen Test einsteigen möchte, da man zunächst wissen muss, was überhaupt möglich ist. Eine systematische Fundierung der Prozesse der Qualitätssicherung kann z.B. durch die in Kapitel 1 erwähnten ISTQB-Kurse erreicht werden.
Stephan Kleuker
Backmatter
Metadaten
Titel
Qualitätssicherung durch Softwaretests
verfasst von
Stephan Kleuker
Copyright-Jahr
2013
Verlag
Springer Fachmedien Wiesbaden
Electronic ISBN
978-3-8348-2068-6
Print ISBN
978-3-8348-0929-2
DOI
https://doi.org/10.1007/978-3-8348-2068-6

Neuer Inhalt