Von Abhay Talreja
28.12.2025
Mein neuester Artikel - Empirical Process Control - The Key to Agile Success
Testphase im SDLC - Software-Testprozess
Die Testphase im SDLC ist die Qualitätssicherungsphase, in der Software evaluiert wird, um Fehler zu finden und zu verifizieren, dass sie vor der Veröffentlichung funktioniert. Hier fangen Sie Bugs, bevor Ihre Benutzer es tun.
Warum ist das wichtig? Laut IBM-Forschung kostet das Beheben von Bugs nach dem Deployment 6x bis 100x mehr als sie während der Entwicklung zu fangen.
Die Testphase liegt zwischen Entwicklung und Deployment. Sie umfasst Unit-, Integrations-, System-, Akzeptanz-, Regressions- und Performance-Tests.
QA-Teams, Entwickler und Endbenutzer spielen hier alle eine Rolle. Das Ziel? Probleme früh fangen, wenn sie günstig zu beheben sind.
| Aspekt | Details |
|---|---|
| Definition | Phase, in der Software evaluiert wird, um Fehler zu finden und Qualität zu verifizieren |
| Position im SDLC | Nach Entwicklung/Programmierung, vor Deployment |
| Haupt-Testarten | Unit, Integration, System, UAT, Regression, Performance, Security |
| Dauer | Erheblicher Teil der Projektzeit (variiert je nach Methodik) |
| Schlüsselrollen | QA Engineers, Test Leads, Entwickler, Business Analysten, Endbenutzer |
| Primäres Ziel | Sicherstellen, dass Software Anforderungen erfüllt und fehlerfrei ist |
| Ergebnisse | Testpläne, Testfälle, Fehlerberichte, Testausführungsergebnisse |
| Auch genannt | QA-Phase, Validierungsphase, Qualitätssicherungsphase |
Dieser Leitfaden deckt alles über das Testen im Software Development Life Cycle (SDLC) ab. Sie lernen Testarten, Prozesse, Tools und Best Practices mit echten Beispielen.
Definition: Die Testphase ist die Phase, in der Sie Software evaluieren, um Fehler zu finden und zu verifizieren, dass sie die Anforderungen erfüllt, bevor sie veröffentlicht wird.
Sie ist die Brücke zwischen Entwicklung und Deployment. Ohne sie erreichen Bugs Ihre Benutzer.
Während dieser Phase führen QA Engineers, Entwickler und Stakeholder verschiedene Testarten durch. Diese reichen von Unit-Tests (Prüfung einzelner Code-Teile) bis zu Akzeptanztests (Bestätigung, dass Geschäftsanforderungen erfüllt sind).
Der Prozess folgt sechs Schritten: Planung, Testfall-Design, Umgebungs-Setup, Testausführung, Fehlermanagement und Abschluss mit Berichten.
Testen ist keine einzelne Aktivität. Es umfasst drei Typen:
Moderne Teams verwenden Automatisierung und Shift-Left-Praktiken, um Probleme früher zu fangen. Je früher Sie Bugs finden, desto günstiger sind sie zu beheben.
Wichtige Statistik: Laut CISQ-Forschung kostet schlechte Softwarequalität US-Unternehmen jährlich 2,41 Billionen Dollar. Frühes Testen verhindert die meisten dieser Verluste.
Testen ist Ihr Qualitätswächter. Es fängt Probleme, bevor sie die Produktion erreichen.
Aber es macht mehr als nur Bugs zu finden. Hier sind die sechs Kernrollen, die Testen spielt:
1. Qualitätssicherung
Testen verifiziert, dass Ihre Software die Anforderungen erfüllt. Es prüft sowohl funktionale Bedürfnisse (funktioniert es?) als auch nicht-funktionale Bedürfnisse (ist es schnell, sicher, benutzbar?).
2. Fehlererkennung
Früh gefundene Bugs kosten weniger zu beheben. Testen fängt Integrationsprobleme, Performance-Engpässe und Sicherheitslücken, bevor Benutzer es tun.
3. Risikominderung
Softwarefehler schaden Unternehmen. Testen reduziert dieses Risiko durch Validierung von Sicherheits-Compliance, Datenintegrität und Systemstabilität.
4. Anforderungsvalidierung
Entspricht die Software dem, was Stakeholder angefordert haben? Testen bestätigt, dass User Stories und Akzeptanzkriterien tatsächlich erfüllt sind.
5. Kostenreduzierung
Hier ist die Rechnung: Ein in der Testphase gefundener Bug kostet 6x weniger zu beheben als einer, der in der Produktion gefunden wird. Einige Studien zeigen, es ist bis zu 100x weniger.
6. Kontinuierliche Verbesserung
Testen bietet Feedback-Schleifen. Teams lernen, was schief gelaufen ist, identifizieren Muster und verbessern ihre Prozesse.
Was ist die reale Auswirkung?
| Metrik | Mit Testen | Ohne Testen |
|---|---|---|
| Fehlererkennung | 85%+ Bugs vor Release gefangen | Die meisten Bugs erreichen Benutzer |
| Kundenzufriedenheit | Höher - weniger Probleme in Produktion | Niedriger - ständige Beschwerden |
| Time to Market | Vorhersagbare Releases | Verzögerungen durch Produktionsprobleme |
| Wartungskosten | Niedriger - weniger Notfall-Fixes | 30-50% der Sprints mit Bug-Bekämpfung |
Testen folgt sechs Schritten. Jeder baut auf dem vorherigen auf.
Testplanung beantwortet drei Fragen: Was werden Sie testen? Wie werden Sie es testen? Wer wird testen?
Schlüsselaktivitäten:
Ergebnisse: Testplan, Risikobewertung, Ressourcenplan, Zeitplan
Hier erstellen Sie die eigentlichen Tests. Jeder Testfall beschreibt genau, was zu prüfen ist und welches Ergebnis zu erwarten ist.
Schlüsselaktivitäten:
Was gehört in einen Testfall?
Ergebnisse: Testfälle, Testdaten, RTM
Ihre Testumgebung sollte die Produktion spiegeln. Wenn nicht, werden Sie Bugs verpassen, die nur in der realen Welt auftreten.
Schlüsselaktivitäten:
Was Sie brauchen:
Ergebnisse: Konfigurierte Umgebung, Dokumentation, Smoke-Test-Ergebnisse
Hier führen Sie die Tests tatsächlich durch. Es ist der praktische Teil.
Schlüsselaktivitäten:
Best Practices:
Ergebnisse: Testergebnisse, Fehlerberichte, Nachweise
Einen Bug gefunden? Jetzt müssen Sie ihn verfolgen, bis er behoben ist. Jeder Fehler folgt einem Lebenszyklus.
Fehler-Lebenszyklus:
Neu → Zugewiesen → Offen → Behoben → Erneut testen → Verifiziert → Geschlossen
Manchmal werden Bugs wieder geöffnet, wenn der Fix nicht funktioniert hat. Das ist normal.
Wie man Fehler klassifiziert:
| Schweregrad | Priorität | Was es bedeutet | Beispiel |
|---|---|---|---|
| Kritisch | P1 | Systemabsturz, Datenverlust, Sicherheit | App stürzt beim Login ab |
| Hoch | P2 | Hauptfunktion defekt | Zahlungen werden nicht verarbeitet |
| Mittel | P3 | Funktion arbeitet mit Problemen | Falsche Berechnung |
| Niedrig | P4 | Kosmetische Probleme | Button leicht verschoben |
Ergebnisse: Fehlerberichte, Metriken, Ursachenanalyse
Testen ist abgeschlossen. Jetzt fassen Sie zusammen und dokumentieren, was passiert ist.
Schlüsselaktivitäten:
Wichtige zu verfolgende Metriken:
Ergebnisse: Zusammenfassungsbericht, Metriken-Dashboard, Lessons Learned
Lassen Sie uns über Zahlen sprechen. Laut Capers Jones (2025-Forschung) entstehen 70% der Softwarefehler während der Designphase.
Aber hier ist das Problem: Die meisten Teams testen erst, wenn die Entwicklung fast abgeschlossen ist. Bis dahin sind diese Design-Bugs teuer zu beheben.
Testen fängt diese Probleme früh. Es verhindert kostspielige Produktionsausfälle und schützt Ihren Ruf.
Reales Beispiel: Der CrowdStrike-Vorfall 2024 ließ 8,5 Millionen Windows-Geräte weltweit abstürzen. Fluggesellschaften, Banken und Krankenhäuser fielen aus. Ein fehlerhaftes Update, das besseres Testen hätte fangen können.
Es gibt viele Testarten. Jede dient einem anderen Zweck.
Hier ist, wann Sie welche verwenden:
| Testart | Ebene | Durchgeführt von | Wann | Zweck |
|---|---|---|---|---|
| Unit-Testing | Komponente | Entwickler | Während Entwicklung | Einzelne Code-Einheiten testen |
| Integrationstesting | Integration | Entwickler/QA | Nach Unit-Testing | Komponenteninteraktionen testen |
| Systemtesting | System | QA-Team | Nach Integration | Komplettes System testen |
| UAT | Akzeptanz | Endbenutzer/Kunden | Vor Release | Geschäftsanforderungen validieren |
| Regressionstesting | Alle Ebenen | QA/Automatisiert | Nach Änderungen | Sicherstellen, dass Fixes nichts kaputt machen |
| Performance-Testing | System | Performance Engineers | Vor Release | Geschwindigkeit, Skalierbarkeit, Stabilität testen |
| Security-Testing | System | Sicherheitsspezialisten | Durchgehend | Schwachstellen identifizieren |
Was ist es? Testen einzelner Code-Komponenten (Funktionen, Methoden, Klassen) in Isolation.
Entwickler schreiben diese Tests während des Programmierens. Sie sind schnell und laufen häufig.
Tools: JUnit (Java), pytest (Python), Jest (JavaScript)
Beispiel: Eine calculateTotal()-Funktion mit verschiedenen Eingaben testen, um zu verifizieren, dass sie Preise korrekt summiert.
Was ist es? Testen, wie verschiedene Module oder Komponenten zusammenarbeiten.
Unit-Tests bestehen einzeln, aber spielen sie gut zusammen? Integrationstesting findet es heraus.
Ansätze: Top-down, Bottom-up oder Sandwich
Beispiel: Testen, dass der Warenkorb korrekt mit Zahlungsabwicklung und Bestandssystemen kommuniziert.
Was ist es? Testen der kompletten, integrierten Anwendung von Ende zu Ende.
QA-Teams führen dies in einer Umgebung durch, die die Produktion spiegelt. Es deckt funktionale, Performance-, Usability- und Sicherheitsaspekte ab.
Beispiel: Den vollständigen Kaufablauf einer E-Commerce-Site testen - von der Suche bis zur Bestellbestätigung.
Was ist es? Die letzte Prüfung vor dem Release. Echte Benutzer (nicht Tester) verifizieren, dass die Software Geschäftsbedürfnisse erfüllt.
Dies ist eine Go/No-Go-Entscheidung. Wenn UAT fehlschlägt, wird nicht ausgeliefert.
Beispiel: Geschäftsbenutzer testen ein neues CRM, um sicherzustellen, dass es ihre täglichen Workflows unterstützt.
Was ist es? Erneutes Ausführen existierender Tests nach Code-Änderungen, um sicherzustellen, dass nichts kaputt gegangen ist.
Dies ist stark automatisiert. Es ist essentiell für CI/CD-Pipelines.
Beispiel: Nach dem Beheben eines Login-Bugs alle Tests durchführen, um zu bestätigen, dass Registrierung und Passwort-Reset noch funktionieren.
Was ist es? Testen von Geschwindigkeit, Skalierbarkeit und Stabilität unter Last.
Typen: Lasttest, Stresstest, Spike-Test, Ausdauertest
Tools: JMeter, LoadRunner, Gatling
Beispiel: Ein Online-Buchungssystem mit 10.000 gleichzeitigen Benutzern testen, um 2-Sekunden-Seitenladezeiten sicherzustellen.
Was ist es? Schwachstellen finden, bevor Angreifer es tun.
Schlüsselbereiche: Authentifizierung, Autorisierung, Verschlüsselung, SQL-Injection, XSS, CSRF
Tools: OWASP ZAP, Burp Suite, Nessus
Beispiel: Eine Banking-App auf SQL-Injection-Schwachstellen und schwache Verschlüsselung testen.
| Rolle | Was sie tun |
|---|---|
| QA Engineer | Tests entwerfen, ausführen, Bugs protokollieren |
| Test Lead | Strategie, Planung, Ressourcenzuweisung |
| Entwickler | Unit-Tests, Bugs beheben, Integrationstesting unterstützen |
| Business Analyst | Akzeptanzkriterien definieren, UAT unterstützen |
| Endbenutzer | UAT durchführen, reales Feedback geben |
| Performance Engineer | Lasttests, Performance-Tuning |
| Sicherheitsspezialist | Schwachstellenbewertungen, Penetrationstesting |
Testautomatisierung:
Performance:
Bug-Tracking:
CI/CD:
Manuelles Testen skaliert nicht. Automatisierung schon.
Mit Continuous Integration laufen Tests automatisch bei jedem Code-Commit. Bugs werden in Minuten gefangen, nicht in Tagen.
Warum automatisieren?
CI/CD Best Practices:
1. Früh testen (Shift-Left)
Warten Sie nicht, bis die Entwicklung abgeschlossen ist. Beginnen Sie mit dem Testen während der Anforderungen und des Designs.
Schreiben Sie Testfälle parallel zur Entwicklung. Je früher Sie Bugs fangen, desto günstiger sind sie.
2. Nach Risiko priorisieren
Nicht alle Features sind gleich. Testen Sie hochriskante, hochimpaktvolle Features zuerst.
Decken Sie kritische Geschäftsworkflows gründlich ab, bevor Sie zu Randfällen kommen.
3. Auf aussagekräftige Abdeckung zielen
100% Code-Abdeckung ist nicht das Ziel. Aussagekräftige Abdeckung ist es.
Verwenden Sie eine Requirements Traceability Matrix, um sicherzustellen, dass jede Anforderung Tests hat.
4. Die richtigen Dinge automatisieren
Automatisieren Sie stabile, repetitive Tests. Fokussieren Sie auf Regression, Smoke und Sanity Tests.
Automatisieren Sie keine Tests, die sich häufig ändern. Das ist Wartungshölle.
5. Gute Bug-Berichte schreiben
Reproduktionsschritte einschließen. Screenshots und Logs hinzufügen. Die Umgebung angeben.
Ein guter Bug-Bericht spart Entwicklern Stunden an Untersuchung.
6. Teamübergreifend zusammenarbeiten
Tester und Entwickler sollten keine Gegner sein. QA in Planung und Design einbeziehen.
Regelmäßige Statusreviews halten alle auf einer Linie.
7. Aus jedem Release lernen
Retrospektiven abhalten. Dokumentieren, was schief gelaufen ist. Teststrategie basierend auf Fehlermustern aktualisieren.
Selbst erfahrene Teams machen diese Fehler. Lernen Sie daraus.
Das Problem: Warten, bis die Entwicklung abgeschlossen ist, um mit dem Testen zu beginnen.
Warum es schadet: Spät gefundene Bugs kosten 6-100x mehr zu beheben. Teams hetzen durch das Testen und übersehen Dinge.
Die Lösung: Shift Left. Mit dem Testen während der Anforderungen beginnen. Testfälle parallel zur Entwicklung schreiben.
Das Problem: Testumgebungen entsprechen nicht der Produktion.
Warum es schadet: Bugs erscheinen in der Produktion, die beim Testen nie aufgetaucht sind. Teams verschwenden Zeit mit Debugging von Umgebungsproblemen.
Die Lösung: Infrastructure-as-Code verwenden. Mit Docker containerisieren. Umgebungen synchron mit der Produktion halten.
Das Problem: Alles ist manuell. Keine Automatisierung.
Warum es schadet: Manuelles Testen skaliert nicht. Regressionstesting wird zum Engpass.
Die Lösung: Regression und Smoke Tests automatisieren. Manuelles Testen für explorative Arbeit aufheben.
Das Problem: Bug-Berichten fehlen Details.
Warum es schadet: Entwickler können Probleme nicht reproduzieren. Bugs werden als "kann nicht reproduziert werden" geschlossen.
Die Lösung: Reproduktionsschritte, Screenshots, Logs und Umgebungsdetails verlangen. Vorlagen verwenden.
Das Problem: Nur testen, ob Features funktionieren. Nicht Performance, Sicherheit oder Barrierefreiheit testen.
Warum es schadet: Apps stürzen unter Last ab. Sicherheitslücken werden ausgenutzt. Benutzer mit Behinderungen können das Produkt nicht nutzen.
Die Lösung: Performance- und Security-Testing in jeden Release einbeziehen. Sicherheitsscans in CI/CD automatisieren.
Das Problem: Testdaten sind gefälscht, veraltet oder unrealistisch.
Warum es schadet: Tests bestehen mit synthetischen Daten, scheitern aber mit echten Eingaben. Randfälle bleiben ungetestet.
Die Lösung: Maskierte Produktionsdaten verwenden. Generatoren für Randfälle erstellen. Daten regelmäßig aktualisieren.
Das Problem: Tests existieren, sind aber nicht dokumentiert.
Warum es schadet: Wissen geht, wenn Leute gehen. Abdeckungslücken bleiben unbemerkt.
Die Lösung: Testpläne und Ergebnisse dokumentieren. Testfälle mit Anforderungen verknüpfen. Aktuell halten.
Das Problem: Tester und Entwickler reden nicht miteinander.
Warum es schadet: Bugs brauchen länger zum Beheben. Qualität wird "jemand anders' Job".
Die Lösung: QA in Entwicklungsteams einbetten. Tester in Design-Reviews und Sprint-Zeremonien einbeziehen.
Testen ist Ihre letzte Verteidigungslinie, bevor Software die Benutzer erreicht. Überspringen Sie es, und Bugs kosten Sie 6-100x mehr zu beheben.
Wichtige Erkenntnisse:
Das Fazit:
Organisationen mit starken Testpraktiken fangen 85%+ der Bugs vor dem Release. Sie liefern schneller, weil sie weniger Zeit mit Produktionsproblemen verbringen.
Schlechtes Testen kostet US-Unternehmen jährlich 2,41 Billionen Dollar. Seien Sie nicht Teil dieser Statistik.
Nach bestandenen Tests gehen Sie zur Deployment-Phase über. Dort geht Ihre getestete Software live.
Hier ist die im Video verwendete Präsentationsfolie. Wenn Sie Feedback haben, lassen Sie es uns auf unserem EasyRetro-Board (opens in a new tab) wissen.
What are the main types of testing in SDLC?
What is the role of testing in SDLC?
What is the difference between unit testing and integration testing?
How does automated testing benefit the SDLC?
What is continuous integration in software testing?
What is the difference between SDLC and STLC?
What are the 6 steps in the testing phase process?
What are the best practices for testing in the SDLC?
What tools are commonly used for testing in SDLC?
What is User Acceptance Testing (UAT) and why is it important?
How do you prioritize defects in testing?
What is regression testing and when should it be performed?
How does testing differ in Agile versus Waterfall methodologies?
What metrics should be tracked during the testing phase?
What is the cost impact of finding defects at different SDLC stages?