Automation Day oder wie wir die Ebene der Autotests aufbauen

Wie oft stoßen Sie bei der Arbeit im Team auf eine Situation, in der ein Teil der Aufgaben der Testautomatisierung in den Rückstand fällt und für immer im manuellen Test verbleibt? Wir sind ständig mit einem solchen Problem konfrontiert, und die Gründe sind immer unterschiedlich:

  • hatte keine Zeit / hatte nicht genug Zeit und vergaß dann;
  • nicht genug Erfahrung;
  • Die Automatisierungsaufgabe erwies sich als sehr umfangreich und erforderte Integrationen von Drittanbietern.

Inspiriert von der Idee von Kollegen aus Avito , veranstalteten Yaromudr und ich Mitte Mai den ersten Automatisierungstag. Ziel dieser Veranstaltung ist es, Tests zu automatisieren, bei denen wir dies aus den oben genannten Gründen nicht getan haben.


Darauf haben wir alle interessierten QS-Ingenieure versammelt und auch im Voraus vorbereitet:

  • Auftragsbestand;
  • Verhaltensregeln;
  • einigte sich auf einen Technologie-Stack;
  • vorbereitete Werkzeuge;
  • bestellte die notwendigen Zugriffe.

Für die Automatisierung wurde eine API-Integrationstestschicht ausgewählt. Jede Aufgabe im Backlog enthielt:

  • eine Verknüpfung zum Endpunkt sowie Eingabe- und Ausgabeparameter der Restanforderung im JSON-Format;
  • die Essenz des Tests, wie und warum wir ihn überprüfen.

Zu Beginn des Projekts haben wir den folgenden Stapel für die Automatisierung ausgewählt. Darauf haben wir die Projektvorlage vorbereitet, die wir mit automatischen Tests füllen werden:

  • Java8
  • Junit5
  • Frühling
  • Unirest

Eine Beispielprojektvorlage finden Sie hier .

Es sollte beachtet werden, dass wir lange Zeit ein Tool zum automatischen Generieren von Testdaten vorbereitet hatten. Ohne dieses Tool wollten wir kein neues Framework erstellen, da es bereits schlechte Erfahrungen mit der Integration von Autotests für statische Testdaten gab, nur eine Schicht darunter. Wir haben teilweise auf unserem Treffen MAP qualitative Kommunikation über dieses Problem gesprochen.

Die Regeln


Die Regeln für Teilnehmer des Automation Day waren so einfach wie möglich. Vor Beginn der Entwicklung haben wir eine vorgefertigte Projektstruktur demonstriert und ein kurzes Briefing durchgeführt. Bei der Entwicklung mussten sich die Teilnehmer an eine bestimmte Projektstruktur halten.
Von 10 bis 19 Jahren, gelegentlich durch Mittag- und Abendessen abgelenkt, schreiben die Teilnehmer Tests in Java + JUnit5. Die Implementierung der Logik für Tests in Java wurde als API-Aufrufe unter Verwendung der Unirest-Bibliothek organisiert.

In unserem gemütlichen Spielzimmer versammelten sich zwölf QS-Ingenieure und zwei Organisatoren des Automation Day.

Es ist erwähnenswert, dass das Niveau der QS-Ingenieure unterschiedlich war, jemand den gesamten Stack kannte, jemand Spring nie in seinen Projekten verwendet hatte, jemand nur Rest-Assured in seinen Projekten verwendet hatte und Unirest nie gesehen hatte, einige nicht automatisiert hatten API-Tests und getestet mit Ihren Händen.

Ergebnisse


Was wir für 8 Arbeitsstunden intensiver Entwicklung bekommen haben:

  • + 12 Pull-Anfragen;
  • 12 abgeschlossene Aufgaben aus dem Rückstand;
  • + 14 Integrations-Autotests;
  • > 99% der erfolgreich bestandenen Autotests für jeden Start;
  • 12 QS-Ingenieure, die im Projekt gut orientiert sind.

Einen Monat später


Als wir ungefähr einen Monat später die Testmetriken nahmen, erhielten wir sehr interessante Indikatoren:

  • + 30 Pull-Anfragen;
  • 30 abgeschlossene Aufgaben aus dem Rückstand;
  • + 48 Autotests für die Integration;
  • Unirest durch Nachrüstung ersetzt;
  • > 97% der erfolgreich bestandenen Autotests für jeden Start.

Ich möchte insbesondere die positiven Auswirkungen solcher Ereignisse auf die Kommunikation innerhalb des QS-Teams hervorheben. Wenn Menschen mit echten Produktaufgaben konfrontiert sind und Menschen in der Nähe sind, die helfen und lehren können, wirkt sich dies immer positiv aus. Ein einfaches Beispiel, einer der Teilnehmer, ilya_tad, schlug vor, Retrofit anstelle von Unirest zu verwenden. Aus mehreren Gründen stellte sich heraus, dass es für uns ein bequemeres Werkzeug war. Zuletzt veranstaltete derselbe Teilnehmer einen zweiten Automatisierungstag, an dem alle auch Tests schrieben, aber bereits Retrofit verwendeten. Übrigens haben wir am zweiten Automatisierungstag Unirest komplett durch Retrofit ersetzt, für uns waren die Verbesserungen minimal. Eine ungefähre Vorlage des überarbeiteten Projekts finden Sie hier .

Bewertungen


Alle Teilnehmer des Automation Day erhielten frisch bedruckte Superhelden-T-Shirts. Und ja, natürlich haben wir nach dem ersten Automatisierungstag Feedback von den Teilnehmern gesammelt. Die Antwort auf die Frage „Was war an diesem Automatisierungstag am wertvollsten und nützlichsten?“:

  • Einbeziehung aller Teilnehmer in die Abdeckung einer weiteren Schicht von Selbsttests aus der Testpyramide (Entladen der obersten Schicht von Selbsttests der End-2-End-Benutzeroberfläche);
  • die Fähigkeit, sich auf die Aufgabe zu konzentrieren, ohne von irgendetwas anderem abgelenkt zu werden, sowie die unschätzbare Erfahrung des Mentorings;
  • gemeinsame Arbeit an bestimmten Aufgaben für einen klar festgelegten Zeitraum, wobei der Schwerpunkt auf der Lösung eines bestimmten engen Bereichs von Aufgaben und Problemen liegt;
  • Eine allgemeine Vorstellung vom lokalen Rahmen ist erschienen.

Wir haben auch Wünsche von den Teilnehmern gesammelt, wir werden nicht alles auflisten, aber am beliebtesten war es, regelmäßig einen Automatisierungstag abzuhalten.

Fazit


Natürlich werden wir versuchen, solche Veranstaltungen regelmäßig durchzuführen. Wir werden verschiedene Themen behandeln und neue Tools ausprobieren.

Mit dem Automation Day können Sie Menschen über echte Produktaufgaben informieren, Erfahrungen austauschen, die Initiative ergreifen und besser miteinander kommunizieren. Mit der richtigen Vorbereitung und Organisation können Sie mit dieser Veranstaltung relativ schnell eine ganze Schicht von Autotests bilden und die Menschen auf die weitere Entwicklung dieser Schicht vorbereiten.



Wir planen, den dritten Automatisierungstag dem Schreiben von Komponententests für iOS mit dem EarlGrey-Tool zu widmen.

Source: https://habr.com/ru/post/de458546/


All Articles