Regressionstest

Erneutes Testen eines bereits getesteten Programms bzw. einer Teilfunktionalität nach deren Modifikation. Ziel ist es nachzuweisen, dass durch die vorgenommenen Änderungen keine Fehlerzustände eingebaut oder (bisher maskierte Fehlerzustände) freigelegt wurden. Anmerkung: Ein Regressionstest wird durchgeführt, wenn die Software oder ihre Umgebung verändert wurde.

Present in sylabi

Beispiel

Nachdem ein Team einen Fehler bei der Zahlungsberechnung behoben und ausgeliefert hat, führt es zunächst die Tests erneut aus, die zuvor fehlgeschlagen waren (das ist der Fehlernachtest), und führt anschließend die vollständige Regressionssuite aus, die den übrigen Checkout-Ablauf abdeckt. Der Regressionstest verifiziert, dass unveränderte Bereiche — etwa die Rabattlogik und die Berechnung der Versandkosten — nach der Änderung weiterhin korrekt funktionieren. In der kontinuierlichen Integration laufen Regressionstests typischerweise bei jeder Codeänderung automatisch.

Häufige Fragen

Was ist der Unterschied zwischen Regressionstest und Fehlernachtest? Der Fehlernachtest führt die konkreten Testfälle erneut aus, die beim letzten Mal fehlgeschlagen sind, um zu verifizieren, dass die Korrektur wirkt. Der Regressionstest führt Tests auf bereits getesteter, unveränderter Funktionalität aus, um sicherzustellen, dass die Änderung keine neuen Fehler eingeführt hat. Nach einer Korrektur sind beide erforderlich.

Wann wird ein Regressionstest durchgeführt? Immer dann, wenn sich die Software oder ihre Umgebung ändert: neue Funktionen, Fehlerbehebungen, Konfigurationsänderungen oder Infrastruktur-Updates. Je größer die Änderung, desto wichtiger die Regressionsabdeckung.

Wie viel Regressionstest ist genug? Genug, um das Risiko der Änderung abzudecken. Teams beginnen oft mit einem Smoke-Test über die kritischen Abläufe und erweitern dann auf Basis der Änderungswirkung und der verfügbaren Testautomatisierung.

Ist der Regressionstest eine Teststufe? Er ist eine Testart, keine Stufe — Regressionstests können auf jeder Teststufe laufen, vom Komponententest bis zum Systemtest, und treten häufig in mehreren Phasen auf.

Verwandte Begriffe

  • Fehlernachtest — erneutes Ausführen zuvor fehlgeschlagener Tests zur Verifizierung einer Korrektur
  • Bestätigungstest — Verifizieren, dass ein Fehler tatsächlich behoben ist
  • Integrationstest — Testen der Schnittstellen zwischen integrierten Komponenten
  • Systemtest — Testen des vollständigen integrierten Systems
  • Testautomatisierung — der Einsatz von Software zur Testausführung, der häufige Regressionsläufe ermöglicht
  • Fehler — der Mangel, den eine Regressionssuite aufspüren soll

Learn more

A systematic review on regression test selection techniques by Emelie Engström, Per Runeson, Mats Skoglund in Information and Software Technology, Elsevier (2010) - 449+ citations
Comprehensive systematic review of regression test selection techniques with qualitative analysis and empirical evaluations

An empirical study of regression test selection techniques by Todd L. Graves, Mary Jean Harrold, Jung-Min Kim, Adam Porter, Gregg Rothermel in ACM Transactions on Software Engineering and Methodology (TOSEM) (2001) - 663+ citations
Controlled experiment examining costs and benefits of five regression test selection techniques with empirical data on trade-offs

A study of effective regression testing in practice by W. Eric Wong, Joseph R. Horgan, Saul London, Hiralal Agrawal in Proceedings of the Eighth International Symposium on Software Reliability Engineering (ISSRE) (1997) - 701+ citations
Highly influential early work establishing practical foundations for regression testing ensuring changes don't affect unchanged features

Regression Testing: The Ultimate Guide (March 2025)
Comprehensive guide covering regression testing basics, 8-step process, do's and don'ts, challenges, manual vs automated testing, and strategy design

Recommend more content related to this term