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:
- Wenn ein neuer Sprint gestartet wird, konvertieren Sie die User Stories in automatisierte Skripte aus dem vorherigen Sprint, OR;
- Konvertieren Sie die User Stories im selben Sprint.
Jeder Rat / jede Ratschläge wären sehr dankbar. Danke im Voraus.
Antworten:
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:
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.
quelle
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?
quelle
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.
quelle
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.
quelle
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.
quelle
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.
quelle