Methoden zum Software-Testing
Im Software Testing wird grundsätzlich zwischen Testverfahren und Testarten unterschieden. Testverfahren geben an, wie getestet wird und welche unterschiedliche Testarten werden angewendet.
Testverfahren
Bei den Testtechniken unterscheiden wir grundsätzlich zwischen statischen Testtechniken und dynamischen Testtechniken.
1. Statische Testtechniken
Statische Testtechniken dienen hauptsächlich zur Prüfung von Artefakten, 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, 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.
Vorteile statischer Testtechniken:
- Frühe Fehlererkennung in der Spezifikation-Phase
- Aufdecken der Fehlerzustände
- Verringerung der Anzahl aufwändiger und teurer dynamischer Testtechniken
- Prüfung auch auf Programmier-Konventionen, Standards, Design
- Prüfung nicht-ausgeführte Softwarebestandteile (z.B. Variablendefinitionen)
- Prüfung von Attribute wie z.B. Wartbarkeit
- Prüfung von Dokumenten (z.B. Anforderungsspezifikationen, etc.)
- Wissensaustausch zwischen den Teammitgliedern (Review)
- Das ganze Team trägt die Qualitätsverantwortung (Review)
Nachteile statischer Testtechniken:
- Eher ungeeignet für komplexe Interaktionen zwischen verschiedenen Systemteilen
- Einige Fehlerzustände entstehen erst bei Ausführung. Ein Divisor kann beispielsweise bei der Ausführung den Wert „0“ annehmen und somit einen Laufzeitfehler verursachen. Dieser kann durch reines Sichten des Programmtextes nicht ermittelt werden
2. Dynamische Testtechniken
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:
Black-Box-Techniken
Hierbei wird das von aussen 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-Verfahren auch als spezifikationsorientierte Testentwurfsverfahren bezeichnet.
White-Box-Techniken
Unter den dynamischen Testtechniken zählen die sogenannten White-Box-Techniken zu den am meisten angewendeten Methoden. Die Testfälle werden hierbei unter Kenntnis des Quellcodes und der Softwarestruktur entwickelt (White Box bzw. Glass Box). Die White-Box-Verfahren werden deshalb auch als strukturbasierte oder strukturelle Testentwurfsverfahren bezeichnet.
Erfahrungsbasierte Techniken
Bei erfahrungsbasierten Testentwurfsverfahren geht es weniger um eine systematische Ableitung von Testfällen, sondern vielmehr darum, das Wissen und die Erfahrung der Entwickler, Tester und Anwender wirksam einzusetzen.
Vorteile dynamischer Testtechniken:
- Testobjekt wird tatsächlich ausgeführt, was der Bestimmung von Software näher kommt
- Das Zusammenspiel von Systemteilen wird getestet
- Umfasst auch die Durchführung wichtiger nicht-funktionaler Tests (Performanztest, Lasttest, etc.)
Nachteile dynamischer Testtechniken:
- Setzen lauffähiges Testobjekt und eine entsprechende Testumgebung voraus
- Nur Programmteile, die zur Ausführung gelangen, werden getestet
- Je nach Umfang und Anzahl verknüpfter Teilsystem sind dynamische Testtechniken mit hohem Aufwand verbunden
- Es werden zunächst nur Fehlerwirkungen aufgedeckt. Die zugrundeliegenden Fehlerzustände müssen in einem separaten Arbeitsgang (Debugging) lokalisiert werden

Test-Arten
Neben den oben genannten Testtechniken können Tests noch bezüglich Ihres Zieles differenziert werden. Nach dieser Unterscheidung ergeben sich verschiedene Testarten. Dahingehend muss differenziert werden, ob der Fokus des Tests auf funktionalen oder nicht-funktionalen Merkmalen liegt.
1. Funktionale Tests
Funktionale Tests zielen auf die Überprüfung der reinen Funktionalität des Testobjekts ab. Die zugrunde- liegende Frage könnte daher lauten: „Macht das System das, was wir von ihm erwarten?“ Zu funktionalen Tests gehören neben der Prüfung auf Erfüllung der geforderten Funktionen noch weitere Testarten:
Sicherheitstests
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
Diese bewerten die Fähigkeit des Softwareprodukts mit ein oder mehreren spezifizierten Komponenten oder Systemen zu interagieren.
2. Nicht-funktionale Tests
Nicht-funktionale Testarten zielen auf die Überprüfung weiterer allgemeiner Qualitätsmerkmale von Software, ausser der reinen Funktionalität. Diese sind entlang der Qualitätsmerkmale in der ISO9126 definiert:
Effizienz
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ässigkeit
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.
Benutzbarkeit
Usability-Tests prüfen typischerweise, wie gut und wie einfach ein System für die Benutzer zu bedienen ist.
Änderbarkeit bzw. Wartbarkeit
Wird typischerweise durch Reviews und werkzeuggestützte statische Analyse geprüft (Wartbarkeitstests).
Übertragbarkeit
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).
3. Strukturelle und änderungsbezogene Tests
Nach ISTQB gibt es neben den funktionalen und nicht-funktionalen Tests noch zwei weitere Testarten: nämlich strukturelle und änderungsbezogene Tests.
Strukturelle Tests können in allen Teststufen angewandt werden. Strukturelle Tests setzen immer auch auf Modellen der Software auf. Ein grosses 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 Prüfen nach Änderungen bezeichnet. 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.



NEU in der Schweiz
Die schnellste Testautomatisierung für Tester & Entwickler in agilen Entwicklungsteams!
testOFFICE bietet Ihnen die Möglichkeit manuelles und automatisiertes Testen effizient für das Testmanagement im Softwarelebenszyklus einzusetzen.
Testschritte werden zu fachlichen Testbausteinen, den Testmodulen, zusammengefasst und ermöglichen einen hohen Grad an Wiederverwendung in unterschiedlichen Testfällen. Konkrete Testfälle, sprich die Testdaten steuern sowohl bei der manuellen als auch bei der automatisierten Testdurchführung den Testablauf. Eine lückenlose Protokollierung liefert Ihnen die bestmögliche Nachvollziehbarkeit der Testdurchführung.
Hier gibt es alle Informationen zu testOFFICE
Testautomatisierung als Baukasten!
Die schnellste Testautomatisierung für Tester & Entwickler in agilen Entwicklungsteams!
testOFFICE bietet Ihnen die Möglichkeit manuelles und automatisiertes Testen effizient für das Testmanagement im Softwarelebenszyklus einzusetzen.
Testschritte werden zu fachlichen Testbausteinen, den Testmodulen, zusammengefasst und ermöglichen einen hohen Grad an Wiederverwendung in unterschiedlichen Testfällen. Konkrete Testfälle, sprich die Testdaten steuern sowohl bei der manuellen als auch bei der automatisierten Testdurchführung den Testablauf. Eine lückenlose Protokollierung liefert Ihnen die bestmögliche Nachvollziehbarkeit der Testdurchführung.
Hier gibt es alle Informationen zu testOFFICE
Ihre Qualitätsicherung ist unsere Herausforderung! Haben wir Ihr Interesse geweckt?
Wir freuen uns auf Sie!
Fill out my online form.