Zurück in die Schule: Wie man Handheld-Tester für den Umgang mit Autotests ausbildet

Vier von fünf QS-Arbeitssuchenden möchten lernen, wie man mit Autotests arbeitet. Nicht alle Unternehmen können solche Wünsche von manuellen Testern während der Arbeitszeit erfüllen. Wrike leitete eine Automatisierungsschule für Mitarbeiter und erkannte diesen Wunsch für viele. Ich habe genau als Schüler-Qualitätssicherung an dieser Schule teilgenommen.

Ich habe gelernt, wie man mit Selen arbeitet, und jetzt unterstütze ich unabhängig eine bestimmte Anzahl von Autotests, fast ohne fremde Hilfe. Und basierend auf den Ergebnissen unserer gemeinsamen Erfahrung und meinen persönlichen Schlussfolgerungen werde ich versuchen, die Formel der bestmöglichen Automatisierungsschule abzuleiten.

Wrike School Organisationserfahrung


Als die Notwendigkeit einer Automatisierungsschule klar wurde, fiel die Organisation auf Stas Davydov, den technischen Leiter der Automatisierung. Wer außer ihm kann erklären, warum sie auf diese Initiative gekommen sind, haben sie Ergebnisse erzielt und bereuen die aufgewendete Zeit nicht? Wir geben ihm das Wort:

- 2016 haben wir ein neues Framework für Autotests geschrieben und es so gestaltet, dass Tests einfach zu schreiben sind: Normale Schritte erschienen, die Struktur wurde viel verständlicher. Wir hatten eine Idee: Wir mussten alle anziehen, die neue Tests schreiben wollten, aber um das Verständnis zu erleichtern, haben wir eine Reihe von Vorträgen erstellt. Wir haben gemeinsam einen Plan für jeden der zukünftigen Dozenten ausgearbeitet und einen Bericht darüber erstellt.

- Was waren die Schwierigkeiten der Schüler?

- Grundsätzlich natürlich Architektur. Es gab viele Fragen zur Struktur unserer Tests. Im Feedback haben wir viel zu diesem Thema geschrieben und mussten zusätzliche Vorträge halten, um es genauer zu erklären.

- Hat sich die Schule ausgezahlt?

- Ja auf jeden Fall. Dank ihr waren viele Leute an Schreibtests beteiligt, und im Durchschnitt begannen alle im Krankenhaus besser zu verstehen, was Autotests sind, wie sie geschrieben sind und wie sie ablaufen. Außerdem hat sich der Aufwand für die Automatisierung verringert: Wir erhalten jetzt um ein Vielfaches weniger Anfragen nach Hilfe bei der Analyse von Tests, da Tester und Entwickler in fast allen Situationen selbst damit fertig wurden. Nun, es gibt einige interne Vorteile für die Abteilung: Sie sammelten Erfahrungen mit Präsentationen und Vorträgen, aufgrund derer einige Automatisten bereits Präsentationen auf Konferenzen halten konnten, und erhielten außerdem eine Reihe leistungsstarker Videos und Präsentationen für Anfänger an Bord.

Ich möchte hinzufügen, dass die Kommunikation zwischen unseren Abteilungen auf ein lächerlich einfaches Niveau vereinfacht wurde. Zum Beispiel muss ich jetzt praktisch nicht mehr darüber nachdenken, welche Fälle und mit welchem ​​Atomizitätsgrad ich für die Automatisierung angeben soll. Infolgedessen kommt die ständig wachsende Sorgfalt bei der Testabdeckung vollständig von allen interessierten Parteien. Niemand fordert das Unmögliche von anderen.

Im Allgemeinen sind die Auswirkungen auf die Teamarbeit einzigartig positiv. Vielleicht denken die Kollegen, die diesen Artikel lesen, auch darüber nach, so etwas zu halten? Dann ist der Rat einfach: Es lohnt sich, wenn Autotests Ihre Priorität sind. Als nächstes werden wir über eine komplexere Frage sprechen: Wie kann alles so richtig wie möglich organisiert werden, damit die Kosten aller Parteien minimal und der Auspuff maximal sind?

Organisationstipps


Die Schule war nützlich, aber wie Stas zugab, gab es einige Schwierigkeiten, weshalb es notwendig war, zusätzliche Vorlesungen zu arrangieren. Und genau wie ein Student, der kürzlich studiert hat, sich selbst in Unwissenheit und sich selbst jetzt zu vergleichen, habe ich die folgenden Schritte formuliert, um meiner Meinung nach die ideale Methode zu schaffen, um Testern den Umgang mit Autotests beizubringen.

Schritt 0. Erstellen Sie ein Wörterbuch


Dieser Schritt ist natürlich nicht nur für die Qualitätssicherung erforderlich. Trotzdem möchte ich es ausdrücklich sagen: Die Automatisierungscodebasis sollte in lesbarer Form gespeichert werden. Programmiersprachen sind nicht zuletzt Sprachen , und von hier aus können Sie den Tauchgang beginnen.



Hier ist ein Screenshot der Aufgabenansicht mit den Namen der Elemente. Stellen Sie sich vor, Sie machen Taskview als Black Box und haben Selen in Ihrem Leben noch nie gesehen. Was macht dieser Code?



(Spoiler - durch Ruhe wird die Aufgabe im Namen des Administrators gelöscht, und dann sehen wir, dass es im Stream einen Datensatz darüber gibt.)

Allein dieser Schritt ermöglicht es Ihnen, die QSV- und QS-Sprachen näher zusammenzubringen. Für die Automatisierung ist es einfacher, das Ergebnis eines Laufs zu erklären. Manuelle Tester müssen weniger für das Kompilieren von Fällen ausgeben: Sie können weniger detailliert gestaltet werden. Dennoch verstehen sie sich. Wir haben schon vor Beginn des Trainings gewonnen.

Schritt 1. Wiederholen Sie die Sätze


Wir setzen die Parallele mit der Zunge fort. Wenn wir in der Kindheit sprechen lernen, gehen wir nicht von Etymologie und Semantik aus. Wir wiederholen "Mutter", "Spielzeug kaufen", aber wir gehen nicht sofort auf die vorindoeuropäischen Wurzeln dieser Wörter ein. Also hier: Es macht keinen Sinn, in die Tiefen der technischen Merkmale der Autotests einzutauchen, ohne zu versuchen, etwas zu schreiben, das funktioniert.
Es klingt etwas eingängig, aber es funktioniert.

In der ersten Lektion lohnt es sich, eine Grundlage dafür zu geben, wie Autotests direkt geschrieben werden. Wir helfen beim Einrichten der Entwicklungsumgebung (in meinem Fall Intellij IDEA) und erläutern anhand der verfügbaren Schritte die Mindestsprachregeln, die zum Schreiben einer anderen Methode in einer vorhandenen Klasse erforderlich sind. Wir schreiben ein oder zwei Tests mit ihnen und geben Hausaufgaben, die ich wie folgt gestalten würde: Ein Zweig, der vom Master zugewiesen wurde, aber mehrere Tests wurden darin gelöscht. Nur ihre Beschreibungen blieben übrig. Wir bitten die Tester, diese Tests wiederherzustellen (natürlich nicht durch show diff).

Nach den Ergebnissen wird derjenige, der zugehört und alles getan hat, in der Lage sein:

  1. Lernen Sie, mit der Schnittstelle der Entwicklungsumgebung zu arbeiten: Erstellen von Zweigen, Hotkeys, Commits und Push;
  2. die Grundlagen der Struktur der Sprache und der Klassen zu beherrschen: Wo injizieren und wo importieren, warum Anmerkungen benötigt werden und was für Symbole im Allgemeinen vorhanden ist, außer für Schritte;
  3. den Unterschied zwischen Handlung, Erwartung und Überprüfung verstehen, wo was zu verwenden ist;
  4. Beachten Sie den Unterschied zwischen Autotests und manuellen Überprüfungen: In Autotests können Sie den einen oder anderen Handler ziehen, anstatt Aktionen über die Schnittstelle auszuführen. Senden Sie beispielsweise einen Kommentar direkt an das Backend, anstatt die Taskansicht zu öffnen, die Eingabe hervorzuheben, die Schaltfläche Senden einzugeben und zu drücken.
  5. Formulieren Sie die Fragen, die im nächsten Schritt beantwortet werden.

Der letzte Punkt ist sehr wichtig. Diese Antworten können leicht im Voraus gegeben werden, aber dies ist ein wichtiges Lehrprinzip: Antworten ohne formulierte Fragen werden nicht gespeichert und gelten nicht, wenn sie schließlich benötigt werden.

Es wäre ideal, wenn der QA-Teamautomat zu diesem Zeitpunkt eine Aufgabe an ihn hängen würde, indem er ein paar Tests in einem Kampf schreibt und ihm erlaubt, sich auf seinen Thread festzulegen.

Was Sie nicht geben sollten:

  1. Vertiefte Kenntnisse der Funktionalität der Entwicklungsumgebung und der Programmiersprache selbst, die nur benötigt werden, wenn unabhängig mit Zweigen gearbeitet wird. Ich erinnere mich nicht, ich muss es zweimal oder dreimal erklären, und wir schätzen die Zeit der Automatisierung, oder? Beispiele: Konfliktlösung, Hinzufügen von Dateien zu Git, Erstellen von Klassen von Grund auf neu, Arbeiten mit Abhängigkeiten;
  2. alles was mit xpath zu tun hat. Im Ernst. Sie müssen separat, einmal und sehr konzentriert über ihn sprechen.

Schritt 2. Wir betrachten die Grammatik


Erinnern wir uns an den Screenshot mit der Aufgabenansicht aus Schritt 0. Wir haben einen Schritt namens checkCommentWithTextExists. Unser Tester versteht bereits, was dieser Schritt bewirkt, und Sie können in den Schritt hineinschauen und ihn ein wenig zerlegen.

Und drinnen haben wir folgendes:

onCommentBlock(userName).comment(expectedText).should(displayed()); 

Wo onCommentBlock ist

 onCommonStreamPanel().commentBlock(userName); 

Jetzt lernen wir, nicht „ein Spielzeug kaufen“ zu sagen, sondern „ein Spielzeug aus dem Detsky Mir-Laden kaufen, das von oben in einem blauen Schrank im dritten Regal steht“. Es muss erklärt werden, dass wir von größeren Elementen nacheinander auf das Element verweisen (Stream -> Block mit Kommentaren einer bestimmten Person -> der Teil dieses Blocks, in dem sich der angegebene Text befindet).

Nein, immer noch nicht die Zeit, über xpath zu sprechen. Um nur kurz zu erwähnen, dass alle diese Anweisungen von ihnen beschrieben werden und die Vererbung sie durchläuft. Aber Sie müssen über all diese Tester und Veyters sprechen, sie beziehen sich auf diesen Schritt und sind notwendig, um zu verstehen, was passiert. Aber nicht überlasten: Ihr Schüler kann später selbst komplexere Übungen lernen. Höchstwahrscheinlich sollte waitUntil, display () ;, exist () ;, not ();

Die Hausaufgabe liegt auf der Hand: Ein Zweig, in dem der Inhalt mehrerer Schritte gelöscht wird, die für eine bestimmte Anzahl von Tests erforderlich sind. Lassen Sie die Tester sie wiederherstellen und lassen Sie den Lauf wieder grün werden.

Wenn das Testerteam nicht nur über neue Funktionen, sondern auch über einige Fehlerkorrekturen verfügt, können Sie ihn außerdem bitten, sofort Tests für diese Fehler zu schreiben und diese zu beheben. Höchstwahrscheinlich wurden alle Elemente bereits beschrieben, nur ein paar oder drei Schritte können übersehen werden. Dies wird das perfekte Training sein.

Schritt 3. Vollständiges Eintauchen


So vollständig wie möglich für einen Tester, der weiterhin seine direkten Aufgaben erfüllen wird. Schließlich müssen Sie über xpath sprechen.

Zunächst machen wir deutlich, dass alle diese onCommentBlock und Kommentare von ihnen beschrieben werden.



Gesamt:

 "//div[contains(@class, 'stream-panel')]//a[contains(@class,'author') and text()='{{ userName }}']//div[contains(@class,'change-wrapper') and contains(.,'{{ text }}')]" 

Die Reihenfolge der Geschichte ist sehr wichtig. Zuerst nehmen wir einen vorhandenen xpath und zeigen, wie es auf der Registerkarte Elemente nur ein Element gibt. Als nächstes sprechen wir über die Struktur: Wenn Sie WebElement verwenden müssen und wenn Sie eine separate Datei für ein neues Element erstellen müssen. Dies wird dazu beitragen, die Vererbung besser zu verstehen.

Es muss explizit angegeben werden, dass ein einzelnes Element die gesamte Aufgabenansicht ist, ein untergeordnetes Element enthält - den gesamten Stream, der das untergeordnete Element enthält - einen separaten Kommentar usw. Untergeordnete Elemente - innerhalb des übergeordneten Elements sowohl auf der Seite als auch in der Struktur des Autotest-Frameworks.

Zu diesem Zeitpunkt sollte das Publikum bereits ein solides Verständnis dafür haben, wie es vererbt wird und was nach dem Punkt bei onCommentBlock eingegeben werden kann. An dieser Stelle erklären wir alle Operatoren: /, //,., [] Und so weiter. In der Ladung beweisen wir Kenntnisse über die Verwendung von @class und andere notwendige Dinge.



Die Schüler sollten verstehen, wie man xpath auf diese Weise übersetzt. Um zu reparieren - richtig, Hausaufgaben. Wir löschen die Beschreibungen der Elemente und lassen sie die Arbeit der Tests wiederherstellen.

Warum genau so?


Wir sollten eine Person mit kompliziertem Wissen nicht überladen, aber wir müssen alles auf einmal erklären, und dies ist ein schwieriges Dilemma. Auf diese Weise können wir die Zuhörer dazu bringen, zuerst Fragen zu stellen und etwas nicht zu verstehen, und sie im nächsten Moment beantworten. Wenn wir über die gesamte Architektur sprechen, werden zum Zeitpunkt der Analyse des Themas Schritte oder xpath die wichtigsten Teile aufgrund ihrer Unverständlichkeit bereits vergessen sein.

Trotzdem wird einer von Ihnen wahrscheinlich Erfahrungen darüber austauschen können, wie der Prozess noch weiter optimiert werden kann. Ich freue mich, solche Vorschläge in den Kommentaren zu lesen!

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


All Articles