Änderungsbezogenes Testen
R 2.0.0
Beschreibung
Als änderungsbezogenes Testen wird das Testen bezeichnet, das durch Änderung einer Komponente oder eines Systems veranlasst wird. Sowohl durch Fehlerkorrektur- bzw. Wartungsarbeiten als auch bei der Weiterentwicklung werden Teile vorhandener Software geändert oder neue Softwarebausteine ergänzt. Hier muss durch geeignete Wiederholung von Tests nachgewiesen werden, dass die vormaligen Fehler wie beabsichtigt tatsächlich korrigiert wurden (Fehlernachtest) und dass die Änderungen keine unbeabsichtigten Seiteneffekte haben (Regressionstests).
Fehlernachtest
-
Korrektur des Fehlers, Bau einer neuen Version.
-
Test einer Fehlerbehebung nach erfolgter Korrektur (mit allen Testfällen die den Fehler gefunden haben).
-
Ausführen der Schritte, durch die die Fehlerwirkung aufgedeckt wurde.
-
Test mit neuen Testfällen, z. B. wenn der Fehlerzustand eine fehlende Funktionalität war.
-
Der Fehlernachtest bestätigt, dass der Fehler erfolgreich behoben wurde.
-
Der Ablauf vorhandener Testfälle kann automatisiert werden, gegen mögliche Fehlermaskierung sollte durch ergänzende Testtechniken abgesichert werden.
Regressionstest
Regressionstests sind Softwaretests, mit denen Entwickler beurteilen, ob Änderungen am Code einer Anwendung oder an anderen zugehörigen Softwarekomponenten Fehler eingeführt haben.
Eine Anwendungsänderung oder -erweiterung kann unbeabsichtigte Nebeneffekte verursachen, die als Regressionen bezeichnet werden und durch Abhängigkeiten sogar in Komponenten oder Systemen auftreten können, die vom geänderten Code getrennt sind. Ein Regressionstest entdeckt diese unerwünschten Effekte. Folgende Anwendungsänderung oder Code-Modifikationen können Regressionstests erforderlich machen:
-
Einführen eines neuen Features
-
Beheben eines Fehlers.
-
Refactoring zur Steigerung der Leistung.
-
Ändern an der Hosting-Umgebung einer Anwendung.
Typischerweise findet ein fachlich tiefer Regressionstest in jedem Testzyklus statt. Eine sinnvolle Ergänzung stellt der Einsatz von Unit-Tests dar, die man als Unit-Regressionstests einsetzen kann. Sie beziehen sich jeweils nur auf eine Codeeinheit und können dadurch häufiger durchgeführt und wiederholt werden.
Regressionstests müssen mit der Geschwindigkeit mithalten können, mit der die Software entwickelt wird. Regressionstests können zeitaufwändig sein und Stunden oder Tage in Anspruch nehmen. Aus diesem Grund entscheiden sich manche Softwareteams dafür, Tests zu automatisieren, um die Testausführungszeit zu verkürzen und Mitarbeiter für andere Aufgaben freizustellen.
In iterativen und inkrementellen Softwareentwicklungslebenszyklus resultieren neue Features, Änderungen zu bestehenden Features und Code-Restrukturierung (Refactoring) in häufigen Änderungen am Code und führen dazu, dass Regressionstests mitunter nach jedem Check-In in die Build-Umgebung durchgeführt werden.
Quellen
-
ISTQB Glossary änderungsbezogener Test, abgerufen am 19.08.2024
-
TechTarget Germany GmbH Abb.1: Regressionstest vs. Retest, abgerufen am 01.02.2024