Was ist Regressionstest? Definition, Testfälle (Beispiel)

Inhaltsverzeichnis:

Anonim

Was ist Regressionstest?

REGRESSIONSTEST wird als eine Art von Softwaretest definiert, um zu bestätigen, dass eine kürzlich vorgenommene Programm- oder Codeänderung vorhandene Funktionen nicht beeinträchtigt hat.

Regressionstests sind nichts anderes als eine vollständige oder teilweise Auswahl bereits ausgeführter Testfälle, die erneut ausgeführt werden, um sicherzustellen, dass vorhandene Funktionen einwandfrei funktionieren.

Diese Tests werden durchgeführt, um sicherzustellen, dass neue Codeänderungen keine Nebenwirkungen auf die vorhandenen Funktionen haben. Es stellt sicher, dass der alte Code auch nach den letzten Codeänderungen noch funktioniert.

In diesem Tutorial werden wir lernen

  • Notwendigkeit von Regressionstests
  • Regressionstests durchführen
  • Auswahl von Testfällen für Regressionstests
  • Regressionstest-Tools
  • Regressionstests und Konfigurationsmanagement
  • Unterschied zwischen erneuten Tests und Regressionstests
  • Herausforderungen beim Regressionstest
  • Praktische Anwendung des Regressionstestbeispiels mit einem Video

Notwendigkeit von Regressionstests

Die Notwendigkeit von Regressionstests tritt hauptsächlich dann auf, wenn eine Änderung des Codes erforderlich ist und wir testen müssen, ob der geänderte Code den anderen Teil der Softwareanwendung beeinflusst oder nicht. Darüber hinaus sind Regressionstests erforderlich, wenn der Softwareanwendung eine neue Funktion hinzugefügt wird, und um Fehler zu beheben sowie Leistungsprobleme zu beheben.

Regressionstests durchführen

Um den Regressionstest durchzuführen , müssen wir zuerst den Code debuggen, um die Fehler zu identifizieren. Sobald die Fehler identifiziert wurden, werden die erforderlichen Änderungen vorgenommen, um sie zu beheben. Anschließend werden die Regressionstests durchgeführt, indem relevante Testfälle aus der Testsuite ausgewählt werden, die sowohl geänderte als auch betroffene Teile des Codes abdecken.

Die Softwarewartung ist eine Aktivität, die Verbesserungen, Fehlerkorrekturen, Optimierung und Löschung vorhandener Funktionen umfasst. Diese Änderungen können dazu führen, dass das System nicht ordnungsgemäß funktioniert. Daher wird ein Regressionstest erforderlich. Regressionstests können mit den folgenden Techniken durchgeführt werden:

Testen Sie alle erneut

  • Dies ist eine der Methoden für Regressionstests, bei denen alle Tests im vorhandenen Test-Bucket oder in der vorhandenen Suite erneut ausgeführt werden sollten. Dies ist sehr teuer, da es viel Zeit und Ressourcen erfordert.

Auswahl des Regressionstests

Regressionstestauswahl ist eine Technik, bei der einige ausgewählte Testfälle aus der Testsuite ausgeführt werden, um zu testen, ob der geänderte Code die Softwareanwendung beeinflusst oder nicht. Testfälle werden in zwei Teile unterteilt: wiederverwendbare Testfälle, die in weiteren Regressionszyklen verwendet werden können, und veraltete Testfälle, die in nachfolgenden Zyklen nicht verwendet werden können.

Priorisierung von Testfällen

  • Priorisieren Sie die Testfälle in Abhängigkeit von geschäftlichen Auswirkungen, kritischen und häufig verwendeten Funktionen. Durch die Auswahl der Testfälle anhand der Priorität wird die Regressionstestsuite erheblich reduziert.

Auswahl von Testfällen für Regressionstests

Aus Branchendaten ging hervor, dass eine große Anzahl der von Kunden gemeldeten Fehler auf Fehlerbehebungen in letzter Minute zurückzuführen ist, die Nebenwirkungen hervorrufen. Daher ist die Auswahl des Testfalls für Regressionstests eine Kunst und nicht so einfach. Effektive Regressionstests können durchgeführt werden, indem die folgenden Testfälle ausgewählt werden:

  • Testfälle mit häufigen Mängeln
  • Funktionen, die für die Benutzer besser sichtbar sind
  • Testfälle, die die Kernmerkmale des Produkts überprüfen
  • Testfälle von Funktionalitäten, die mehr und in jüngster Zeit geändert wurden
  • Alle Integrationstestfälle
  • Alle komplexen Testfälle
  • Randwerttestfälle
  • Eine Auswahl erfolgreicher Testfälle
  • Eine Stichprobe von Fehlertestfällen

Regressionstest-Tools

Wenn Ihre Software häufig geändert wird, steigen die Kosten für Regressionstests. In solchen Fällen erhöht die manuelle Ausführung von Testfällen sowohl die Testausführungszeit als auch die Kosten. Die Automatisierung von Regressionstestfällen ist in solchen Fällen die kluge Wahl. Der Umfang der Automatisierung hängt von der Anzahl der Testfälle ab, die für aufeinanderfolgende Regressionszyklen wiederverwendbar bleiben.

Im Folgenden sind die wichtigsten Tools aufgeführt, die sowohl für Funktions- als auch für Regressionstests in der Softwareentwicklung verwendet werden:

Selen : Dies ist ein Open Source-Tool zur Automatisierung von Webanwendungen. Selen kann für browserbasierte Regressionstests verwendet werden.

Quick Test Professional (QTP) : HP Quick Test Professional ist eine automatisierte Software zur Automatisierung von Funktions- und Regressionstestfällen. Es verwendet die VBScript-Sprache zur Automatisierung. Es ist ein datengesteuertes, schlüsselwortbasiertes Tool.

Rational Functional Tester (RFT) : Der Rational Functional Tester von IBM ist ein Java-Tool zur Automatisierung der Testfälle von Softwareanwendungen. Dies wird hauptsächlich zur Automatisierung von Regressionstestfällen verwendet und ist auch in Rational Test Manager integriert.

Regressionstests und Konfigurationsmanagement

Das Konfigurationsmanagement während des Regressionstests ist in agilen Umgebungen, in denen ein Code kontinuierlich geändert wird, unerlässlich. Beachten Sie Folgendes, um effektive Regressionstests sicherzustellen:

  • Code, dessen Regression getestet wird, sollte sich unter einem Konfigurationsmanagement-Tool befinden
  • Während der Regressionstestphase dürfen keine Änderungen codiert werden. Der Regressionstestcode muss vor Entwickleränderungen geschützt werden.
  • Die für Regressionstests verwendete Datenbank muss isoliert sein. Es dürfen keine Datenbankänderungen zugelassen werden

Unterschied zwischen erneuten Tests und Regressionstests:

Beim erneuten Testen wird die Funktionalität oder der Fehler erneut getestet, um sicherzustellen, dass der Code behoben ist. Wenn es nicht behoben ist, muss der Fehler erneut geöffnet werden. Wenn behoben, wird der Fehler geschlossen.

Regressionstests bedeuten, dass Sie Ihre Softwareanwendung testen, wenn sie eine Codeänderung erfährt, um sicherzustellen, dass der neue Code keine Auswirkungen auf andere Teile der Software hat.

Schauen Sie sich auch die vollständige Liste der Unterschiede hier an.

Herausforderungen beim Regressionstest:

Im Folgenden sind die wichtigsten Testprobleme für Regressionstests aufgeführt:

  • Mit aufeinanderfolgenden Regressionsläufen werden die Testsuiten ziemlich groß. Aus Zeit- und Budgetgründen kann nicht die gesamte Regressionstestsuite ausgeführt werden
  • Die Minimierung der Testsuite bei gleichzeitiger Erreichung der maximalen Testabdeckung bleibt eine Herausforderung
  • Die Bestimmung der Häufigkeit von Regressionstests, dh nach jeder Änderung oder jedem Build-Update oder nach einer Reihe von Fehlerkorrekturen, ist eine Herausforderung.

Praktische Anwendung des Regressionstestbeispiels mit einem Video

Klicken Sie hier, wenn das Video nicht zugänglich ist

Fazit:

Eine effektive Regressionsstrategie, die Unternehmen Zeit und Geld spart. Gemäß einer der Fallstudien im Bankbereich spart die Regression bis zu 60% Zeit bei Fehlerkorrekturen (die durch Regressionstests aufgefangen worden wären) und 40% beim Geld