Im Software-Testing wird grundsätzlich zwischen Testverfahren und Testarten unterschieden: Testverfahren geben an, wie getestet wird. Testarten werden je nach Ziel der Software-Tests ausgewählt und angewendet. Im folgenden werden die gängigsten Software-Testing-Methoden vorgestellt und erläutert.
Fordern Sie kostenlos den Überblick der Software-Testing-Methoden als PDF an und erhalten Sie ausführliche Informationen zu Testarten und Testverfahren in einer Datei für Sie zusammengetragen und erläutert.
Bei den Testtechniken ist grundsätzlich zwischen statischen Testtechniken und dynamischen Testtechniken zu unterscheiden. Der dynamische Test beinhaltet die Ausführung des Testelements. Der statische Test dagegen testet Arbeitsergebnisse ohne Ausführung von Code.
Statische Testtechniken dienen hauptsächlich dem Prüfen von Arbeitsergebnissen, wie Anforderungen oder Quelltext, ohne diese auf einem Rechner auszuführen. Bei den Prüfobjekten handelt es sich meist um Dokumente oder Quellcode. Prinzipiell kann aber jedes Arbeitsergebnis der Softwareentwicklung durch statische Testtechniken geprüft werden, zum Beispiel Anforderungsspezifikationen, User-Stories, Designspezifikationen, Quellcode, Testkonzepte, Testspezifikationen, Testfälle, Testskripte, Anwenderhandbücher oder Webseiten.
Reviews oder werkzeuggestützte statische Analysen zählen zu den gängigsten statischen Testtechniken.
Statische Analyse bezeichnet einen Prozess der Bewertung eines Testobjekts (Komponente oder System) basierend auf seiner Form, seiner Struktur, seines Inhalts oder seiner Dokumentation, ohne es auszuführen.
Dynamische Testtechniken dienen dem Auffinden von Fehlerwirkungen durch Ausführen des Testobjekts (Programm) auf einem Rechner. Die gängigsten dynamischen Testtechniken sind im Folgenden aufgelistet:
Hierbei wird das von außen sichtbare Verhalten des Testobjekts betrachtet, ohne Kenntnis der Softwarestruktur oder des Quellcodes (Black Box) und die Testfälle auf Basis der Spezifikation entworfen. Deshalb werden Black-Box-Tests auch als spezifikationsorientierte Testverfahren bezeichnet.
Zum Black-Box-TestDie White-Box-Testverfahren zählen unter den dynamischen Testtechniken zu den am meisten angewendeten Methoden. Die Testfälle werden basierend auf der Kenntnis der inneren Struktur einer Komponente oder eines Systems entwickelt (dies ist die sogenannte White-Box bzw. Glass-Box). White-Box-Tests werden deshalb auch als strukturbasierte oder strukturelle Testverfahren bezeichnet.
Zum White-Box-TestBei erfahrungsbasierten Testverfahren geht es weniger um eine systematische Ableitung von Testfällen, sondern vielmehr darum, das Können, die Intuition und die Erfahrung der Entwickler, Tester und Anwender wirksam einzusetzen. Zum Beispiel:
Da die Wirksamkeit erfahrungsbasierter Testverfahren stark mit der Erfahrung des Testers variiert ist der Einsatz dieser Testverfahren insbesondere als Ergänzung zu systematischen Testverfahren sinnvoll.
Im ISTQB Certified Tester Foundation Level wird auf folgende erfahrungsbasierte Testverfahren näher eingegangen:
Ersteller: Lisa Wendland; Quelle: Software Testing Academy
Neben den oben genannten Testtechniken können Tests noch bezüglich Ihres Zieles differenziert werden. Nach dieser Unterscheidung ergeben sich verschiedene Testarten. Dahingehend muss im Testmanagement differenziert werden, welche funktionalen und nicht-funktionalen Qualitätsmerkmale im Fokus stehen.
Funktionale Tests zielen auf die Überprüfung der reinen Funktionalität des Testobjekts ab. Die zugrundeliegende Frage könnte daher lauten: „Macht das System das, was von ihm erwartet wird?“
Ersteller: Lisa Wendland; Quelle: Software Testing Academy
Nicht-funktionale Testarten zielen auf die Überprüfung weiterer allgemeiner Qualitätsmerkmale von Software, außer der reinen Funktionalität. Diese sind entlang der Qualitätsmerkmale in der DIN-ISO 25010 definiert:
Wird durch Performanztests (betreffend Antwortzeiten und Verarbeitungsgeschwindigkeit) und Lasttests (betreffend Systemlast z.B. in Form von parallel zugreifender Benutzer, Anzahl Transaktionen oder Verarbeitungsvolumen) geprüft.
Zuverlässigkeitstests prüfen, ob das Testobjekt ein bestimmtes Leistungsniveau unter bestimmten Bedingungen über einen bestimmten Zeitraum aufrechterhalten kann. Hierzu gehören Robustheitstests, sowie Tests, die prüfen, wie schnell das System im Fehlerfall wieder einsatzfähig ist („Recovery“-Tests). Auch Stresstests fallen in diesen Bereich: Sie beobachten das Systemverhalten bei Überlastung.
Benutzbarkeitstests (auch: Gebrauchstauglichkeits-Tests oder Usability-Tests) prüfen typischerweise, wie gut und wie einfach ein System für die Benutzer zu bedienen ist.
Diese prüfen, ob das System und die damit zusammenhängenden Daten ausreichend vor unerlaubten Zugriffen und externen Bedrohungen, wie z.B. Viren, geschützt sind.
Interoperabilitätstests bewerten die Fähigkeit des Softwareprodukts mit ein oder mehreren spezifizierten Komponenten oder Systemen zu interagieren.
Wird typischerweise durch Reviews und werkzeuggestützte statische Analyse geprüft.
Wird durch Portabilitätstests geprüft. Fokus dabei ist, wie leicht sich die Software in eine andere Umgebung übertragen lässt. Ein inzwischen weit verbreitetes Beispiel für Portabilitätstests sind Tests von Applikationen auf mobilen Endgeräten. Hierbei spielt die Übertragbarkeit auf verschiedene Hardware (z.B. mobile Geräte) ebenso eine Rolle wir die Übertragbarkeit in verschiedene Software-Umgebungen (z.B. Windows oder Apple iOS).
Nach ISTQB gibt es neben den funktionalen und nicht-funktionalen Tests noch zwei weitere Testarten: nämlich strukturelle und änderungsbezogene Tests.
Ersteller: Lisa Wendland; Quelle: Software Testing Academy
Strukturelle Tests – auch: White-Box-Tests – können in allen Teststufen angewandt werden. Strukturelle Tests setzen immer auch auf Modellen der Software auf. Ein großes Plus der strukturellen Tests ist, dass es bei ihrer Anwendung oft einfach möglich ist, die Testintensität messbar zu machen – als sogenannte Testüberdeckung.
Als änderungsbezogenes Testen wird das Testen bezeichnet, das durch Änderung einer Komponente oder eines Systems veranlasst wird. Konkret gibt es hierbei nochmals zwei Testarten zu unterscheiden: Den Fehlernachtest, was den Test bezeichnet, der die erfolgreiche Beseitigung eines Fehlers validiert sowie den Regressionstest, durch den geprüft wird, ob durch eine Änderung noch zusätzliche, ungewollte Änderungen oder Seiteneffekte entstanden sind.
Spillner, A., Linz, T. Basiswissen Softwaretest – Aus- und Weiterbildung zum Certified Tester, 6. Auflage, 2019, dpunkt Verlag
Certified Tester Foundation Level Syllabus – Version 2018 V3.1D
Fordern Sie kostenlos den Überblick der Software-Testing-Methoden als PDF an und erhalten Sie ausführliche Informationen zu Testarten und Testverfahren in einer Datei für Sie zusammengetragen und erläutert.