Was ist Agiles Testen? Methodik, Prozess & Lebenszyklus

Inhaltsverzeichnis:

Anonim

Was ist Agiles Testen?

AGILE TESTING ist eine Testpraxis , die den Regeln und Prinzipien der agilen Softwareentwicklung folgt. Im Gegensatz zur Waterfall-Methode kann Agile Testing zu Beginn des Projekts mit einer kontinuierlichen Integration zwischen Entwicklung und Test beginnen. Die Agile Testing-Methode ist nicht sequentiell (in dem Sinne, dass sie erst nach der Codierungsphase ausgeführt wird), sondern kontinuierlich.

In diesem Artikel werden wir diskutieren

  • Agiler Testplan.
  • Agile Teststrategien.
  • Der Agile Testing Quadrant.
  • QS-Herausforderungen bei der agilen Softwareentwicklung.
  • Automatisierungsrisiko in agilen Prozessen.

Agiler Testplan

Der agile Testplan umfasst Testarten, die in dieser Iteration durchgeführt werden, z. B. Testdatenanforderungen, Infrastruktur, Testumgebungen und Testergebnisse. Im Gegensatz zum Wasserfallmodell wird in einem agilen Modell für jede Version ein Testplan geschrieben und aktualisiert. Typische Testpläne in Agile umfassen

  1. Testumfang
  2. Neue Funktionen, die getestet werden
  3. Teststufe oder Testarten basierend auf der Komplexität der Funktionen
  4. Last- und Leistungstests
  5. Überlegungen zur Infrastruktur
  6. Minderungs- oder Risikoplan
  7. Beschaffung
  8. Ergebnisse und Meilensteine

Agile Teststrategien

Der agile Testlebenszyklus erstreckt sich über vier Phasen

(a) Iteration 0

Während der ersten Stufe oder Iteration 0 führen Sie anfängliche Einrichtungsaufgaben aus. Es umfasst das Identifizieren von Personen zum Testen, das Installieren von Testtools, das Planen von Ressourcen (Labor für Usability-Tests) usw. Die folgenden Schritte werden in Iteration 0 ausgeführt

a) Erstellen eines Business Case für das Projekt

b) Legen Sie die Randbedingungen und den Projektumfang fest

c) Skizzieren Sie die wichtigsten Anforderungen und Anwendungsfälle, die zu den Kompromissen beim Design führen

d) Skizzieren Sie eine oder mehrere Kandidatenarchitekturen

e) Identifizierung des Risikos

f) Kostenschätzung und Vorbereitung eines Vorprojekts

(b) Konstruktionsiterationen

Die zweite Phase der agilen Testmethode sind Konstruktionsiterationen. Der Großteil der Tests findet in dieser Phase statt. Diese Phase wird als eine Reihe von Iterationen beobachtet, um ein Inkrement der Lösung zu erstellen. Zu diesem Zweck implementiert das Team innerhalb jeder Iteration eine Mischung aus Vorgehensweisen aus XP, Scrum, agiler Modellierung und agilen Daten usw.

Bei der Konstruktionsiteration folgt das agile Team der priorisierten Anforderungspraxis: Bei jeder Iteration nehmen sie die wichtigsten Anforderungen aus dem Workitem-Stapel und implementieren sie.

Die Konstruktionsiteration wird in zwei Kategorien unterteilt: Bestätigungstests und Untersuchungstests. Bestätigungstests konzentrieren sich auf die Überprüfung, ob das System die Absicht der Stakeholder erfüllt, wie sie dem Team bisher beschrieben wurden, und vom Team durchgeführt wird. Während der Untersuchungstests wird das Problem festgestellt, das das Bestätigungsteam übersprungen oder ignoriert hat. In Investigative Tests ermittelt der Tester die potenziellen Probleme in Form von Fehlergeschichten. Untersuchungstests befassen sich mit allgemeinen Problemen wie Integrationstests, Last- / Stresstests und Sicherheitstests.

Auch für Bestätigungstests gibt es zwei Aspekte: Entwicklertests und agile Abnahmetests . Beide sind automatisiert, um kontinuierliche Regressionstests während des gesamten Lebenszyklus zu ermöglichen. Bestätigungstests sind das agile Äquivalent zu Tests gemäß Spezifikation.

Agile Abnahmetests sind eine Kombination aus traditionellen Funktionstests und traditionellen Abnahmetests als Entwicklungsteam, und die Stakeholder führen dies gemeinsam durch. Während Entwicklertests eine Mischung aus traditionellen Unit-Tests und traditionellen Service-Integrationstests sind. Entwicklertests überprüfen sowohl den Anwendungscode als auch das Datenbankschema.

(c) Endspiel oder Übergangsphase freigeben

Das Ziel von "Release, End Game" ist es, Ihr System erfolgreich in der Produktion einzusetzen. Die Aktivitäten in dieser Phase umfassen die Schulung von Endbenutzern, Supportmitarbeitern und operativen Mitarbeitern. Außerdem umfasst es die Vermarktung der Produktfreigabe, die Sicherung und Wiederherstellung, die Fertigstellung des Systems und die Benutzerdokumentation.

Die letzte Testphase für agile Methoden umfasst vollständige Systemtests und Abnahmetests. Um Ihre letzte Testphase ohne Hindernisse zu beenden, sollten Sie das Produkt während der Konstruktionsiterationen strenger testen müssen. Während des Endspiels werden die Tester an den Fehlergeschichten arbeiten.

(d) Produktion

Nach der Freigabephase wechselt das Produkt in die Produktionsphase.

Die agilen Testquadranten

Die agilen Testquadranten trennen den gesamten Prozess in vier Quadranten und helfen zu verstehen, wie agile Tests durchgeführt werden.

a) Agiler Quadrant I - Die interne Codequalität steht im Mittelpunkt dieses Quadranten und besteht aus Testfällen, die technologiegetrieben sind und zur Unterstützung des Teams implementiert werden

1. Unit Tests

2.Komponententests

b) Agiler Quadrant II - Enthält Testfälle, die geschäftsorientiert sind und zur Unterstützung des Teams implementiert werden . Dieser Quadrant konzentriert sich auf die Anforderungen. Die Art des in dieser Phase durchgeführten Tests ist

1. Testen von Beispielen möglicher Szenarien und Workflows

2. Testen der Benutzererfahrung wie Prototypen

3. Paartests

c) Agiler Quadrant III - Dieser Quadrant liefert Feedback zu den Quadranten eins und zwei. Die Testfälle können als Grundlage für die Durchführung von Automatisierungstests verwendet werden. In diesem Quadranten werden viele Runden von Iterationsprüfungen durchgeführt, die das Vertrauen in das Produkt stärken. Die Art der in diesem Quadranten durchgeführten Tests ist

1. Usability-Tests

2. Erkundungstests

3. Paartests mit Kunden

4. Kollaboratives Testen

5. Benutzerakzeptanztests

d) Agiler Quadrant IV - Dieser Quadrant konzentriert sich auf die nicht funktionalen Anforderungen wie Leistung, Sicherheit, Stabilität usw. Mit Hilfe dieses Quadranten wird die Anwendung durchgeführt, um die nicht funktionalen Eigenschaften und den erwarteten Wert zu liefern.

1. Nichtfunktionale Tests wie Stress- und Leistungstests

2. Sicherheitstests in Bezug auf Authentifizierung und Hacking

3. Testen der Infrastruktur

4. Testen der Datenmigration

5. Skalierbarkeitstests

6. Lasttest

QS-Herausforderungen bei der agilen Softwareentwicklung

a) Die Fehlerwahrscheinlichkeit ist agiler, da der Dokumentation weniger Priorität eingeräumt wird und das QA-Team letztendlich stärker unter Druck gesetzt wird

b) Neue Funktionen werden schnell eingeführt, wodurch Testteams weniger Zeit haben, um festzustellen, ob die neuesten Funktionen den Anforderungen entsprechen, und die Geschäftsanzüge wirklich berücksichtigt werden

c) Tester müssen häufig einen Halbentwickler spielen

d) Testausführungszyklen sind stark komprimiert

e) Sehr wenig Zeit für die Erstellung des Testplans

f) Für Regressionstests haben sie ein minimales Timing

g) Änderung ihrer Rolle von einem Torhüter der Qualität zu einem Partner der Qualität

h) Anforderungsänderungen und -aktualisierungen sind mit einer agilen Methode verbunden und werden zur größten Herausforderung für die Qualitätssicherung

Automatisierungsrisiko in agilen Prozessen

  • Die automatisierte Benutzeroberfläche bietet ein hohes Maß an Vertrauen, ist jedoch langsam auszuführen, fragil zu warten und teuer in der Erstellung. Die Automatisierung kann die Testproduktivität möglicherweise nicht wesentlich verbessern, es sei denn, die Tester wissen, wie sie testen müssen
  • Unzuverlässige Tests sind ein Hauptanliegen bei automatisierten Tests. Das Beheben fehlgeschlagener Tests und das Beheben von Problemen im Zusammenhang mit Sprödigkeitstests sollte oberste Priorität haben, um Fehlalarme zu vermeiden
  • Wenn der automatisierte Test manuell und nicht über CI (Continuous Integration) initiiert wird, besteht das Risiko, dass er nicht regelmäßig ausgeführt wird und daher zu fehlgeschlagenen Tests führen kann
  • Automatisierte Tests sind kein Ersatz für manuelle Erkundungstests. Um die erwartete Qualität des Produkts zu erhalten, ist eine Mischung aus Testtypen und -stufen erforderlich
  • Viele im Handel erhältliche Automatisierungstools bieten einfache Funktionen wie die Automatisierung der Erfassung und Wiedergabe manueller Testfälle. Ein solches Tool fördert das Testen über die Benutzeroberfläche und führt zu von Natur aus spröden und schwer zu wartenden Tests. Das Speichern von Testfällen außerhalb des Versionskontrollsystems führt zu unnötiger Komplexität
  • Um Zeit zu sparen, ist der Automatisierungstestplan häufig schlecht geplant oder ungeplant, was dazu führt, dass der Test fehlschlägt
  • Ein Testaufbau- und -abbauverfahren wird normalerweise während der Testautomatisierung verpasst, während bei manuellen Tests ein Testaufbau- und -abbauverfahren nahtlos klingt
  • Produktivitätsmetriken wie eine Reihe von Testfällen, die pro Tag erstellt oder ausgeführt werden, können furchtbar irreführend sein und zu einer großen Investition in die Durchführung nutzloser Tests führen
  • Mitglieder des agilen Automatisierungsteams müssen effektive Berater sein: zugänglich, kooperativ und einfallsreich, sonst fällt dieses System schnell aus
  • Die Automatisierung kann Testlösungen vorschlagen und liefern, die im Verhältnis zum bereitgestellten Wert zu viel laufende Wartung erfordern
  • Bei automatisierten Tests fehlt möglicherweise das Fachwissen, um effektive Lösungen zu konzipieren und bereitzustellen
  • Automatisierte Tests können so erfolgreich sein, dass ihnen wichtige zu lösende Probleme ausgehen und sie sich daher unwichtigen Problemen zuwenden.

Fazit

Bei der agilen Methodik beim Testen von Software werden die Tests so früh wie möglich im Lebenszyklus der Softwareentwicklung durchgeführt. Es erfordert eine hohe Kundenbeteiligung und das Testen von Code, sobald dieser verfügbar ist. Der Code sollte stabil genug sein, um ihn zum Systemtest zu bringen. Umfangreiche Regressionstests können durchgeführt werden, um sicherzustellen, dass die Fehler behoben und getestet werden. Hauptsächlich macht die Kommunikation zwischen den Teams den Erfolg von agilen Modelltests erfolgreich !!!