Agiles Testen - Methoden

Agile ist eine iterative Entwicklungsmethode, bei der das gesamte Projektteam an allen Aktivitäten teilnimmt. Die Anforderungen entwickeln sich im Verlauf der Iterationen durch die Zusammenarbeit zwischen dem Kunden und den selbstorganisierenden Teams. Da Codierung und Tests im Verlauf der Entwicklung interaktiv und inkrementell durchgeführt werden, ist das Endprodukt von Qualität und stellt die Kundenanforderungen sicher.

Jede Iteration führt zu einem integrierten Arbeitsproduktinkrement und wird für Benutzerakzeptanztests bereitgestellt. Das so erhaltene Kundenfeedback wäre eine Eingabe für die nächsten / nachfolgenden Iterationen.

Kontinuierliche Integration, kontinuierliche Qualität

Kontinuierliche Integration ist der Schlüssel zum Erfolg von Agile Development. Integrieren Sie häufig, mindestens täglich, damit Sie bei Bedarf für eine Veröffentlichung bereit sind. Das Testen in Agile wird zu einem wesentlichen Bestandteil aller Entwicklungsphasen und gewährleistet die kontinuierliche Qualität des Produkts. Ständiges Feedback von allen Projektbeteiligten trägt zur Qualität des Produkts bei.

In Agile wird der Kommunikation höchste Bedeutung beigemessen und die Kundenanfragen werden bei Bedarf empfangen. Dies gibt dem Kunden die Zufriedenheit, dass alle Eingaben berücksichtigt werden und ein Produkt von Arbeitsqualität während der gesamten Entwicklung verfügbar ist.

Agile Methoden

Es gibt verschiedene agile Methoden, die die agile Entwicklung unterstützen. Die agilen Methoden umfassen -

Gedränge

Scrum ist eine agile Entwicklungsmethode, bei der der teamorientierte Ansatz im Vordergrund steht. Es befürwortet die Teilnahme des gesamten Teams an allen Projektentwicklungsaktivitäten.

XP

eXtreme Programming ist kundenorientiert und konzentriert sich auf sich ständig ändernde Anforderungen. Durch häufige Veröffentlichungen und Kundenfeedbacks wird das Endprodukt von Qualität sein und die Kundenanforderungen erfüllen, die während des Prozesses klarer werden.

Kristall

Crystal basiert auf Chartern, zyklischer Lieferung und Verpackung.

  • Das Chartern beinhaltet die Bildung eines Entwicklungsteams, die Durchführung einer vorläufigen Machbarkeitsanalyse, die Erstellung eines ersten Plans und der Entwicklungsmethodik.

  • Die zyklische Lieferung mit zwei oder mehr Lieferzyklen konzentriert sich auf die Entwicklungsphase und die endgültige integrierte Produktlieferung.

  • Während des Abschlusses werden die Bereitstellung in der Benutzerumgebung, Überprüfungen nach der Bereitstellung und Überlegungen durchgeführt.

FDD

Feature Driven Development (FDD) umfasst das Entwerfen und Erstellen von Features. Der Unterschied zwischen FDD und anderen agilen Entwicklungsmethoden besteht darin, dass die Funktionen in spezifischen und kurzen Phasen getrennt entwickelt werden.

DSDM

Die Dynamic Software Development Method (DSDM) basiert auf der Rapid Application Development (RAD) und ist auf das Agile Framework ausgerichtet. DSDM konzentriert sich auf die häufige Lieferung des Produkts, wobei die Benutzer aktiv einbezogen werden und die Teams in die Lage versetzt werden, schnelle Entscheidungen zu treffen.

Lean Software-Entwicklung

Bei der schlanken Softwareentwicklung liegt der Schwerpunkt auf der Beseitigung von Verschwendung und der Wertschöpfung für den Kunden. Dies führt zu einer schnellen Entwicklung und einem Wertprodukt.

Abfall umfasst teilweise erledigte Arbeiten, irrelevante Arbeiten, Funktionen, die vom Kunden nicht verwendet werden, Mängel usw., die zu Verzögerungen bei der Lieferung führen.

Das Lean Principles sind -

  • Abfall beseitigen
  • Lernen verstärken
  • Verzögerungsverpflichtung
  • Stärken Sie das Team
  • Liefern Sie schnell
  • Integrität aufbauen in
  • Das Ganze sehen

Kanban

Kanban konzentriert sich auf die Verwaltung der Arbeit mit Schwerpunkt auf Just-in-Time-Bereitstellung (JIT), ohne die Teammitglieder zu überlasten. Die Aufgaben werden angezeigt, damit alle Teilnehmer sie sehen und die Teammitglieder die Arbeit aus einer Warteschlange ziehen können.

Kanban basiert auf -

  • Kanban Board (visuell und beständig in der gesamten Entwicklung)
  • Work-in-Progress (WIP) -Limit
  • Vorlaufzeit

Agile Testmethoden

Die Testpraktiken sind für jedes Projekt, ob agil oder nicht, genau definiert, um Qualitätsprodukte zu liefern. Traditionelle Testprinzipien werden beim agilen Testen häufig verwendet. Eines davon ist Early Testing, das sich auf -

  • Schreiben von Testfällen, um das Verhalten des Systems auszudrücken.

  • Früherkennung, Erkennung und Beseitigung von Fehlern.

  • Sicherstellen, dass die richtigen Testtypen zur richtigen Zeit und als Teil der richtigen Teststufe ausgeführt werden.

In allen von uns diskutierten agilen Methoden ist das agile Testen an sich eine Methodik. In allen Ansätzen werden Testfälle vor dem Codieren geschrieben.

In diesem Tutorial konzentrieren wir uns auf Scrum als agile Testmethode.

Die anderen häufig verwendeten agilen Testmethoden sind -

  • Test-Driven Development (TDD) - Test Driven Development (TDD) basiert auf einer von Tests geleiteten Codierung.

  • Acceptance Test-Driven Development (ATDD) - Acceptance Test-Driven Development (ATDD) basiert auf der Kommunikation zwischen Kunden, Entwicklern und Testern und basiert auf vordefinierten Abnahmekriterien und Abnahmetestfällen.

  • Behavior-Driven Development (BDD) - In der verhaltensgesteuerten Entwicklung (BDD) basiert das Testen auf dem erwarteten Verhalten der zu entwickelnden Software.

Agiler Testlebenszyklus

In Scrum umfassen die Testaktivitäten:

  • Beitrag zu User Stories basierend auf dem erwarteten Verhalten des als Testfälle dargestellten Systems

  • Release-Planung basierend auf Testaufwand und Fehlern

  • Sprint-Planung basierend auf User Stories und Defekten

  • Sprint-Ausführung mit kontinuierlichem Testen

  • Regressionstests nach Abschluss des Sprints

  • Testergebnisse melden

  • Automatisierungstests

Das Testen ist iterativ und basiert auf Sprints, wie in der folgenden Abbildung dargestellt.