what is regression testing
Was ist Regressionstest?
Regressionstests sind Tests, mit denen überprüft wird, ob eine Codeänderung in der Software die vorhandenen Funktionen des Produkts nicht beeinträchtigt. Dies soll sicherstellen, dass das Produkt mit neuen Funktionen, Fehlerkorrekturen oder Änderungen an der vorhandenen Funktion einwandfrei funktioniert. Zuvor ausgeführte Testfälle werden erneut ausgeführt, um die Auswirkungen von Änderungen zu überprüfen.
=> Klicken Sie hier, um die vollständige Testplan-Lernserie anzuzeigen
Regressionstests sind Softwaretests, bei denen Testfälle erneut ausgeführt werden, um zu überprüfen, ob die vorherige Funktionalität der Anwendung ordnungsgemäß funktioniert und die neuen Änderungen keine neuen Fehler verursacht haben.
Dieser Test kann für einen neuen Build durchgeführt werden, wenn sich die ursprüngliche Funktionalität erheblich ändert, selbst bei einer einzelnen Fehlerbehebung.
Regression bedeutet, die unveränderten Teile der Anwendung erneut zu testen.
Was du lernen wirst:
- In dieser Serie behandelte Tutorials
- Regressionstest - Übersicht
- Wann soll dieser Test durchgeführt werden?
- Können Regressionstests manuell durchgeführt werden?
- Tools für automatisierte Regressionstests
- Warum der Regressionstest?
- Arten von Regressionstests
- Wie viel Regression ist erforderlich?
- Was machen wir bei der Regressionsprüfung?
- Regressionstesttechniken
- Wie wähle ich eine Regressionstestsuite aus?
- Wie führe ich Regressionstests durch?
- Regression in Agile
- Vorteile
- Nachteile
- Regression der GUI-Anwendung
- Unterschied zwischen Regression und erneutem Testen
- Regressionstestplanvorlage (TOC)
- Fazit
- Literatur-Empfehlungen
In dieser Serie behandelte Tutorials
Tutorial Nr. 1: Was ist Regressionstest? (Dieses Tutorial)
Tutorial # 2: Regressionstest-Tools
Tutorial # 3: Wiederholungstest gegen Regressionstest
Tutorial # 4: Automatisierte Regressionstests in Agile
Regressionstest - Übersicht
Der Regressionstest ist wie eine Verifizierungsmethode. Testfälle werden im Allgemeinen automatisiert, da Testfälle immer wieder ausgeführt werden müssen und das manuelle Ausführen derselben Testfälle immer wieder zeitaufwändig und langwierig ist.
Zum Beispiel, Stellen Sie sich ein Produkt X vor, bei dem eine der Funktionen darin besteht, Bestätigungs-, Annahme- und versendete E-Mails auszulösen, wenn Sie auf die Schaltflächen Bestätigen, Akzeptieren und Versenden klicken.
In der Bestätigungs-E-Mail tritt ein Problem auf. Um dieses Problem zu beheben, werden einige Codeänderungen vorgenommen. In diesem Fall müssen nicht nur die Bestätigungs-E-Mails getestet werden, sondern auch Akzeptanz- und versendete E-Mails, um sicherzustellen, dass die Änderung des Codes keine Auswirkungen auf sie hat.
Regressionstests sind nicht von Programmiersprachen wie Java, C ++, C # usw. abhängig. Hierbei handelt es sich um eine Testmethode, mit der das Produkt auf Änderungen oder Aktualisierungen getestet wird. Es wird überprüft, ob Änderungen an einem Produkt die vorhandenen Module des Produkts nicht beeinflussen.
Das Überprüfen, ob die Fehler behoben sind und die neu hinzugefügten Funktionen in der vorherigen Arbeitsversion der Software keine Probleme verursacht haben.
Tester führen Funktionstests durch, wenn ein neuer Build zur Überprüfung verfügbar ist. Mit diesem Test sollen die Änderungen überprüft werden, die an der vorhandenen Funktionalität und der neu hinzugefügten Funktionalität vorgenommen wurden.
Wenn dieser Test abgeschlossen ist, sollte der Tester überprüfen, ob die vorhandene Funktionalität wie erwartet funktioniert und die neuen Änderungen keinen Funktionsfehler verursacht haben, der vor dieser Änderung funktioniert hat.
Der Regressionstest sollte Teil des Freisetzungszyklus sein und muss bei der Testschätzung berücksichtigt werden.
Wann soll dieser Test durchgeführt werden?
Regressionstests werden normalerweise nach Überprüfung von Änderungen oder neuen Funktionen durchgeführt. Dies ist jedoch nicht immer der Fall. Für die Veröffentlichung, die Monate in Anspruch nimmt, müssen Regressionstests in den täglichen Testzyklus aufgenommen werden. Bei wöchentlichen Releases können Regressionstests durchgeführt werden, wenn der Funktionstest für die Änderungen beendet ist.
Die Regressionsprüfung ist eine Variante des Wiederholungstests (bei der lediglich ein Test wiederholt wird). Beim erneuten Testen kann der Grund alles sein. Angenommen, Sie haben eine bestimmte Funktion getestet und es war das Ende des Tages. Sie konnten den Test nicht beenden und mussten den Prozess stoppen, ohne zu entscheiden, ob der Test bestanden oder nicht bestanden wurde.
Wenn Sie am nächsten Tag zurückkommen, führen Sie den Test erneut durch. Das bedeutet, dass Sie einen zuvor durchgeführten Test wiederholen. Das einfache Wiederholen eines Tests ist ein erneuter Test.
Der Regressionstest ist im Kern eine Art Wiederholungstest. Nur für den besonderen Anlass hat sich etwas in der Anwendung / im Code geändert. Es kann Code, Design oder irgendetwas sein, das den Gesamtrahmen des Systems bestimmt.
Ein in dieser Situation durchgeführter Wiederholungstest, um sicherzustellen, dass die Änderung keine Auswirkungen auf etwas hat, das bereits zuvor funktioniert hat, wird als Regressionstest bezeichnet. Die häufigsten Gründe, warum dies durchgeführt werden könnte, sind, dass neue Versionen des Codes erstellt wurden (Erweiterung des Umfangs / der Anforderung) oder Fehler behoben wurden.
Können Regressionstests manuell durchgeführt werden?
Ich habe gerade einen dieser Tage in meiner Klasse unterrichtet, und mir kam die Frage: 'Kann Regression manuell durchgeführt werden?'
Ich beantwortete die Frage und wir gingen weiter in der Klasse. Alles schien in Ordnung zu sein, aber irgendwie quälte mich diese Frage eine ganze Weile später.
Über die vielen Chargen hinweg kommt diese Frage mehrmals auf verschiedene Arten. Einige von ihnen sind:
- Benötigen wir ein Tool, um die Testausführung durchzuführen?
- Wie werden Regressionstests durchgeführt?
- Selbst nach einer ganzen Testrunde fällt es Neulingen schwer zu erkennen, was genau ein Regressionstest ist.
Und natürlich die ursprüngliche Frage:
- Kann dieser Test manuell durchgeführt werden?
Zunächst, Test Ausführung Dies ist ein einfacher Vorgang, bei dem Sie Ihre Testfälle verwenden und diese Schritte auf dem AUT ausführen, die Testdaten bereitstellen und das auf dem AUT erzielte Ergebnis mit dem in Ihren Testfällen genannten erwarteten Ergebnis vergleichen.
Abhängig vom Vergleichsergebnis legen wir den Status des Testfalls Bestanden / Nicht Bestanden fest. Die Testausführung ist so einfach, dass für diesen Prozess keine speziellen Tools erforderlich sind.
Tools für automatisierte Regressionstests
Der automatisierte Regressionstest ist der Testbereich, in dem wir die meisten Testbemühungen automatisieren können. Wir führen alle zuvor ausgeführten Testfälle in einem neuen Build aus.
Dies bedeutet, dass wir einen Testfallsatz zur Verfügung haben und das manuelle Ausführen dieser Testfälle zeitaufwändig ist. Wir kennen die erwarteten Ergebnisse, daher ist die Automatisierung dieser Testfälle zeitsparend und eine effiziente Regressionstestmethode. Der Umfang der Automatisierung hängt von der Anzahl der Testfälle ab, die über die Zeit hinweg anwendbar bleiben.
Wenn die Testfälle von Zeit zu Zeit variieren, nimmt der Anwendungsbereich weiter zu, und die Automatisierung des Regressionsverfahrens ist Zeitverschwendung.
Die meisten Regressionstest-Tools sind vom Typ Aufnahme und Wiedergabe. Sie zeichnen die Testfälle auf, indem Sie durch das AUT (zu testende Anwendung) navigieren und überprüfen, ob die erwarteten Ergebnisse vorliegen oder nicht.
Werkzeuge
- Selen
- Katalog Studio
- AdventNet QEngine
- Regressionstester
- vTest
- Wasser
- actiWate
- Rationaler Funktionstester
- SilkTest
- TimeShiftX
Die meisten davon sind Funktions- und Regressionstestwerkzeuge.
Empfohlene Lektüre => Hier finden Sie eine Liste der wichtigsten Regressionstools
Das Hinzufügen und Aktualisieren von Regressionstestfällen in einer Automatisierungstestsuite ist eine mühsame Aufgabe. Bei der Auswahl eines Automatisierungstools für Regressionstests sollten Sie prüfen, ob Sie mit dem Tool die Testfälle problemlos hinzufügen oder aktualisieren können.
Was ist Linux und Unix-Betriebssystem
In den meisten Fällen müssen wir automatisierte Regressionstestfälle aufgrund häufiger Änderungen im System häufig aktualisieren.
SCHAU DAS VIDEO
Eine detailliertere Erläuterung der Definition anhand eines Beispiels finden Sie im FolgendenRegressionstest Video::
Warum der Regressionstest?
Die Regression wird eingeleitet, wenn ein Programmierer einen Fehler behebt oder dem System einen neuen Code für neue Funktionen hinzufügt.
Die neu hinzugefügte und vorhandene Funktionalität kann viele Abhängigkeiten aufweisen.
Es ist ein Qualitätsmaß, um zu überprüfen, ob der neue Code mit dem alten Code übereinstimmt, damit der nicht geänderte Code nicht beeinträchtigt wird. Meistens hat das Testteam die Aufgabe, die Änderungen in letzter Minute im System zu überprüfen.
In einer solchen Situation ist es erforderlich, nur den betroffenen Anwendungsbereich zu testen, um den Testprozess rechtzeitig abzuschließen und alle wichtigen Systemaspekte abzudecken.
Dieser Test ist sehr wichtig, wenn die Anwendung kontinuierlich geändert / verbessert wird. Die neue Funktionalität sollte den vorhandenen getesteten Code nicht negativ beeinflussen.
Eine Regression ist erforderlich, um die Fehler zu finden, die aufgrund einer Änderung des Codes aufgetreten sind. Wenn diese Tests nicht durchgeführt werden, kann es in der Live-Umgebung zu kritischen Problemen kommen, die den Kunden in Schwierigkeiten bringen können.
Beim Testen einer Online-Website meldet ein Tester ein Problem, dass der Preis des Produkts nicht korrekt angezeigt wird, d. H. Er zeigt einen niedrigeren Preis als den tatsächlichen Preis des Produkts an und muss bald behoben werden.
Sobald der Entwickler das Problem behoben hat, muss es erneut getestet werden. Regressionstests sind ebenfalls erforderlich, da die Überprüfung des Preises auf der gemeldeten Seite korrigiert worden wäre. Auf der Übersichtsseite, auf der die Gesamtsumme angezeigt wird, wird möglicherweise ein falscher Preis angezeigt mit den anderen Gebühren oder der an den Kunden gesendeten Post hat immer noch der falsche Preis.
In diesem Fall muss der Kunde den Verlust tragen, wenn dieser Test nicht durchgeführt wird, da die Website die Gesamtkosten mit dem falschen Preis berechnet und derselbe Preis per E-Mail an einen Kunden geht. Sobald der Kunde akzeptiert, dass das Produkt online zu einem niedrigeren Preis verkauft wird, ist dies ein Verlust für den Kunden.
Diese Tests spielen also eine große Rolle und sind sehr wichtig und wichtig.
Arten von Regressionstests
Nachstehend sind die verschiedenen Arten der Regression aufgeführt:
- Einheitenregression
- Teilweise Regression
- Vollständige Regression
# 1) Einheitenregression
Die Regression der Einheiten erfolgt während des Unit Testing Phase und Code werden isoliert getestet, d. h. alle Abhängigkeiten von der zu testenden Einheit werden blockiert, so dass die Einheit ohne Diskrepanz einzeln getestet werden kann.
# 2) Teilweise Regression
Eine teilweise Regression wird durchgeführt, um zu überprüfen, ob der Code auch dann einwandfrei funktioniert, wenn die Änderungen am Code vorgenommen wurden und diese Einheit in den unveränderten oder bereits vorhandenen Code integriert ist.
# 3) Komplette Regression
Eine vollständige Regression wird durchgeführt, wenn eine Änderung des Codes für eine Reihe von Modulen vorgenommen wird und auch wenn die Änderungseffekte einer Änderung in einem anderen Modul ungewiss sind. Das Produkt als Ganzes wird zurückgeführt, um Änderungen aufgrund des geänderten Codes zu überprüfen.
Wie viel Regression ist erforderlich?
Dies hängt vom Umfang der neu hinzugefügten Funktionen ab.
Wenn der Umfang eines Fixes oder einer Funktion zu groß ist, ist auch der betroffene Anwendungsbereich ziemlich groß, und die Tests sollten gründlich durchgeführt werden, einschließlich aller Anwendungstestfälle. Dies kann jedoch effektiv entschieden werden, wenn der Tester von einem Entwickler Eingaben zu Umfang, Art und Umfang der Änderungen erhält.
Da es sich um sich wiederholende Tests handelt, können Testfälle automatisiert werden, sodass eine Reihe von Testfällen allein auf einem neuen Build problemlos ausgeführt werden kann.
Regressionstestfälle müssen sehr sorgfältig ausgewählt werden, damit die maximale Funktionalität in einem minimalen Satz von Testfällen abgedeckt wird. Diese Testfälle müssen für neu hinzugefügte Funktionen kontinuierlich verbessert werden.
Es wird sehr schwierig, wenn der Anwendungsbereich sehr groß ist und das System kontinuierlich inkrementiert oder gepatcht wird. In solchen Fällen müssen selektive Tests durchgeführt werden, um Testkosten und Zeit zu sparen. Diese selektiven Testfälle werden basierend auf den Verbesserungen am System und den Teilen ausgewählt, auf die es am meisten Einfluss haben kann.
Was machen wir bei der Regressionsprüfung?
- Führen Sie die zuvor durchgeführten Tests erneut aus
- Vergleichen Sie die aktuellen Ergebnisse mit zuvor ausgeführten Testergebnissen
Dies ist ein kontinuierlicher Prozess, der in verschiedenen Phasen des gesamten Lebenszyklus von Softwaretests durchgeführt wird.
Eine bewährte Methode ist die Durchführung eines Regressionstests nach dem Vernunft- oder Rauchprüfung und am Ende der Funktionsprüfung für eine Kurzversion.
Um effektive Tests durchzuführen, muss die Regression Versuchsplan sollte erstellt werden. Dieser Plan sollte die Regressionsteststrategie und die Ausstiegskriterien umreißen. Leistungstests sind ebenfalls Teil dieses Tests, um sicherzustellen, dass die Systemleistung aufgrund der an den Systemkomponenten vorgenommenen Änderungen nicht beeinträchtigt wird.
Empfohlene Vorgehensweise : Führen Sie jeden Tag abends automatisierte Testfälle aus, damit eventuelle Regressionsnebenwirkungen im Build des nächsten Tages behoben werden können. Auf diese Weise wird das Freisetzungsrisiko verringert, indem fast alle Regressionsfehler frühzeitig abgedeckt werden, anstatt diese am Ende des Freisetzungszyklus zu finden und zu beheben.
Regressionstesttechniken
Nachstehend sind die verschiedenen Techniken aufgeführt.
- Testen Sie alle erneut
- Auswahl des Regressionstests
- Testfall Priorisierung
- Hybrid
# 1) Testen Sie alle erneut
Wie der Name schon sagt, werden die gesamten Testfälle in der Testsuite erneut ausgeführt, um sicherzustellen, dass keine Fehler aufgrund einer Änderung des Codes aufgetreten sind. Dies ist eine teure Methode, da sie im Vergleich zu den anderen Techniken mehr Zeit und Ressourcen erfordert.
# 2) Auswahl des Regressionstests
Bei dieser Methode werden Testfälle aus der Testsuite ausgewählt, die erneut ausgeführt werden sollen. Nicht die gesamte Suite wird erneut ausgeführt. Die Auswahl der Testfälle erfolgt auf Basis der Codeänderung im Modul.
Testfälle sind in zwei Kategorien unterteilt: Wiederverwendbare Testfälle und veraltete Testfälle. Die wiederverwendbaren Testfälle können in zukünftigen Regressionszyklen verwendet werden, während veraltete in den kommenden Regressionszyklen nicht verwendet werden.
# 3) Priorisierung von Testfällen
Testfälle mit hoher Priorität werden zuerst ausgeführt als solche mit mittlerer und niedriger Priorität. Die Priorität des Testfalls hängt von seiner Kritikalität und seinen Auswirkungen auf das Produkt sowie von der Funktionalität des Produkts ab, das häufiger verwendet wird.
# 4) Hybrid
Die Hybridtechnik ist eine Kombination aus Regressionstestauswahl und Testfallpriorisierung. Anstatt die gesamte Testsuite auszuwählen, wählen Sie nur die Testfälle aus, die je nach Priorität erneut ausgeführt werden.
Wie wähle ich eine Regressionstestsuite aus?
Die meisten in der Produktionsumgebung gefundenen Fehler treten aufgrund der Änderungen auf, die in der elften Stunde vorgenommen oder behoben wurden, d. H. Aufgrund der Änderungen, die zu einem späteren Zeitpunkt vorgenommen wurden. Die Fehlerbehebung in der letzten Phase kann zu anderen Problemen / Fehlern im Produkt führen. Aus diesem Grund ist die Überprüfung der Regression vor der Veröffentlichung eines Produkts sehr wichtig.
Unten finden Sie eine Liste der Testfälle, die bei der Durchführung dieses Tests verwendet werden können:
- Häufig verwendete Funktionen.
- Testfälle, die das Modul abdecken, in dem die Änderungen vorgenommen wurden.
- Komplexe Testfälle.
- Integrationstestfälle, die alle Hauptkomponenten enthalten.
- Testfälle für die Kernfunktionalität oder -funktion des Produkts.
- Testfälle der Prioritäten 1 und 2 sollten eingeschlossen werden.
- In denselben Fällen wurden häufig fehlgeschlagene Testfälle oder kürzlich aufgetretene Testfehler gefunden.
Wie führe ich Regressionstests durch?
Nachdem wir festgestellt haben, was Regression bedeutet, ist es offensichtlich, dass sie auch testet - einfach in einer bestimmten Situation aus einem bestimmten Grund zu wiederholen. Daher können wir sicher ableiten, dass die gleiche Methode, die in erster Linie für Tests gilt, auch hier angewendet werden kann.
Wenn das Testen manuell durchgeführt werden kann, kann dies auch der Regressionstest sein. Die Verwendung eines Werkzeugs ist nicht erforderlich. Mit der Zeit werden Anwendungen jedoch mit immer mehr Funktionen ausgestattet, wodurch der Umfang der Regression immer größer wird. Um die Zeit optimal zu nutzen, werden diese Tests durchgeführt am häufigsten automatisiert .
Nachstehend sind die verschiedenen Schritte aufgeführt, die zur Durchführung dieses Tests erforderlich sind
- Bereiten Sie eine Testsuite für die Regression unter Berücksichtigung der unter genannten Punkte vor 'Wie wählt man die Regressionstestsuite aus?'
- Automatisieren Sie alle Testfälle der Testsuite.
- Aktualisieren Sie die Regressionssuite, wann immer dies erforderlich ist, z. B. wenn ein neuer Fehler gefunden wird, der nicht im Testfall behandelt wird, und ein Testfall für denselben sollte in der Testsuite aktualisiert werden, damit der Test beim nächsten Mal nicht verpasst wird . Die Regressionstestsuite sollte ordnungsgemäß verwaltet werden, indem die Testfälle kontinuierlich aktualisiert werden.
- Führen Sie die Regressionstestfälle aus, wenn sich der Code ändert, der Fehler behoben, neue Funktionen hinzugefügt, die vorhandenen Funktionen erweitert usw. werden.
- Erstellen Sie einen Testausführungsbericht, der den Status 'Bestanden / Nicht bestanden' der ausgeführten Testfälle enthält.
Zum Beispiel::
Lassen Sie mich dies anhand eines Beispiels erklären. Bitte untersuchen Sie die folgende Situation:
Release 1 Statistik | |
---|---|
Anzahl der Tester | 3 |
Anwendungsname | XYZ |
Versions- / Versionsnummer | 1 |
Anzahl der Anforderungen (Geltungsbereich) | 10 |
Anzahl der Testfälle / Tests | 100 |
Anzahl der Tage, die für die Entwicklung benötigt werden | 5 |
Anzahl der Tage, die zum Testen benötigt werden | 5 |
Release 2 Statistik | |
---|---|
Anzahl der Tester | 3 |
Anwendungsname | XYZ |
Versions- / Versionsnummer | zwei |
Anzahl der Anforderungen (Geltungsbereich) | 10+ 5 neue Anforderungen |
Anzahl der Testfälle / Tests | 100+ 50 neu |
Anzahl der Tage, die für die Entwicklung benötigt werden | 2,5 (da dies die Hälfte des Arbeitsaufwands als früher ist) |
Anzahl der Tage, die zum Testen benötigt werden | 5 (für die vorhandenen 100 TCs) + 2,5 (für neue Anforderungen) |
Release 3 Statistik | |
---|---|
Anzahl der Tester | 3 |
Anwendungsname | XYZ |
Versions- / Versionsnummer | 3 |
Anzahl der Anforderungen (Geltungsbereich) | 10+ 5 + 5 neue Anforderungen |
Anzahl der Testfälle / Tests | 100+ 50+ 50 neu |
Anzahl der Tage, die für die Entwicklung benötigt werden | 2,5 (da dies die Hälfte des Arbeitsaufwands als früher ist) |
Anzahl der Tage, die zum Testen benötigt werden | 7,5 (für die vorhandenen 150 TCs) + 2,5 (für neue Anforderungen) |
Das Folgende sind die Beobachtungen, die wir aus der obigen Situation machen können:
- Wenn die Releases wachsen, wächst die Funktionalität.
- Die Entwicklungszeit wächst nicht unbedingt mit den Releases, aber die Testzeit
- Kein Unternehmen / seine Geschäftsleitung wird bereit sein, mehr Zeit in Tests und weniger in die Entwicklung zu investieren
- Wir können nicht einmal die Testzeit verkürzen, indem wir die Größe des Testteams erhöhen, da mehr Leute mehr Geld bedeuten und neue Leute auch viel Training und möglicherweise auch einen Qualitätskompromiss bedeuten, da die neuen Leute möglicherweise nicht mit dem erforderlichen Wissen mithalten können Ebenen sofort.
- Die andere Alternative besteht eindeutig darin, das Ausmaß der Regression zu verringern. Dies könnte jedoch für das Softwareprodukt riskant sein.
Aus all diesen Gründen ist Regressionstest ein guter Kandidat für Automatisierungstests, muss jedoch nicht nur auf diese Weise durchgeführt werden.
Grundlegende Schritte zum Durchführen von Regressionstests
Jedes Mal, wenn die Software geändert wird und eine neue Version / Version erscheint, können Sie die folgenden Schritte ausführen, um diese Art von Tests durchzuführen:
- Verstehen Sie, welche Änderungen an der Software vorgenommen wurden
- Analysieren und bestimmen Sie, welche Module / Teile der Software betroffen sein könnten - die Entwicklungs- und BA-Teams können maßgeblich zur Bereitstellung dieser Informationen beitragen
- Sehen Sie sich Ihre Testfälle an und stellen Sie fest, ob Sie eine vollständige, teilweise oder einheitliche Regression durchführen müssen. Identifizieren Sie diejenigen, die zu Ihrer Situation passen
- Planen Sie die Zeit und testen Sie!
Regression in Agile
Agil ist ein adaptiver Ansatz, der einer iterativen und inkrementellen Methode folgt. Das Produkt wird in kurzen Iterationen entwickelt, die als Sprint bezeichnet werden und 2 bis 4 Wochen dauern. In Agile gibt es eine Reihe von Iterationen, daher spielt dieser Test eine wichtige Rolle, da die neue Funktionalität oder Codeänderung in den Iterationen durchgeführt wird.
Die Regressionstestsuite sollte von der Anfangsphase an vorbereitet und bei jedem Sprint aktualisiert werden.
In Agile wird die Regressionsprüfung in zwei Kategorien unterteilt:
- Sprint Level Regression
- End-to-End-Regression
# 1) Sprint Level Regression
Die Sprint Level Regression wird hauptsächlich für die neue Funktionalität oder die Verbesserung durchgeführt, die im neuesten Sprint durchgeführt wird. Testfälle aus der Testsuite werden gemäß der neu hinzugefügten Funktionalität oder der vorgenommenen Erweiterung ausgewählt.
# 2) End-to-End-Regression
Die End-to-End-Regression umfasst alle Testfälle, die erneut ausgeführt werden müssen, um das gesamte Produkt von Ende zu Ende zu testen, indem alle Kernfunktionen des Produkts abgedeckt werden.
Da Agile kurze Sprints hat und es weitergeht, ist es sehr wichtig, die Testsuite zu automatisieren, die Testfälle werden erneut ausgeführt und auch dies muss in kurzer Zeit abgeschlossen sein. Die Automatisierung der Testfälle reduziert die Ausführungszeit und den Fehlerschlupf.
Vorteile
Nachstehend sind die verschiedenen Vorteile des Regressionstests aufgeführt
- Es verbessert die Qualität des Produkts.
- Es stellt sicher, dass Fehlerbehebungen oder Verbesserungen, die durchgeführt werden, keine Auswirkungen auf die vorhandene Funktionalität des Produkts haben.
- Für diese Tests können Automatisierungstools verwendet werden.
- Es stellt sicher, dass bereits behobene Probleme nicht erneut auftreten.
Nachteile
Obwohl es mehrere Vorteile gibt, gibt es auch einige Nachteile. Sie sind:
- Dies muss auch für eine kleine Änderung des Codes durchgeführt werden, da bereits eine kleine Änderung des Codes Probleme mit der vorhandenen Funktionalität verursachen kann.
- Wenn für diese Tests im Projekt keine Automatisierung verwendet wird, ist es eine zeitaufwändige und mühsame Aufgabe, die Testfälle immer wieder auszuführen.
Regression der GUI-Anwendung
Es ist schwierig, einen GUI-Regressionstest (Graphical User Interface) durchzuführen, wenn die GUI-Struktur wird geändert. Die auf der alten GUI geschriebenen Testfälle sind entweder veraltet oder müssen geändert werden.
Durch die Wiederverwendung der Regressionstestfälle werden die GUI-Testfälle gemäß der neuen GUI geändert. Diese Aufgabe wird jedoch umständlich, wenn Sie über eine große Anzahl von GUI-Testfällen verfügen.
Unterschied zwischen Regression und erneutem Testen
Ein erneuter Test wird für die Testfälle durchgeführt, die während der Ausführung fehlschlagen, und der dafür ausgelöste Fehler wurde behoben, während die Regressionsprüfung nicht auf die Fehlerbehebung beschränkt ist, da sie auch andere Testfälle abdeckt, um sicherzustellen, dass die Fehlerbehebung dies nicht tut Auswirkungen auf andere Funktionen des Produkts.
Regressionstestplanvorlage (TOC)
1. Dokumentverlauf
2. Referenzen
3. Regressionstestplan
3.1. Einführung
3.2. Zweck
3.3. Teststrategie
3.4. Zu testende Funktion
3.5. Ressourcenbedarf
3.5.1. Hardwareanforderung
3.5.2. Softwareanforderung
3.6. Test Plan
3.7. Änderungsanforderung
3.8. Einreise- / Ausstiegskriterien
3.8.1. Einstiegskriterien für diesen Test
3.8.2. Beenden Sie die Kriterien für diesen Test
3.9. Annahme / Einschränkungen
3.10. Testfälle
3.11. Risiko / Annahmen
3.12. Werkzeuge
4. Genehmigung / Annahme
Schauen wir uns jeden einzelnen im Detail an.
# 1) Dokumentverlauf
Der Dokumentverlauf besteht aus einer Aufzeichnung des ersten Entwurfs und aller aktualisierten Entwürfe im unten angegebenen Format.
Ausführung | Datum | Autor | Kommentar |
---|---|---|---|
1 | TT / MM / JJ | ABC | Genehmigt |
zwei | TT / MM / JJ | ABC | Für die hinzugefügte Funktion aktualisiert |
# 2) Referenzen
In der Spalte 'Referenzen' werden alle für das Projekt verwendeten oder erforderlichen Referenzdokumente aufgezeichnet, während ein Testplan erstellt wird.
Unterlassen Sie | Dokument | Ort |
---|---|---|
1 | SRS-Dokument | Geteiltes Laufwerk |
# 3) Regressionstestplan
3.1. Einführung
Dieses Dokument beschreibt die Änderung / Aktualisierung / Verbesserung des zu testenden Produkts und den für diese Tests verwendeten Ansatz. Alle Codeänderungen, Verbesserungen, Aktualisierungen und hinzugefügten Funktionen werden zum Testen beschrieben. Testfälle, die für Unit-Tests und Integrationstests verwendet werden, können verwendet werden, um eine Testsuite für die Regression zu erstellen.
3.2. Zweck
Zweck des Regressionstestplans ist es, zu beschreiben, was genau und wie Tests durchgeführt werden, um die Ergebnisse zu erzielen. Eine Regressionsprüfung wird durchgeführt, um sicherzustellen, dass keine andere Funktionalität des Produkts aufgrund der Codeänderung beeinträchtigt wird.
3.3. Teststrategie
Die Teststrategie beschreibt den Ansatz, der zur Durchführung dieser Tests verwendet wird, und umfasst die verwendete Technik, die Abschlusskriterien, wer welche Aktivität ausführt, wer die Testskripte schreibt und welches Regressionstool verwendet wird , Schritte zur Deckung der Risiken wie Ressourcenverknappung, Produktionsverzögerung usw.
3.4. Zu testende Funktionen
Merkmale / Komponenten des zu testenden Produkts sind hier aufgelistet. Bei der Regression werden alle Testfälle erneut ausgeführt oder diejenigen, die sich auf die vorhandene Funktionalität auswirken, werden abhängig von der vorgenommenen Korrektur / Aktualisierung oder Verbesserung ausgewählt.
3.5. Ressourcenbedarf
3.5.1. Hardwareanforderung:
Die Hardwareanforderungen werden hier wie Computer, Laptop, Modems, Macbook, Smartphone usw. angegeben.
3.5.2. Softwareanforderung:
Die Softwareanforderung wird wie das Betriebssystem und die Browser identifiziert, die benötigt werden.
3.6. Test Plan
Der Testplan definiert die geschätzte Zeit für die Durchführung der Testaktivitäten.
Zum Beispiel Wie viele Ressourcen führen eine Testaktivität durch und das auch in wie viel Zeit?
3.7. Änderungsanforderung
Es werden CR-Details erwähnt, für die eine Regression durchgeführt werden würde.
S.No. | CR Beschreibung | Regressionstestsuite |
---|---|---|
1 | ||
zwei |
3.8. Einreise- / Ausstiegskriterien
3.8.1. Einstiegskriterien für diesen Test:
Eingabekriterien für das Produkt zum Starten der Regressionsprüfung sind definiert.
Zum Beispiel:
- Codierungsänderungen / Erweiterung / Hinzufügung neuer Funktionen sollten abgeschlossen sein.
- Der Regressionstestplan sollte genehmigt werden.
3.8.2. Beendigungskriterien für diesen Test:
Hier werden die Austrittskriterien für die Regression definiert.
Zum Beispiel:
- Regressionstests sollten abgeschlossen sein.
- Alle neuen kritischen Fehler, die während dieses Tests gefunden wurden, sollten geschlossen werden.
- Der Testbericht sollte fertig sein.
3.9. Testfälle
Hier werden Regressionstestfälle definiert.
3.10. Risiko / Annahmen
Alle Risiken und Annahmen werden identifiziert und ein Notfallplan dafür erstellt.
3.11. Werkzeuge
Die im Projekt zu verwendenden Werkzeuge werden identifiziert. Sowie:
- Automatisierungstool
- Tool zur Fehlerberichterstattung
# 4) Genehmigung / Annahme
Namen und Bezeichnung der Personen sind hier aufgelistet:
Name | Genehmigt / Abgelehnt | Unterschrift | Datum |
---|---|---|---|
Fazit
Regressionstests sind einer der wichtigen Aspekte, da sie dazu beitragen, ein Qualitätsprodukt zu liefern, indem sichergestellt wird, dass jede Änderung des Codes, ob klein oder groß, die vorhandenen oder alten Funktionen nicht beeinträchtigt.
Für die Automatisierung der Regressionstestfälle stehen viele Automatisierungstools zur Verfügung. Es sollte jedoch ein Tool gemäß den Projektanforderungen ausgewählt werden. Ein Tool sollte die Möglichkeit haben, die Testsuite zu aktualisieren, da die Regressionstestsuite häufig aktualisiert werden muss.
Damit schließen wir dieses Thema ab und hoffen, dass das Thema von nun an viel klarer wird.
Bitte teilen Sie uns Ihre Fragen und Kommentare zur Regression mit. Wie haben Sie Ihre Regressionstestaufgaben bewältigt?
=> Besuchen Sie hier für eine vollständige Testplan-Tutorialserie
Literatur-Empfehlungen
- Beste Software-Test-Tools 2021 (QA Test Automation Tools)
- Top 10 der beliebtesten Regressionstest-Tools im Jahr 2021
- Was ist Zuverlässigkeitstest: Definition, Methode und Werkzeuge
- 11 besten Automatisierungstools zum Testen von Android-Anwendungen (Android App Testing Tools)
- Automatisierte Regressionstests: Herausforderungen, Prozesse und Schritte
- Testen von Primer eBook Download
- Unterschied zwischen erneuten Tests und Regressionstests anhand eines Beispiels
- Top 10+ der besten SAP-Testtools (SAP-Automatisierungstools)