In welcher Phase von Agile (SCRUM) sollten wir mit der Erstellung von Automatisierungstests beginnen?

9

Ein kleiner Hintergrund von mir - Ich bin seit fast 2 Jahren ein manueller Tester in einer agilen Umgebung mit SCRUM (1-2 Wochen Sprints). Daher möchte ich Automatisierungstests in meine Arbeit mit Selenium WebDriver (mit Java) einführen.

Meine Frage ist, wann ich die Funktionalität manuell testen und wann ich sie für Automatisierungstests konvertieren soll.

Ich habe gelesen und einen anderen Ansatz gewählt, wie zum Beispiel:

  1. Wenn ein neuer Sprint gestartet wird, konvertieren Sie die User Stories in automatisierte Skripte aus dem vorherigen Sprint, OR;
  2. Konvertieren Sie die User Stories im selben Sprint.

Jeder Rat / jede Ratschläge wären sehr dankbar. Danke im Voraus.

Jay
quelle
4
Bitte stellen Sie nicht dieselbe Frage über zwei verschiedene Stapelaustausch-Sites. Bitte löschen Sie einen von ihnen.
R Sahu
2
Cross gepostet unter sqa.stackexchange.com/questions/27017/… .
R Sahu

Antworten:

13

Testautomatisierung (und alle anderen Tests) sollten Teil der Definition von erledigt sein . Dies, um ein potenziell versandfähiges Produkt herzustellen. Können Sie versenden, wenn es nicht getestet wurde?

Das Testen sollte auch ein ganzheitlicher Teamansatz sein, sodass die Testautomatisierung nicht in der Verantwortung des Testers liegt. Starten Sie denken über die Prüfung so schnell wie möglich in den Prozess.

Testautomatisierung ist in Agile so wichtig, weil:

Die organisatorische Agilität wird durch die technische Agilität eingeschränkt

Mit anderen Worten, wenn Sie nur langsam Änderungen an Ihrem Produkt vornehmen, spielt es keine Rolle, wie Sie Ihre Teams, Ihre Organisation oder das von Ihnen verwendete Framework strukturieren. Sie reagieren nur langsam auf Änderungen.

https://less.works/less/technical-excellence/index.html

Wenn Sie den Test auf eine weitere Iteration verschieben, bleiben Sie immer zurück. Dies macht es schwieriger, die Richtung des Produkts zu ändern, da es schwieriger ist, das äußere Verhalten des Produkts umzugestalten und zu schützen. Wiederholte manuelle Tests sind der Schlüssel, um Sie zu verlangsamen, automatisieren Sie es!

Viele Tester werden Ihnen sagen, dass Sie erst dann mit dem End-to-End-Test beginnen sollten, wenn sich die Produktschnittstelle stabilisiert hat. Warten Sie nicht, sondern nutzen Sie PageObjects, stellen Sie sicher, dass Ihre Tests wartbar sind, und machen Sie es zur Verantwortung des Entwicklers, sie zu erstellen und zu reparieren.

Niels van Reijmersdal
quelle
Ich bin nicht einverstanden mit dem ersten "sollte". Die Definition von erledigt ist etwas, das das Scrum-Team für sich selbst erarbeiten muss. Wenn das Team automatisierte Tests für wichtig hält, wird es in seine Definition aufgenommen. Der Prozess selbst sagt jedoch nicht, dass sie müssen oder sogar sollten. Es liegt ganz im Team und es gibt keine richtige, falsche oder bevorzugte Antwort.
aroth
@aroth Ich stimme Ihnen zu, aber in fast allen Fällen, in denen Sie ein größeres Softwareprodukt erstellen, möchten Sie dem DoD Tests hinzufügen. Deshalb denke ich, dass es gut ist, den Leuten zu sagen, dass man zumindest ernsthaft darüber nachdenken sollte. Als Tester glaube ich, dass das Testen am Ende durch ein separates Team die ersten Schritte zu Wagile sind. Aber ja, es gibt Situationen und / oder Fälle, in denen Tests möglicherweise nicht einmal erforderlich sind.
Niels van Reijmersdal
2

Der Schlüssel ist, dass Sie eine Geschichte nur dann als vollständig markieren, wenn Sie automatisierte Tests für diese Geschichte geschrieben haben.

1 scheint also draußen zu sein, da Sie Tests für eine Aufgabe schreiben, die in einem vorherigen Sprint abgeschlossen wurde. Was ist, wenn die Tests fehlschlagen?

Ewan
quelle
Wenn also in Woche eins eines neuen Sprints keine User Story dieses Sprints in einem Zustand ist, in dem sie auf Regression getestet werden kann, schlagen Sie vor, dass das OP nach Hause gehen und nichts tun sollte? Klingt für mich nicht sehr effizient ;-)
Doc Brown
Der Tester sollte diese erste Woche nutzen, um die Spezifikation "hmmmm, als Benutzer würde ich Hintergrundmusik auf meiner Webseite erwarten." In Frage zu stellen. Finden Sie Fehler in unvollständigen Geschichten und machen Sie im Allgemeinen Probleme. Entwickler dürfen sagen, dass sie nicht starten können, bis Testpläne geschrieben wurden
Ewan
@DocBrown: In der ersten Woche eines neuen Sprints hat der Tester unglaublich viel zu tun. Sie müssen verstehen, was die Entwickler bauen, indem sie mit dem Product Owner und den Entwicklern zusammenarbeiten. Sie müssen mit dem Entwickler zusammenarbeiten, um sicherzustellen, dass der Code testbar ist. Sie können mit der Arbeit an einem automatisierten Testplan beginnen. Sie können sogar anfangen, einige Tests zu schreiben. Wenn Sie über ein geeignetes Testframework verfügen, in dem Ihre Tests auf einer hohen Abstraktionsebene geschrieben werden, können Sie sie schreiben, bevor der Code fertig ist.
Bryan Oakley
1

Idealerweise sollten Sie automatisierte Tests im selben Sprint schreiben, in dem der Code geschrieben wurde. Code sollte erst dann als "erledigt" betrachtet werden, wenn automatisierte Tests geschrieben wurden, und Sie müssen den Code bis zum Ende eines Sprints in den Zustand "erledigt" versetzen.

Sie sollten den Prozess am ersten Tag des Sprints starten, indem Sie mit dem Entwickler zusammenarbeiten, um den Code zu verstehen und ihm zu helfen, Ihre Anforderungen als Tester zu verstehen. Wenn Sie beispielsweise Webseiten erstellen, können Sie ihnen helfen, die Notwendigkeit zu verstehen, eindeutige Bezeichner für jedes Seitenelement hinzuzufügen, mit dem Sie interagieren müssen.

Denken Sie daran, dass es in Scrum nicht Ihre Aufgabe ist, Tests zu schreiben. Ihre Aufgabe ist es, mit dem Team zusammenzuarbeiten, um die Sprintziele zu erreichen. Das bedeutet Kommunikation und Zusammenarbeit, was sehr früh im Sprint geschehen sollte. Sie können mit der Arbeit an Testdesigns und Testplänen beginnen, lange bevor der Code zum Testen bereit ist.

Bryan Oakley
quelle
0

Wenn Sie automatisch testen möchten, können Sie die Tests auch im Voraus erstellen. Dies hilft Ihnen zu definieren, welches Verhalten Sie erwarten, und regt Sie dazu an, wie ein Kunde zu denken. Es sollte Ihre Software am Ende benutzerfreundlicher machen. Und Sie werden sofort von dem Test profitieren, wenn Sie die Funktionalität implementieren.

Martin Maat
quelle
1
Das funktioniert nicht mit UI-Testtools wie Selenium. Sie benötigen eine funktionierende und stabile Benutzeroberfläche, um die Tests erstellen zu können.
Doc Brown
@ DocBrown: Ich denke nicht, dass das unbedingt stimmt. Wenn Sie mir eine Spezifikation für eine neue Webseite geben, kann ich mit dem Schreiben automatisierter Tests beginnen (und diese möglicherweise beenden!), Bevor die Seite geschrieben wird. Sie müssen lediglich mit dem Entwickler zusammenarbeiten, damit Sie sich beide auf die Seitenstruktur, die Element-IDs usw. einigen können.
Bryan Oakley
0

Sie können beides tun, möchten jedoch in der Regel Regressionstests mit Automatisierungstests durchführen. Das würde bedeuten, dass ich manuell arbeiten würde, bis Sie sicher sind, dass es solide genug ist, um ein Regressionstest zu sein. Dies kann für einige Funktionen in der Mitte eines Sprints und für andere Funktionen in einem zukünftigen Sprint sein.

Köter
quelle
0

Wie in einer anderen Antwort angegeben , sollte das Testen ein Teil der Definition von erledigt sein . Ich bin jedoch mit einigen dieser Antworten nicht einverstanden, daher wollte ich die Erfahrungen erweitern, die ich gemacht habe.

In einer wirklich agilen Umgebung kann jeder alles. Es würde niemanden geben, der sich zu 100% dem Testen widmet. Sie würden auch Fähigkeiten entwickeln, die Ihnen bei grundlegenden UI-Arbeiten oder etwas anderem helfen. Wir leben jedoch selten in einer idealen Welt.

Was ich empfehlen würde, wäre ein hybrider Ansatz. Für Ihre Definition von "Fertig" würde ich sagen, dass manuelle Tests Teil des Sprints sein sollten, in dem die Arbeit codiert ist. Sie wissen, dass sie funktionieren, und alle Fehler können sofort gemeldet, möglicherweise behoben, bevor der Sprint beendet ist, damit Sie den nächsten planen können ein. Wenn Sie sich auf manuelle Tests konzentrieren, werden Sie mit den Funktionen des Codes vertraut. Zu Beginn des nächsten Sprints, wenn Sie möglicherweise nicht so viel zu tun haben, können Sie Ihre automatisierten Tests einrichten, die als Teil des Erstellungsprozesses ausgeführt werden können, um Regressionsfehler zu vermeiden.

Krillgar
quelle
Ich habe noch nie einen Sprint gesehen, bei dem es am ersten Tag noch nicht viel zu tun gab. Das Schreiben automatisierter Tests erfordert Zusammenarbeit und Planung. Diese sollte in der ersten Stunde des ersten Sprinttages beginnen.
Bryan Oakley