Skip to main content

Software-Tests sind ein Handwerk. Ein Software-Tester, ähnlich wie ein Handwerker, sollte ein fundiertes Verständnis der Werkzeuge für Softwaretests besitzen, die ihm zur Verfügung stehen. Wir haben eine Liste von 9 verschiedenen Arten von Softwaretests sowie der Werkzeuge, die dabei jeweils verwendet werden, zusammengestellt, um QA-Analysten und allen anderen, die im Bereich Softwaretesting arbeiten, dabei zu helfen, ihr Handwerk besser zu verstehen.

Warum brauchen wir Software-Tests?

Manchmal ist es wichtig, sich daran zu erinnern, warum das, was man tut, von Bedeutung ist. Die einfache Tatsache ist, dass jede erfolgreiche Software irgendwann mithilfe von Software-Testern entwickelt wurde, die unermüdlich daran gearbeitet haben, dass das Produkt einen möglichst hohen Standard erreicht. Hier sind drei Gründe, warum Software-Tests wichtig sind. 

  1. Kundenzufriedenheit: Während der Entwicklung eines Projekts kann man sich leicht im Code verlieren und dabei vergessen, dass auch der Benutzer mit der Funktionsweise der Software zufrieden sein muss. QA-Analysten und andere Mitglieder des Qualitätssicherungsteams übernehmen diese Rolle. 
  2. Produktqualität: In jedem Beruf, in dem ein Team oder Einzelner etwas von Grund auf erschafft, wird ein weiteres Team benötigt, das ihre Fehler entdeckt. Autoren benötigen Lektoren. Filmregisseure brauchen ebenfalls Schnitttechniker. Softwareentwickler brauchen keine Lektoren, aber sie benötigen ein QA-Team, das eine objektive Sichtweise einnimmt und Fehler aufspürt. 
  3. Sicherheit: Mit jedem Tag scheint dieser Punkt immer wichtiger zu werden. Kunden möchten sicher sein, dass die Informationen, die sie in die Software eingeben, und die Arbeit, die sie darin erledigen, privat bleiben. Ein Teil der Qualitätssicherung besteht darin, dieses Vertrauen sicherzustellen. 

Software-Testmethoden

Jede in diesem Artikel erwähnte Art von Softwaretestverfahren gehört zu einer von zwei Hauptkategorien: Statisches Testen und dynamisches Testen. Bevor wir uns die genauen Einzelheiten der neun unterschiedlichen Testverfahren anschauen, werde ich den Unterschied zwischen diesen beiden Methoden erklären und aufzeigen, an welcher Stelle im Softwareentwicklungszyklus sie zum Einsatz kommen. 

Want more from The CTO Club?

Create a free account to finish this piece and join a community of CTOs and engineering leaders sharing real-world frameworks, tools, and insights for designing, deploying, and scaling AI-driven technology.

This field is for validation purposes and should be left unchanged.
Name*

Statisches Testen

Statisches Testen ist eine Art von Softwaretest, die früh im Entwicklungszyklus durchgeführt wird. Es ist eine kosteneffiziente Methode, um Fehler zu finden, bevor diese zu großen Problemen für das Entwicklungsteam werden. Statische Tests werden früh im Entwicklungszyklus eingesetzt, da sie ohne voll funktionsfähige Software durchgeführt werden können. Richtig, die Software kann bereits auf Fehler geprüft werden, bevor sie auch nur annähernd fertiggestellt ist. Siehst du, wie nützlich das sein kann? 

Statische Tests werden auf zwei Arten durchgeführt:

  • Manuelle Überprüfungen: Der Code wird von einem QA-Analysten oder Tester analysiert. 
  • Automatische Analyse: Ein Testwerkzeug überprüft automatisch das Programmdokument und protokolliert etwaige Fehler.

Statisches Testen ist:

  • Wird durchgeführt, ohne Code auszuführen.
  • Kosteneffizient.
  • Hilfreich, um sicherzustellen, dass die Software den Verifikationsspezifikationen entspricht.
  • Eine Möglichkeit, um die Ursachen von Fehlern zu identifizieren.

Die meisten statischen Tests werden in Form von Dokumentenprüfungen durchgeführt. In diesem Zusammenhang ist ein Dokument entweder eine schriftliche Beschreibung eines Produkts (bekannt als Software-Entwurfsspezifikation) oder der Quellcode des Programms. Hier sind einige statische Testmethoden, die jeder QA-Analyst kennen sollte:

  • Informelle Überprüfung:  Es gibt keine festen Regeln für die informelle Überprüfung. Das Team sieht sich die Testdokumente an und kommentiert, was aufgefallen ist. Es erfolgt keine Dokumentation.
  • Walkthrough: Der Autor des Codes geht das Dokument durch, und das QA-Team äußert Fragen und Bedenken. Walkthroughs sind typischerweise sehr informell und eine gute Möglichkeit, mit Personen außerhalb der Softwarebranche Themen zu besprechen. 
  • Technische Überprüfung: Technische Experten kommen zusammen und prüfen die technischen Spezifikationen des Codes. Dies zu einem frühen Zeitpunkt im Entwicklungsprozess stellt sicher, dass das Endprodukt die erforderlichen Spezifikationen erfüllt.
  • Inspektionen: Die formellste aller Überprüfungen. Ein Team aus geschulten Moderatoren inspiziert die Dokumente während des Meetings sorgfältig. Alle gefundenen Fehler werden formell dokumentiert und zur Prüfung protokolliert. Es gibt eine Nachverfolgung, um sicherzustellen, dass die dokumentierten Fehler auch bearbeitet wurden. 

In den meisten Fällen sind statische Testüberprüfungen hilfreich, da das gesamte QA-Team das Produkt analysiert und Änderungen auf Grundlage von festgestellten Problemen und prognostizierten Schwierigkeiten vorschlägt. Neben dem Vorteil, dass eine Vielzahl unterschiedlicher Stimmen an der Diskussion beteiligt sind, bringt dies den zusätzlichen Nutzen, dass alle Teammitglieder den aktuellen Stand und das Design des Projekts nachvollziehen können. 

Verwenden Sie statisches Testen, wenn Ihr Team:

  • Sich zu Beginn des Entwicklungsprozesses befindet.
  • Eine kosteneffiziente Möglichkeit sucht, Fehler zu finden.
  • Software hat, die noch nicht ausführbar ist.
  • Fehler frühzeitig in der Entwicklung aufdecken möchte.
Upgrade your inbox with more tech leadership wisdom for delivering better software and systems.

Upgrade your inbox with more tech leadership wisdom for delivering better software and systems.

This field is for validation purposes and should be left unchanged.
Name*

Dynamisches Testen

Im Gegensatz zum statischen Testen ist das dynamische Testen eine Art von Software-Test, der die Ausführung von Code erfordert. Dies setzt natürlich voraus, dass die Entwicklung bereits weiter im Produktionszyklus fortgeschritten ist. Der Vorteil, ausführbaren Code zu testen, besteht darin, dass QA-Analysten beobachten können, wie sich die Software unter realen Bedingungen verhält. So kann zum Beispiel das funktionale Verhalten der Software sowie Aspekte wie CPU-Auslastung überprüft werden. Beim dynamischen Testen wird kontrolliert, ob das erwartete mit dem tatsächlichen Ergebnis übereinstimmt. Das Hauptziel des dynamischen Testens ist zu verifizieren, dass das Produkt die zu Beginn des Projekts festgelegten Design- und Funktionsanforderungen erfüllt.

Typischerweise gibt es vier Schritte, die beim dynamischen Testen von Systemsoftware durchlaufen werden und die jedem QA-Analysten bekannt sein sollten:

  • Modultest (Unit Testing): Beim Modultest wird die Software in die kleinstmöglichen Komponenten zerlegt und diese einzeln getestet. Durch dieses Vorgehen haben QA-Analysten Gewissheit, dass jedes einzelne Teil der Software wie vorgesehen funktioniert. Und falls ein Fehler gefunden wird, lässt sich dieser in dieser Entwicklungsphase leichter beheben, da problematischer Code schnell isoliert werden kann. In der Regel beginnen QA-Teams das dynamische Testen mit Modultests (bisweilen übernimmt aber das Entwicklungsteam diesen Schritt).
  • Integrationstests: Nachdem die Software vollständig in Komponenten zerlegt und diese einzeln getestet wurden, werden die Komponenten zu Gruppen zusammengefügt und erneut getestet. Während beim Modultest jedes einzelne Teil korrekt arbeiten muss, wird beim Integrationstest geprüft, dass die Komponenten korrekt miteinander kommunizieren. Man kann es mit dem Zusammenbau eines Autos vergleichen: Bei jeder Phase der Montage werden die Autoteile (Motor, Pedale, Lenkrad) einzeln geprüft. Anschließend wird das Auto als Ganzes zusammengebaut und getestet, ob z. B. das Gaspedal korrekt mit dem Motor interagiert (und die Bremsen ebenso!). Sie möchten eine nahtlose Integration der Module sicherstellen? Unsere empfohlenen Softwaretest-Tools können Ihnen dabei helfen.
  • Systemtest: Der Systemtest ist die dritte Stufe der Softwaretests. In diesem Stadium wird die komplette, voll integrierte Software geprüft. Zweck des Systemtests ist es sicherzustellen, dass die Software den Anforderungen entspricht, also das tut, wofür sie entwickelt wurde. 
  • Abnahmetest (Acceptance Testing): Die letzte Phase des dynamischen Testens. Beim Abnahmetest wird nochmals geprüft, ob alle Anforderungen erfüllt und die Software einem akzeptablen Standard entspricht. Damit soll sichergestellt werden, dass keine Fehler durch die anderen Teststufen gerutscht sind. Im Grunde handelt es sich um eine zusätzliche Kontrolle aus Sicherheitsgründen. 

Phasen des dynamischen Testens

  1. Modultest (Unit Testing)
  2. Integrationstest
  3. Systemtest
  4. Abnahmetest

Schneller Tipp: Verifikations- vs. Validierungstests 

Verifikationstests teilen alle Schlüsseleigenschaften des statischen Testens. Ziel eines Verifikationstests ist es, sämtliche Dokumente und Codes zu überprüfen – und dies geschieht durch die gleichen Methoden wie beim statischen Testen.

Genauso haben Validierungstests alle Eigenschaften des dynamischen Testens gemeinsam. Bei einem Validierungstest geht es darum sicherzustellen, dass die Software von hoher Qualität ist, worauf auch der Systemtest und der Abnahmetest abzielen.

Nachdem wir nun einige zentrale Begriffe des Softwaretestens geklärt haben, werfen wir einen Blick auf die 9 Testarten, die jede QA-Analystin bzw. jeder QA-Analyst kennen sollte.

9 Typen des Softwaretestens, die jede QA-Analystin/jeder QA-Analyst kennen sollte:

  1. Black Box
  2. White Box
  3. Grey Box 
  4. Automatisiertes 
  5. Modultest
  6. Regressionstest
  7. Exploratives Testen
  8. Funktionstest
  9. Usability-Test

1. Black-Box-Testing

Black-Box-Testing ist eine Softwaretest-Strategie, bei der das Design des zu testenden Softwaresystems dem Tester unbekannt ist.

Erinnern Sie sich an die Szene am Ende von Pulp Fiction, in der Samuel Jackson den Aktenkoffer öffnet und sein Gesicht aufleuchtet? Als Zuschauer wissen wir, was der Aktenkoffer im Kontext des Films bedeutet und darstellt, aber wir erfahren nie, was sich darin befindet. Ein Black-Box-Tester ist wie der Zuschauer: Er weiß, was das Objekt (ob Aktenkoffer oder Systemsoftware) tun soll, aber nicht, woraus es besteht.

Foto des Black-Box-Testings, Arten von Softwaretests

Ein Tester, der für das Black-Box-Testing einer Zeiterfassungssoftware zuständig ist, öffnet das Programm ohne Kenntnisse über das interne Design der Software und testet verschiedene Funktionen und Menüs, um sicherzustellen, dass sie wie erwartet funktionieren. Der Grundgedanke hinter Black-Box-Testing ist, dass der Tester – ohne tiefes Wissen über das Systemdesign – an das Programm mit ähnlichen Erwartungen herangeht wie der Endnutzer. 

Zu den Vorteilen des Black-Box-Testing zählen:

  • Tester benötigen nur wenig Kenntnisse in Programmiersprachen, da sie die Software aus der Sicht eines Anwenders nutzen.
  • Die Software wird unvoreingenommen beurteilt, da der Test vom QA-Team und nicht von den Entwicklern selbst durchgeführt wird.
  • Die Tester müssen nicht beim Softwareentwicklungsprozess dabei sein, was bedeutet, dass nur eine sehr kurze Vorbereitungszeit nötig ist, bevor getestet werden kann.

Weiterlesen: 10 beste Black-Box-Testing-Tools

2. White-Box-Testing

Beim White-Box-Testing kennt das QA-Mitglied die interne Struktur und das Design der zu testenden Software genau. Es geht dabei wie ein Prüfer vor und stellt sicher, dass jeder Teil des Programms korrekt läuft. White-Box-Testing wird deshalb auch als Clear-Box-Testing bezeichnet, weil der Tester während der Prüfung die Interaktionen zwischen den Einheiten beobachtet. Im Gegensatz zum Black-Box-Testing kümmert sich ein White-Box-Tester weniger um die Nutzererfahrung. 

Zu den Vorteilen des White-Box-Testing gehören:

  • Tests können schon in sehr frühen Entwicklungsphasen durchgeführt werden. Die grafische Benutzeroberfläche (GUI) muss hierfür nicht vollständig funktionsfähig sein. 
  • Diese Tests sind gründlicher und systematischer als Black-Box-Tests.

Im Beispiel aus Pulp Fiction ist der White-Box-Tester die Figur von Tim Roth, der direkt in den Aktenkoffer schaut. 

3. Grey-Box-Testing

Beim Grey-Box-Testing kennt der Tester einige Aspekte der internen Struktur und des Designs der Software (White-Box), testet sie aber weiterhin aus der Sicht des Endnutzers (Black-Box). So entstand das Grey-Box-Testing. Beim Grey-Box-Testing wird der Test unter Berücksichtigung der internen Struktur entworfen, aber die eigentliche Ausführung erfolgt über die Benutzeroberfläche.

Auch hier, im berühmten Pulp-Fiction-Szenario, ist der Grey-Box-Tester weder der Zuschauer noch Tim Roth. Diesmal ist der Tester Quentin Tarantino selbst.  

4. Automatisiertes Testen

Automatisierte Tests nutzen Software, um Aufgaben ohne manuelle Anweisungen eines Testers auszuführen.

Beim manuellen Testen schreibt der Tester den Code, der ausgeführt werden soll, oder plant den Ablauf, den er testen möchte. Automatisierte Tests übernehmen diese Aufgaben für den Tester. Hier ein kurzer Überblick über automatisierte Software- und QA-Tools, die QA-Analysten kennen sollten:

Für eine ausführlichere Bewertung automatisierter Testwerkzeuge sehen Sie sich die Liste der besten automatisierten Test-Tools an, die Sie verwenden sollten.

5. Unit-Testing

Unit-Testing-Tools stellen sicher, dass jede einzelne Komponente der Software ordnungsgemäß funktioniert. Es ist äußerst wichtig, dass das Unit-Testing sorgfältig durchgeführt wird, denn ansonsten kann das Entwicklungsteam später erhebliche Rückschläge erleiden, wenn festgestellt wird, dass ein zentraler Teil der Software nicht funktioniert. 

6. Regressionstest

Regressionstest-Tools führen alte Tests auf neuen Builds aus, um sicherzustellen, dass die Software weiterhin wie beabsichtigt funktioniert. Die Durchführung von Regressionstests schützt Entwickler vor verdeckten Auswirkungen, indem sie sicherstellen, dass beispielsweise eine Änderung an Punkt A der Software nicht versehentlich etwas ganz anderes an Punkt D beschädigt hat. 

Für einen QA-Analysten sollte „zwei Schritte vor, einer zurück“ nicht als negativ angesehen werden. Indem man gelegentlich einen Schritt zurückgeht, stellt man sicher, dass man später nicht fünfzig zurückgehen muss.

7. Exploratives Testen

Exploratives Testen richtet sich an Menschen, die nicht gerne planen. In den meisten anderen Situationen wird der Testfall gründlich geplant, bevor er ausgeführt wird. Nicht so hier. Wenn ein Tester eine explorative Prüfung durchführt, erkundet er die Software ohne vorher festgelegten Plan mit speziellen explorativen Test-Tools.

Der Vorteil des explorativen Testens besteht darin, dass der Tester flexibel auf seine Erkenntnisse reagieren kann, ohne für jedes Szenario einen weiteren Testfall schreiben zu müssen. Exploratives Testen ermöglicht außerdem spontane Zusammenarbeit, Theoriebildung und gemeinsame Analysen.

Mit der zunehmenden Bedeutung der agilen Entwicklungstheorie hat auch das explorative Testen an Popularität gewonnen. Indem QA-Tester ihre Intuition einsetzen, werden viele interessante Fehler entdeckt, nach denen in traditionellen Testdurchläufen möglicherweise gar nicht gesucht worden wäre. 

Vorsicht: Exploratives Testen erfordert ein hohes Maß an Kreativität. 

8. Funktionaler Test

Funktionale Tests werden durchgeführt, um zu überprüfen, ob die Systemsoftware den ursprünglichen Projektanforderungen entspricht.

Der Softwaretester prüft, ob die Eingaben das erwartete Ergebnis liefern. Diese Tests finden in einer der letzten Testphasen statt – entweder bei der System- oder Abnahmetestung – und erfolgen ausschließlich als Black-Box-Test, da die Funktionsweise der Software irrelevant ist, solange sie funktioniert. 

9. Usability-Test

Usability-Tester sorgen dafür, dass die Designentscheidungen sowohl funktional als auch intuitiv sind.

Wenn Sie erwarten, dass viele Nutzer ihre Dokumente alle halbe Stunde sichern möchten, sollte die Backup-Funktion leicht erreichbar sein und nicht in vier Untermenüs versteckt werden. 

Oft wurde eine Software entwickelt, die technisch einwandfrei funktioniert und einen wichtigen Bedarf am Markt abdeckt, aber aus Anwendersicht völlig unverständlich ist. Das lässt sich meist durch mangelnde Usability-Tests in der Testphase erklären.

Am Ende des Tages gilt: So gut eine Software technisch auch ist – wenn sie keinen Spaß macht zu bedienen, wird sie sich kaum am Markt durchsetzen.

Lust auf mehr?

Die Softwaretest-Branche befindet sich im ständigen Wandel und QA-Analysten müssen immer auf dem aktuellen Stand bleiben. Es gibt unzählige Ressourcen zum Thema Softwaretests, darunter Podcasts, Bücher und vieles mehr.

Abonnieren Sie den CTO Club Newsletter für Produkt-Updates, Tool-Bewertungen und weitere nützliche Ressourcen.

Need expert help selecting the right Testing Software?

We’ve joined up with Crozdesk.com to give all our readers (yes, you!) access to Crozdesk’s software advisors. Just use the form below to share your needs, and they will contact you at no cost or commitment. You will then be matched and connected to a shortlist of vendors that best fit your company, and you can access exclusive software discounts!