Qualitätssicherung wird immer beliebter. Experten schätzen, dass die Zahl der Teststellen allein in den USA im nächsten Jahrzehnt um 25 % steigen wird. Wenn Sie das interessiert, fragen Sie sich vielleicht, wo Sie anfangen sollen, sich mit Softwaretests zu beschäftigen.
In diesem Artikel beantworte ich Fragen, die Ihnen den Einstieg in Softwaretests erleichtern. Ich erläutere, was Softwaretests sind, welche Testkonzepte besonders wichtig sind, und stelle einige Tools für Softwaretests vor, die Sie in Betracht ziehen sollten.
Softwaretests erklärt
Der Prozess, der alle statischen und dynamischen Aktivitäten im gesamten Lebenszyklus umfasst und sich mit der Planung, Vorbereitung und Bewertung einer Komponente oder eines Systems sowie zugehöriger Arbeitsergebnisse befasst, um festzustellen, dass sie festgelegte Anforderungen erfüllen, ihre Eignung für den vorgesehenen Zweck nachzuweisen und Fehler zu erkennen.
Glossar des ISTQB
Softwaretests spielen eine wichtige Rolle im Softwareentwicklungsprozess. Sie überprüfen, ob die Softwareanwendung wie vorgesehen funktioniert und die Anforderungen und Erwartungen der Endnutzer erfüllt.
Ziel ist es, Fehler, Irrtümer und Inkonsistenzen in der Softwareanwendung zu erkennen, bevor sie für die Öffentlichkeit freigegeben wird. Beim Testen wird die Software unter verschiedenen Bedingungen, Konfigurationen und in unterschiedlichen Szenarien ausgeführt, um sicherzustellen, dass sie korrekt und effizient funktioniert.
Wenn Sie neugierig sind, wie Sie im Bereich Softwaretests beginnen können, finden Sie hier eine Liste mit häufigen Fragen in Vorstellungsgesprächen zur Qualitätssicherung (und Antworten!).
Lebenszyklus von Softwaretests
Der Lebenszyklus von Softwaretests (STLC) ist der von Softwaretestern befolgte Prozess, um sicherzustellen, dass die zu testende Anwendung die festgelegten Qualitätsstandards und Anforderungen erfüllt. Der STLC besteht typischerweise aus mehreren Phasen, die sicherstellen sollen, dass die Softwareanwendung gründlich getestet wird und vor ihrer Freigabe für die Endnutzer das gewünschte Qualitätsniveau erreicht. Die folgenden Phasen gehören zum Lebenszyklus von Softwaretests:

Anforderungsanalyse
In dieser Phase analysieren die Softwaretester die Anforderungen und Spezifikationen. Sie ermitteln die funktionalen und nicht funktionalen Anforderungen, verstehen den Zweck der Softwareanwendung und die Zielgruppe und entwickeln entsprechende Testfälle und Testszenarien.
Testplanung
In dieser Phase legt das Testteam den Umfang der Tests, den Testansatz und die für das Testen erforderlichen Ressourcen fest. Der Testplan identifiziert außerdem die mit dem Testprozess verbundenen Risiken und Einschränkungen und legt den Zeitplan für die Tests fest.
Testentwurf
In dieser Phase entwirft das Testteam die Testfälle und Testszenarien auf Grundlage der Anforderungen und Spezifikationen. Außerdem ermittelt es die für die Tests erforderlichen Testdaten und entwickelt Testskripte, die den Testprozess automatisieren.
Testdurchführung
Die Tester führen die in der vorherigen Phase entworfenen Testfälle und Testszenarien aus. Die Testergebnisse werden dokumentiert, und alle in der Softwareanwendung gefundenen Mängel oder Fehler werden gemeldet.
Testberichterstattung
In dieser Phase erstellt das Testteam einen Bericht mit den Testergebnissen und den während der Tests ermittelten Mängeln. Der Bericht kann Empfehlungen zur Behebung der Mängel und zur Verbesserung der Gesamtqualität der Software enthalten.
Testabschluss
Dies ist die letzte Phase, in der das Testteam den Testprozess bewertet und Verbesserungsmöglichkeiten ermittelt. Außerdem erstellt es einen Testabschlussbericht, der den Testprozess und die Testergebnisse zusammenfasst.
Der Lebenszyklus von Softwaretests ist ein kontinuierlicher Prozess, der die Zusammenarbeit zwischen dem Testteam und dem Entwicklungsteam erfordert, um sicherzustellen, dass die Softwareanwendung das gewünschte Qualitäts- und Funktionsniveau erfüllt.
Arten von Softwaretests
Je nach Kontext und Anforderungen des Projekts verwenden die QA-Teams unterschiedliche Arten von Softwaretests.
Je nachdem, wie die Tests ausgeführt werden, können wir zwischen manuellen Tests und automatisierten Tests unterscheiden. Abhängig davon, was getestet wird, können wir zwischen funktionalen und nicht funktionalen Tests unterscheiden. Je nach verwendeten Methoden gibt es statische und dynamische Tests. Basierend auf dem Ansatz können wir zwischen White-Box- und Black-Box-Tests unterscheiden. Außerdem gibt es explorative Tests, Rauch- und Plausibilitätstests sowie Regressionstests. Je nach ihrer Verwendung können sich all diese Testarten überschneiden.
Manuelle Tests
Bei manuellen Tests wird der Test persönlich durchgeführt, ohne automatisierte Tools oder Skripte zu verwenden. Sie sind möglicherweise fehleranfälliger und dauern in der Regel länger.
Automatisierte Tests
Automatisierte Tests werden von einer Maschine durchgeführt, die zuvor erstellte Skripte ausführt. Dafür sind umfangreichere technische Kenntnisse erforderlich, beispielsweise Kenntnisse einer Programmiersprache und von Automatisierungstools wie Selenium. Sie können teurer sein als manuelle Tests, und bestimmte Aspekte des Testprozesses lassen sich nicht automatisieren.
Funktionale Tests
Funktionale Tests bedeuten, zu überprüfen, was die Anwendung tut. Funktionale Tests prüfen die Funktionen und Möglichkeiten der Softwareanwendung und stellen sicher, dass diese die Anforderungen und Spezifikationen erfüllen.
Nicht funktionale Tests
Im Gegensatz zu funktionalen Tests konzentrieren sich nicht funktionale Tests darauf, wie sich die App verhält. Je nach Hauptziel der Tests gibt es mehrere Unterarten nicht funktionaler Tests. In diesem Artikel werde ich nur einige davon behandeln.
Leistungstests: Messen die Reaktionszeit, den Durchsatz und die Skalierbarkeit der Softwareanwendung unter verschiedenen Lastbedingungen. Sie prüfen, ob die Softwareanwendung mehrere Benutzer und Transaktionen gleichzeitig verarbeiten kann, und stellen sicher, dass sie unter Spitzenlastbedingungen effizient funktioniert.
Lasttests: Simulieren reale Benutzerlasten und werden durchgeführt, um das Verhalten eines Systems unter normalen Bedingungen und Spitzenbedingungen zu ermitteln. Sie werden eingesetzt, um festzustellen, ob die für das Hosting der Anwendung verwendete Infrastruktur ausreichend ist, und zeigen, wie viele gleichzeitige Benutzer die Anwendung verarbeiten kann und welcher Umfang der Anwendung hinsichtlich Hardware, Netzwerkkapazität usw. erforderlich ist, damit mehr Benutzer auf die Anwendung zugreifen können.
Stresstests: Umfassen Tests über die normale Kapazität hinaus, oft bis zu einem Ausfallpunkt, um die Ergebnisse zu beobachten. Ziel ist es sicherzustellen, dass die Software unter Bedingungen unzureichender Rechenressourcen (wie Arbeitsspeicher, Speicherplatz, Netzwerkanfragen usw.) nicht abstürzt.
Sicherheitstests: Stellen sicher, dass die Softwareanwendung sicher und vor unbefugtem Zugriff geschützt ist. Sicherheitstests prüfen die Sicherheitsprotokolle der Softwareanwendung auf Schwachstellen und Sicherheitslücken und identifizieren potenzielle Sicherheitsbedrohungen.
Gebrauchstauglichkeitstests: Werden verwendet, um zu beurteilen, ob die Anwendung benutzerfreundlich ist. Sie prüfen, wie einfach Benutzer durch die Softwareanwendung navigieren und die vorgesehenen Funktionen effizient ausführen können.
Barrierefreiheitstests: Barrierefreiheitstests gelten als Teilbereich der Gebrauchstauglichkeitstests und werden durchgeführt, um sicherzustellen, dass die getestete Anwendung von Menschen mit Behinderungen verwendet werden kann.
Lokalisierungstests: Eine Art von Softwaretests, bei der das Verhalten der Software für eine bestimmte Region, einen bestimmten Kulturkreis oder eine bestimmte Spracheinstellung getestet wird. Zu den bei Lokalisierungstests zu berücksichtigenden Attributen gehören: korrekt übersetzter Text, Währung, Maßeinheiten, zulässige Sonderzeichen und Formate von Telefonnummern
Kompatibilitätstests: Testen, ob die Anwendung ausreichend geeignet ist, um in verschiedenen Browsern, Datenbanken, auf unterschiedlicher Hardware, unter verschiedenen Betriebssystemen, auf mobilen Geräten und in verschiedenen Netzwerken ausgeführt zu werden
Statische und dynamische Tests
Statische Tests beruhen auf der manuellen Untersuchung von Arbeitsprodukten (d. h. Reviews) oder der toolgestützten Bewertung des Codes (beispielsweise Code-Reviews) oder anderer Arbeitsprodukte (d. h. statische Analyse). Sie können unter anderem an Spezifikationen, Geschäftsanforderungen, Abnahmekriterien, Quellcode, Testplänen, Testfällen, Testskripten und Benutzerhandbüchern durchgeführt werden.
Dynamische Tests sind die tatsächliche Ausführung der getesteten Software. Sie können manuell oder automatisiert erfolgen, oder
White-Box-Tests und Black-Box-Tests
White-Box-Testing ist eine Testart, bei der der Tester Kenntnis über die interne Struktur des Anwendungscodes besitzt, während Black-Box-Testing durchgeführt wird, ohne dass der Quellcode verstanden werden muss. Für jede dieser Testarten kommen unterschiedliche Testtechniken zum Einsatz, beispielsweise Äquivalenzklassenbildung, Grenzwertanalyse und Entscheidungstabellen beim Black-Box-Testing sowie Anweisungsüberdeckung und Entscheidungsüberdeckung beim White-Box-Testing.
Exploratives Testen
Exploratives Testen ist eine erfahrungsbasierte Testart. Es umfasst minimale Planung und eine maximale Testdurchführung.
Die Aktivitäten zur Testgestaltung und -durchführung werden parallel ausgeführt, in der Regel ohne die Testbedingungen, Testfälle oder Testskripte formell zu dokumentieren.
Dieser Ansatz ist hilfreich, wenn keine oder nur unzureichende Spezifikationen vorhanden sind und die Zeit stark begrenzt ist. Außerdem eignet er sich hervorragend als Ergänzung zu automatisierten Tests.
Rauchtests
Rauchtests, manchmal auch als „Build-Verifikationstests“ oder „Vertrauenstests“ bezeichnet, sind ein Softwaretestprozess, bei dem die Tester überprüfen, ob der bereitgestellte Build stabil ist. Rauchtests bestätigen, dass mit weiteren Softwaretests fortgefahren werden kann. Sie bestehen aus einer minimalen Anzahl von Tests, die bei jedem Build ausgeführt werden, um kritische Softwarefunktionen zu testen.
Plausibilitätstests
Plausibilitätstests sind eine Art von Softwaretests, die nach der Bereitstellung eines Software-Builds mit geringfügigen Code- oder Funktionsänderungen durchgeführt werden, um zu bestätigen, dass die Fehler behoben wurden und durch diese Änderungen keine neuen Probleme eingeführt wurden. Ziel ist es, zu bestätigen, dass die vorgeschlagene Funktion ungefähr wie erwartet arbeitet.
Regressionstests
Regressionstests sind eine Art von Softwaretests, bei denen bestehende Funktionen erneut getestet werden, um zu überprüfen, ob sie nach Änderungen oder Aktualisierungen an der Softwareanwendung weiterhin korrekt funktionieren. Regressionstests stellen sicher, dass die neuen Änderungen oder Aktualisierungen die bestehende Funktionalität der Softwareanwendung nicht beeinträchtigt haben.
Kompatibilitätstests
Kompatibilitätstests werden eingesetzt, um sicherzustellen, dass die Softwareanwendung auf verschiedenen Plattformen, Geräten und in unterschiedlichen Browsern korrekt funktioniert. Dabei wird überprüft, ob die Softwareanwendung mit verschiedenen Hardware- und Softwarekonfigurationen kompatibel ist.

Teststufen
Softwaretests können je nach Umfang und Zielsetzung des Tests in verschiedene Stufen eingeteilt werden. Die folgenden Stufen sind bei Softwaretests üblich:
Modultests
Modultests sind die erste Teststufe und konzentrieren sich auf das isolierte Testen einzelner Komponenten oder Codeeinheiten. Modultests überprüfen, ob jede Codeeinheit wie erwartet funktioniert und die festgelegten Anforderungen erfüllt.
Integrationstests
Integrationstests konzentrieren sich auf das Testen der Interaktionen zwischen verschiedenen Modulen oder Komponenten der Softwareanwendung. Integrationstests überprüfen, ob die Module oder Komponenten wie vorgesehen zusammenarbeiten und die festgelegten Anforderungen erfüllen.
More Articles
- Die 10 besten Softwaretest-Tools für QA-Fachkräfte im Jahr 2026
- Die 10 besten Tools für automatisierte Tests im Testbericht für 2026
- Die 22 besten Softwaretest-Blogs 2026
- 10 beste Tools für automatisierte Tests im Test für 2026
- 10 besten Softwaretestunternehmen für das Outsourcing der Qualitätssicherung 2026
Systemtests
Systemtests sind die Teststufe, auf der die gesamte Softwareanwendung als vollständiges System getestet wird. Systemtests überprüfen, ob die Softwareanwendung die festgelegten Anforderungen erfüllt und in verschiedenen Szenarien wie erwartet funktioniert.
Benutzerakzeptanztests
Akzeptanztests sind die Teststufe, auf der die Softwareanwendung aus der Perspektive des Endbenutzers getestet wird. Akzeptanztests überprüfen, ob die Softwareanwendung die Bedürfnisse und Anforderungen des Endbenutzers erfüllt und in der Benutzerumgebung wie erwartet funktioniert. Zu den gängigen Arten von Benutzerakzeptanztests gehören Alpha- und Betatests.
Jede Teststufe ist wichtig und erfüllt im Softwaretestprozess einen bestimmten Zweck. Auf jeder Stufe sollten Tests durchgeführt werden, um sicherzustellen, dass die Softwareanwendung das gewünschte Maß an Qualität und Funktionalität erfüllt und in verschiedenen Szenarien wie erwartet funktioniert.
Grundsätze des Softwaretestens
Wie vom ISTQB definiert, gibt es sieben grundlegende Testprinzipien:
- Tests zeigen das Vorhandensein von Fehlern, nicht deren Abwesenheit: Sie können nicht garantieren, dass die Anwendung fehlerfrei ist, nur weil sie getestet wurde. Nach dem Testen kann jedoch das Vertrauen in das Produkt steigen.
- Erschöpfendes Testen ist unmöglich: Die meisten Anwendungen sind äußerst komplex, daher ist es unmöglich, jede mögliche Kombination und Variante zu testen, insbesondere weil auch die Zeit und die Ressourcen für das Testen begrenzt sind.
- Frühes Testen: Je früher Fehler und Mängel während des Softwareentwicklungslebenszyklus entdeckt werden, desto leichter lassen sie sich beheben. Genau hier macht Agile vieles richtig, da die Testaktivitäten sehr früh beginnen.
- Fehler treten gehäuft auf: Das bedeutet, dass Bereiche, in denen Fehler gefunden wurden, höchstwahrscheinlich noch mehr Fehler enthalten. Nach dem Pareto-Prinzip lassen sich 80 % der Fehler in 20 % der Funktionalitäten finden.
- Das Pestizid-Paradoxon: Wenn dieselben Tests wiederholt ausgeführt werden, ohne sie zu aktualisieren, werden sie wahrscheinlich keine neuen Probleme aufdecken.
- Testen ist kontextabhängig: Anwendungen werden abhängig von ihrem Kontext unterschiedlich getestet – beispielsweise testen Sie eine API anders als eine Benutzeroberfläche, und Webanwendungen werden anders getestet als mobile oder Desktop-Anwendungen.
- Trugschluss der Fehlerfreiheit: Kurz gesagt bedeutet die Tatsache, dass Fehler gefunden und behoben wurden, nicht, dass die Software für ihre Benutzer nützlich ist.
Fazit
Softwaretests sind ein sehr komplexes Gebiet, und es können viele verschiedene Testarten durchgeführt werden. Es ist wichtig, Ihre Teststrategie anzupassen, basierend auf dem Kontext des getesteten Softwareprodukts. Es gibt unzählige Ressourcen zum Thema Softwaretests, darunter Podcasts, Bücher und vieles mehr.
Wenn Ihnen dieser Artikel gefallen hat, abonnieren Sie bitte den Newsletter des QA Lead und erfahren Sie als Erste von neuen Beiträgen zu den Themen Testen und Qualität.
