Softwaretests sind ein Handwerk. Ein Softwaretester sollte wie ein Handwerker ein fundiertes Verständnis der ihm zur Verfügung stehenden Softwaretesttools haben. Wir haben eine Liste mit 9 verschiedenen Arten von Softwaretests und den von den jeweiligen Arten verwendeten Tools zusammengestellt, um QA-Analysten und allen anderen, die im Bereich der Softwaretests tätig sind, zu helfen, ihr Handwerk besser zu verstehen.
Warum brauchen wir Softwaretests?
Manchmal ist es wichtig, daran erinnert zu werden, warum das, was man tut, von Bedeutung ist. Tatsache ist, dass jede Software, die jemals entwickelt wurde und erfolgreich war, dies mit der Hilfe von Softwaretestern geschafft hat, die unermüdlich dafür gearbeitet haben, das Produkt auf einen möglichst hohen Qualitätsstandard zu bringen. Hier sind drei Gründe, warum Softwaretests wichtig sind.
- Kundenzufriedenheit: Bei der Entwicklung eines Projekts kann man sich leicht im Code-Dschungel verlieren und vergessen, dass der Benutzer auch mit der Funktionsweise der Software zufrieden sein muss. QA-Analysten und andere QA-Mitarbeiter übernehmen diese Aufgabe.
- Produktqualität: Jeder Beruf, in dem ein Team oder eine Einzelperson etwas von Grund auf neu erstellt, benötigt ein anderes Team, das die Fehler erkennt. Autoren brauchen Lektoren. Filmregisseure brauchen ebenfalls Lektoren. Softwareentwickler brauchen keine Lektoren, aber sie benötigen ein QA-Team, das eine objektive Perspektive einbringt und Fehler erkennt.
- Sicherheit: Mit jedem Tag scheint dieser Punkt zunehmend wichtiger zu werden. Kunden möchten die Gewissheit haben, dass die Informationen, die sie in die Software eingeben, und die Arbeit, die sie darin erledigen, privat bleiben. Ein Teil der QA besteht darin, sicherzustellen, dass die Kunden dieses Vertrauen haben.
Methoden für Softwaretests
Jede in diesem Artikel erwähnte Softwaretesttechnik gehört zu einer von zwei Hauptkategorien: statische Tests und dynamische Tests. Bevor wir die spezifischen Details der neun verschiedenen Softwaretesttechniken untersuchen, erkläre ich den Unterschied zwischen diesen beiden Methoden und an welcher Stelle im Softwareentwicklungszyklus sie zum Einsatz kommen.
Statische Tests
Statische Tests sind eine Art von Softwaretests, die früh im Entwicklungszyklus durchgeführt werden. Sie sind eine kostengünstige Möglichkeit, Fehler zu finden, bevor sie für das Entwicklungsteam zu großen Problemen werden. Statische Tests werden früh im Entwicklungszyklus durchgeführt, weil sie ohne vollständig funktionsfähige Software ausgeführt werden können. Genau, die Software kann bereits auf Fehler untersucht werden, bevor sie auch nur annähernd fertiggestellt ist. Sehen Sie, wie nützlich das sein kann?
Statische Tests werden auf zwei Arten durchgeführt:
- Manuelle Prüfungen: Der Code wird von einem QA-Analysten oder Tester analysiert.
- Automatische Analyse: Ein Testtool überprüft automatisch das Programmdokument und vermerkt alle Fehler.
Statische Tests sind:
- Werden durchgeführt, ohne den Code auszuführen.
- Kostengünstig.
- Hilfreich, um sicherzustellen, dass die Software die Verifikationsspezifikationen erfüllt.
- Eine Möglichkeit, die Ursache von Fehlern zu ermitteln.
Die meisten statischen Tests werden in Form von Dokumentenprüfungen durchgeführt. In diesem Szenario handelt es sich bei einem Dokument entweder um eine schriftliche Beschreibung eines Produkts (bekannt als Softwareentwurfsdokument) oder um den Quellcode des Programms. Hier sind einige Techniken für statische Tests, die jeder QA-Analyst kennen sollte:
- Informelle Prüfung: Für die informelle Prüfung gibt es keine strengen Richtlinien. Das Team sieht sich die Testdokumente an und kommentiert, was es sieht. Es gibt keine Dokumentation.
- Durchgang: Der Autor des Codes geht sein Dokument durch, und das QA-Team stellt Fragen und äußert Bedenken. Durchgänge sind in der Regel sehr informell und eine gute Möglichkeit, Themen mit Personen außerhalb des Softwarebereichs zu besprechen.
- Technische Prüfung: Technische Experten kommen zusammen und prüfen die technischen Spezifikationen des Codes. Die Durchführung zu einem frühen Zeitpunkt im Entwicklungsprozess stellt sicher, dass das Endprodukt die erforderlichen Spezifikationen erfüllt.
- Inspektionen: Die formalste aller Prüfungen. Ein Team ausgebildeter Moderatoren untersucht die Dokumente während des Treffens gründlich. Alle gefundenen Fehler werden offiziell dokumentiert und zur Überprüfung protokolliert. Es findet eine Nachkontrolle statt, um zu prüfen, ob die dokumentierten Fehler behoben wurden.
In den meisten Fällen sind statische Testüberprüfungen nützlich, weil das gesamte QA-Team das Produkt analysiert und auf Grundlage der erkannten Probleme sowie der vorhersehbaren Probleme Änderungen vorschlägt. Neben dem Vorteil, dass eine große Vielfalt an Stimmen in das Gespräch einbezogen wird, besteht ein weiterer Vorteil darin, dass alle Teammitglieder über den Fortschritt und das Design des Projekts auf dem Laufenden gehalten werden.
Verwenden Sie statisches Testen, wenn Ihr Team:
- sich früh im Entwicklungsprozess befindet.
- nach einer kostengünstigen Möglichkeit sucht, Fehler zu finden.
- über Software verfügt, die noch nicht ausgeführt werden kann.
- Fehler früh in der Entwicklung erkennen möchte.
Dynamisches Testen
Im Gegensatz zum statischen Testen ist dynamisches Testen eine Art des Softwaretests, bei der Code ausgeführt werden muss. Natürlich setzt dies voraus, dass die Entwicklung im Produktionszyklus weiter fortgeschritten ist. Der Vorteil des Testens von ausführbarem Code besteht darin, dass QA-Analysten untersuchen können, wie sich die Software während der Ausführung in einer realen Situation verhält. Dies ist eine hervorragende Möglichkeit, das funktionale Verhalten der Software und andere Dinge wie die CPU-Auslastung zu überprüfen. Beim dynamischen Testen wird geprüft, ob das erwartete Ergebnis mit dem Ergebnis im wirklichen Leben übereinstimmt. Das Hauptziel des dynamischen Testens besteht darin, zu überprüfen, ob das Produkt die Design- und Funktionsanforderungen erfüllt, die vor Beginn des Projekts festgelegt wurden.
Typischerweise gibt es vier Schritte, die beim dynamischen Testen von Systemsoftware durchgeführt werden und die QA-Analysten kennen sollten:
- Modultest: Beim Modultest wird die Software in die kleinstmöglichen Komponenten aufgeteilt und einzeln getestet. Durch diese Vorgehensweise können QA-Analysten sicher sein, dass jeder einzelne Teil der Software wie vorgesehen funktioniert. Wird ein Fehler gefunden, lässt er sich in dieser Entwicklungsphase leichter beheben, da der problematische Code schnell isoliert werden kann. Wenn das QA-Team mit dem dynamischen Testen beginnt (obwohl diese Testphase manchmal vom Entwicklungsteam übernommen wird), startet es normalerweise mit Modultests.
- Integrationstest: Nachdem die Software durch Modultests gründlich in ihre Komponenten zerlegt und getestet wurde, wird sie zu Gruppen zusammengefügt und erneut getestet. Während beim Modultest sichergestellt wird, dass jeder einzelne Teil ordnungsgemäß funktioniert, wird beim Integrationstest überprüft, ob diese einzelnen Teile wie vorgesehen miteinander kommunizieren. Stellen Sie sich dies wie den Zusammenbau eines Autos vor. In jeder Montagephase werden die Autoteile (der Motor, die Pedale, das Lenkrad) einzeln getestet. Anschließend wird das Auto als Ganzes zusammengebaut und getestet, um sicherzustellen, dass das Gaspedal ordnungsgemäß mit dem Motor kommuniziert (und dass dies auch für die Bremsen gilt!). Möchten Sie eine nahtlose Integration zwischen Modulen sicherstellen? Unsere empfohlenen Softwaretesttools können Ihnen genau dabei helfen.
- Systemtest: Der Systemtest ist die dritte Ebene des Softwaretests. In dieser Phase wird eine vollständige und vollständig integrierte Software getestet. Der Zweck des Systemtests besteht darin, sicherzustellen, dass die Software die Anforderungen erfüllt, also das tut, wofür sie entwickelt wurde.
- Abnahmetest: Die letzte Phase des dynamischen Testens. Beim Abnahmetest wird erneut anhand der Anforderungen getestet und sichergestellt, dass die Software einen akzeptablen Qualitätsstandard erreicht. Damit soll sichergestellt werden, dass keine Fehler durch die anderen Testphasen gelangt sind. Im Wesentlichen handelt es sich um eine zusätzliche Überprüfung zur Sicherheit.
Phasen des dynamischen Testens
- Modultest
- Integrationstest
- Systemtest
- Abnahmetest
Schneller Tipp: Verifikationstests vs. Validierungstests
Verifikationstests weisen alle wesentlichen Merkmale des statischen Testens auf. Der Zweck eines Verifikationstests besteht darin, alle Dokumente und den Code zu überprüfen. Dies wird mit denselben Methoden erreicht, die beim statischen Testen verwendet werden.
Ebenso weisen Validierungstests alle wesentlichen Merkmale des dynamischen Testens auf. Bei einem Validierungstest geht es darum, zu bestätigen, dass die Software eine hohe Qualität aufweist – genau darum geht es auch bei System- und Abnahmetests.
Nachdem wir nun einige wichtige Konzepte im Zusammenhang mit Softwaretests behandelt haben, sehen wir uns die 9 Arten von Softwaretests an, die jeder QA-Analyst kennen sollte.
9 Arten von Softwaretests, die jeder QA-Analyst kennen sollte:
- Blackbox-Test
- Whitebox-Test
- Greybox-Test
- Automatisierter Test
- Modultest
- Regressionstest
- Explorativer Test
- Funktionstest
- Gebrauchstauglichkeitstest
1. Black-Box-Testen
Black-Box-Testing ist eine Softwareteststrategie, bei der dem Tester der Aufbau des getesteten Softwaresystems unbekannt ist.
Erinnern Sie sich an die Szene am Ende von Pulp Fiction, in der Samuel Jackson den Koffer öffnet und sein Gesicht aufleuchtet? Als Zuschauer wissen wir, was der Koffer im Kontext des Films bedeutet und repräsentiert, erfahren aber nie, was sich darin befindet. Ein Black-Box-Tester ist der Zuschauer: Er weiß, was die Sache – ob Koffer oder Systemsoftware – tun soll, aber nicht, woraus sie besteht.

Ein Tester, der für das Black-Box-Testing einer Zeiterfassungssoftware verantwortlich ist, öffnet das Programm, ohne die interne Struktur der Software zu kennen, und probiert die verschiedenen Funktionen und Menüs aus, um sicherzustellen, dass sie erwartungsgemäß funktionieren. Der Grund für Black-Box-Testing ist, dass der Tester ohne genaue Kenntnis des Softwaredesigns mit ähnlichen Erwartungen an die Software herangeht wie der Endbenutzer.
Einige Vorteile des Black-Box-Testings sind:
- Tester benötigen keine umfassenden Kenntnisse von Programmiersprachen, da sie die Software aus der Perspektive eines Benutzers verwenden.
- Es ermöglicht eine unvoreingenommene Bewertung der Software, da der Softwaretest vom QA-Team und nicht von den Softwareentwicklern durchgeführt wird.
- Die Tester müssen mit der Entwicklung der Softwaresysteme nicht vertraut sein, sodass nur sehr wenig Vorlaufzeit erforderlich ist, bevor die Tests durchgeführt werden können.
Passender Artikel: Die 10 besten Black-Box-Testtools
2. White-Box-Testen
Beim White-Box-Testing versteht das QA-Mitglied die interne Struktur und das Design der getesteten Software vollständig. Es geht wie ein Prüfer vor und stellt sicher, dass jeder Teil des Programms ordnungsgemäß funktioniert. White-Box-Testing wird manchmal als Clear-Box-Testing bezeichnet, weil der Tester die Interaktionen zwischen den Einheiten beobachtet, während er die Software testet. Anders als beim Black-Box-Testing ist ein White-Box-Tester nicht annähernd so sehr auf die Benutzererfahrung bedacht.
Einige Vorteile des White-Box-Testings sind:
- Tests können bereits in frühen Entwicklungsphasen durchgeführt werden. Die grafische Benutzeroberfläche (GUI) muss noch nicht vollständig funktionsfähig sein.
- Die Tests sind gründlicher und gezielter als Black-Box-Tests.
Im Beispiel aus Pulp Fiction ist der White-Box-Tester die von Tim Roth gespielte Figur, die direkt auf das Innere des Koffers starrt.

3. Grey-Box-Testen
Beim Grey-Box-Testing verfügt der Tester über gewisse Kenntnisse der internen Struktur und des Designs der Software (White Box), testet aber weiterhin aus der Perspektive eines Endbenutzers (Black Box). So entstand das Grey-Box-Testing. Beim Grey-Box-Testing wird das Testdesign anhand der internen Struktur der Software entwickelt, während der eigentliche Test über die Benutzeroberfläche durchgeführt wird.
Wäre dies wieder jene berühmte Szene aus Pulp Fiction, wäre der Grey-Box-Tester weder das Publikum noch Tim Roth. Dieses Mal ist der Tester Quentin Tarintino selbst.
4. Automatisiertes Testen
Automatisierte Tests verwenden Software, um Aufgaben ohne manuelle Anweisungen eines Testers auszuführen.
Beim manuellen Testen schreibt der Tester den auszuführenden Code oder plant den Softwarepfad, dessen ordnungsgemäße Funktion er überprüfen möchte. Automatisierte Tests übernehmen solche Aufgaben im Namen der Tester. Hier ist eine kurze Liste automatisierter Software- und QA-Tools, die QA-Analysten kennen sollten:
Eine ausführlichere Übersicht über Tools für automatisiertes Testen finden Sie in der Liste der besten Tools für automatisiertes Testen, die Sie verwenden sollten.
5. Modultests
Einheitstest-Tools stellen sicher, dass jeder einzelne Teil der Software ordnungsgemäß funktioniert. Es ist äußerst wichtig, sicherzustellen, dass Einheitstests ordnungsgemäß durchgeführt werden, da das Entwicklungsteam andernfalls einen erheblichen Rückschlag erleiden wird, wenn es später feststellt, dass ein wichtiger Teil seiner Software nicht funktioniert.
6. Regressionstests
Regressionstest-Tools führen alte Tests auf neuen Builds aus, um sicherzustellen, dass die Software weiterhin wie vorgesehen funktioniert. Regressionstests schützen Entwickler vor verzögerten Auswirkungen, indem sie sicherstellen, dass eine Änderung an der Software an Punkt A nicht versehentlich etwas an Punkt D beschädigt hat.
Für einen QA-Analysten sollten zwei Schritte vorwärts und einer zurück nicht als etwas Negatives betrachtet werden. Indem man gelegentlich einen Schritt zurückgeht, stellt man sicher, dass man später nicht Gefahr läuft, fünfzig Schritte zurückzugehen.
7. Exploratives Testen
Exploratives Testen ist Testen für Menschen, die keine Planung mögen. In den meisten anderen Situationen wird der Testfall vor seiner Ausführung gründlich geplant. Hier nicht. Wenn ein Tester einen explorativen Test durchführt, erkundet er die Software ohne einen vordefinierten Plan und verwendet dafür spezielle Tools für exploratives Testen.
Der Vorteil des explorativen Testens besteht darin, dass der Tester seine Vorgehensweise direkt an seine Erkenntnisse anpassen kann, ohne einen weiteren Testfall schreiben zu müssen. Exploratives Testen ermöglicht außerdem Zusammenarbeit, die Entwicklung von Theorien und gemeinsame Arbeit in Echtzeit.
Da die agile Entwicklungstheorie immer wichtiger geworden ist, hat auch das explorative Testen an Bedeutung gewonnen. Indem QA-Tester ihre Intuition einsetzen können, werden viele interessante Fehler entdeckt, nach denen eine herkömmliche Testausführung möglicherweise nicht gesucht hätte.
Seien Sie gewarnt: Exploratives Testen kann ein hohes Maß an Kreativität erfordern.

8. Funktionstests
Funktionstests werden durchgeführt, um sicherzustellen, dass die Systemsoftware den Anforderungen des Projekts entspricht, die vor Beginn der Entwicklung festgelegt wurden.
Der Softwaretester überprüft, ob seine Eingaben der erwarteten Ausgabe entsprechen. Dies geschieht in einer der letzten Testphasen, entweder beim Systemtest oder beim Abnahmetest, und stellt ausschließlich eine Form des Black-Box-Testens dar, da es nicht darauf ankommt, wie die Software funktioniert, solange sie funktioniert.
9. Gebrauchstauglichkeitstests
Tester der Gebrauchstauglichkeit stellen sicher, dass die Designentscheidungen funktional und zugleich intuitiv sind.
Wenn Sie davon ausgehen, dass viele Nutzer Ihrer Software ihre Dokumente jede halbe Stunde sichern möchten, platzieren Sie die Sicherungsfunktion am besten an einer leicht zugänglichen Stelle, anstatt sie hinter vier Untermenüs zu verstecken.
In vielen Fällen wurde eine Software entwickelt, die fehlerlos funktioniert und einen wichtigen Bedarf auf dem Markt erfüllt, aus der Perspektive der Nutzer jedoch völlig unmöglich zu bedienen ist. Dies lässt sich durch einen Mangel an Gebrauchstauglichkeitstests während der Softwaretestphase erklären.
Letztendlich wird es unabhängig davon, wie gut eine Software technisch ist, schwierig sein, einen Markt zu finden, wenn die Nutzer sie nicht gerne verwenden.
Möchten Sie mehr?
Die Softwaretestbranche verändert sich ständig, und QA-Analysten müssen sich über aktuelle Trends auf dem Laufenden halten. Es gibt unzählige Ressourcen zum Softwaretesten, darunter Podcasts, Bücher, Newsletter und vieles mehr.
Abonnieren Sie den Newsletter von The CTO Club für Produktneuigkeiten, Tool-Bewertungen und weitere Zusammenstellungen von Ressourcen.
