Wie wir Automatisierungstester trainiert haben und was dabei herausgekommen ist / Sudo Null IT News

Einführung

Ich arbeite seit über 7 Jahren als QA-Automatisierungsingenieur. In dieser Zeit ist das Automatisierungsteam von 7 auf 70 Personen gewachsen und wir expandieren weiter. In unserem Unternehmen sind manuelle und automatisierte Testgruppen in getrennten Teams.

Manuelles Testen funktioniert in Produktteams, während automatisiertes Testen eine separate Abteilung ist. Manuelles Testen fungiert als Kundenarbeit für Automatisierer. Es gibt viele Streitigkeiten über eine solche Organisation, aber diese Informationen dienen dazu, das Gesamtbild zu verstehen.

Wir haben ein gut entwickeltes Autotesting: Zum Zeitpunkt der Erstellung dieses Artikels haben wir mehr als 100.000 einzigartige Tests. Es gibt ungefähr 45.000 End-to-End-Akzeptanztests für unser Hauptprodukt. Das spart über 400 Stunden manuelles Testen. Vorausgesetzt, ein Lauf dauert 1,5 Stunden. Damit das alles funktioniert, verwenden und entwickeln wir unsere eigenen internen Tools.

Da sich die Funktionalität und das Design ständig änderten, das Framework sich weiterentwickelte, wurde viel Zeit für den Support – also die Aktualisierung der Tests – aufgewendet. Aber es blieb weniger Zeit für die Entwicklung und Schaffung neuer. Wir haben uns entschieden, manuelle Tests in den Supportprozess einzubeziehen. Dadurch konnten wir mehrere Fliegen mit einer Klappe schlagen:

  • Automatisierer verbrachten weniger Zeit mit dem Support, mehr mit der Entwicklung.

  • Manuelles Testen begann, die Tests besser zu verstehen, was mehr Vertrauen in sie bedeutet.

  • Die Mitarbeiter begannen, sich selbst in eine neue Richtung zu entwickeln und die im Unternehmen benötigten Fähigkeiten zu verbessern. Zum Beispiel Kenntnisse in Python und interner Infrastruktur.

Im Allgemeinen haben wir einen Kurs konzipiert, in dem das manuelle Testen der Prinzipien und grundlegenden Ansätze zur Automatisierung vermittelt wird.

Zunächst einmal wollten wir beim Testen lernen, den Code von Autotests zu verstehen und in der Lage zu sein, selbstständig minimale Änderungen vorzunehmen (Lokatoren, Variablen, Daten usw. ändern), wenn es notwendig war, die Tests zu aktualisieren. Dies würde dazu beitragen, dem Automatisierer mehr Entwicklungszeit zu geben und die Tester weiterzuentwickeln.

Autotesting ist in erster Linie Testentwicklung. Wir setzten auf praktische Fähigkeiten. Wir haben sehr komplexe Schnittstellen mit häufiger Wiederverwendung von Code. Wir versuchen, die Designpraktiken von der Entwicklungsseite vollständig zu befolgen und enden mit einer großen Anzahl von Vererbungen und Kompositionen. Wir mussten nicht nur die Grundlagen der Automatisierung vermitteln, sondern auch diese Praktiken.

Wir hatten also eine große Anzahl von Leuten mit unterschiedlichen Ambitionen und technischen Fähigkeiten. Jemand wollte offensichtlich nicht einmal in Richtung Programmieren gehen, jemand hat es im Gegenteil lange und unabhängig gemacht.

Zwei Personen haben den Kurs entwickelt und darüber berichtet. Wir entschieden uns, eine Fokusgruppe von 13 Personen auszuwählen und unseren Kurs an ihnen auszuprobieren. Im Falle eines positiven Ergebnisses stellen Sie es allen zur Verfügung.

Was haben wir getan?

Wir haben den Kurs in 2 Blöcke unterteilt: „Python-Grundlagen“ und „Überblick über die Möglichkeiten unseres Frameworks“. Der Kurs bestand aus 9 Webinaren zu je 1,5 Stunden. Nach jedem Webinar gaben wir Aufgaben, die erledigt werden mussten. Zwischen den Webinaren gab es eine Woche Pause, damit die Leute es in Ruhe herausfinden konnten. Wir haben verstanden, dass dies ein Spiel für eine lange Zeit war, also haben wir nicht auf ein schnelles Ergebnis gehofft.

Block 1. Python-Grundlagen. Wir haben ganz von vorne angefangen, damit jeder Mitarbeiter in Zukunft auch ohne Programmiererfahrung anfangen kann, Python zu lernen.

Der Plan sah so aus:

Python-GrundlagenPython-Grundlagen

Wir haben keine pädagogischen oder methodischen Entdeckungen gemacht – alle Themen sind längst frei verfügbar. Wir haben versucht, ausführlich über die Grundlagen zu sprechen und uns auf die Aspekte zu konzentrieren, die wir ständig in unserer Arbeit verwenden, wobei wir einige Themen ausgelassen haben. Zum Beispiel, wie der Python-Interpreter arbeitet, die Ausgabe von Fließkommazahlen formatiert, mit regulären Ausdrücken arbeitet usw. Dadurch war es möglich, das Ziel schneller zu erreichen als die allgemeinen Kurse.

Nach jedem Teil wurden Hausaufgaben gemacht. Die Aufgaben waren vom Typ „Test Yourself“ und basierten auf dem gerade behandelten Stoff. In der Regel sind dies 6-8 kleine Beispiele:

  • Addieren Sie die Ziffern einer ganzen Zahl;

  • Drucken Sie alle geraden Vielfachen von drei Zahlen im Bereich von 1 bis N;

  • Schreiben Sie eine Funktion, die prüft, ob eine Zahl ein Palindrom ist;

  • Schreiben Sie mit dem datetime-Modul eine change_month-Funktion, die die angegebene Anzahl von Monaten zum angegebenen Datum addiert/subtrahiert.

Block 2. Ein Überblick über die Arbeit unseres Frameworks, die über Selenium geschrieben wurde. Darin haben wir versucht zu zeigen, wie unsere Schnittstellen aufgebaut sind, die wichtigsten Mechanismen, wie unsere Lösungen schnell und effizient verwendet, beschrieben und wiederverwendet werden können.

Das Aufbauprinzip ist das gleiche: 5 Webinare zu unterschiedlichen Themen. Die Hausaufgabe bestand darin, Tests zu schreiben.

RahmenarbeitRahmenarbeit

Als Ergebnis gaben sie ein komplettes Toolkit heraus, damit der Tester von gestern seine eigenen Autotests verstehen, parsen und sogar schreiben konnte.

Ergebnisse der Fokusgruppe

Nach den ersten vier Webinaren, die sich auf Python konzentrierten, entsprachen die Ergebnisse nicht unseren Erwartungen. Nur 5 von 13 Personen hielten mit dem vorgeschlagenen Tempo Schritt – 1 Webinar pro Woche und das Erledigen von Aufgaben darin. Die Probleme waren sehr unterschiedlich und oft Standard: Sie haben sich in der Zeit verschätzt, vieles nicht verstanden, ohne Aufforderungen war es schwierig.

Anzahl der von Mitarbeitern gelösten AufgabenAnzahl der von Mitarbeitern gelösten Aufgaben

Wir haben uns entschieden, nicht aufzugeben und zu beenden, was wir begonnen haben. Wir haben versucht, Themen so viel wie möglich zu kauen, um das Verständnis zu erhöhen und die Einstiegshürde zu senken. Infolgedessen begann jeder irgendwie tiefer zu verstehen, wie Autotests funktionieren. Und 6 Tester begannen, ihre Tests zu unterstützen und zu entwickeln.

Wir haben es geschafft, etwas weniger als die Hälfte der Teilnehmer zu unterrichten und zu interessieren. Dies empfanden wir als gutes Ergebnis. Alles wurde nicht unter Zwang erledigt, und wenn mindestens ein zweistelliger Prozentsatz der über 500 Tester des Unternehmens bei Autotests besser wird, können wir beim Support Zeit sparen. Das ist auch für das Prüfpersonal selbst wichtig – es beherrscht Fähigkeiten und verbessert seine Qualifikation.

Nach der Zusammenfassung der Ergebnisse haben wir uns entschieden, den Kurs „Für alle“ zu veröffentlichen.

Was war nicht vorgesehen?

Nach der Veröffentlichung von „Für alle“ hat die Zahl der Studienwilligen Dutzende überschritten. Aber es gab Momente, die wir nicht sofort durchdacht haben.

Überprüfung der Hausaufgaben. Jeder muss Feedback geben, sagen, wie es besser ist und wo es falsch ist. Die Arbeitsbelastung für zwei wurde unerträglich. Es war immer noch möglich, Personen in die Überprüfung der Aufgabe einzubeziehen, aber wir sind Automatisierer, warum nicht die Überprüfung der ersten Hälfte des Kurses automatisieren?

Hier kommt das Plugin zur Rettung. PyCharm Edu für PyCharm, in dem Sie Ihre eigenen Aufgaben und Prüfungen hinzufügen können. Einfach zu installieren und zu handhaben. Alle Aufgaben wurden dorthin portiert. Wer möchte, kann sich damit vertraut machen.

Ein Jobbeispiel mit PyCharmEduEin Jobbeispiel mit PyCharmEdu

Eine Flut von Fragen und Rückmeldungen. Je mehr Leute da waren, desto mehr Fragen stellten sie. Aus “Warum geht das hier nicht?” zu “Hilf bei der Installation von Git und zeige Lösungen.” Irgendwann fing es an, viel Zeit in Anspruch zu nehmen. Das Unternehmen beschäftigt mehr als 500 Tester, von denen viele sich hin und wieder dazu entschließen, den „Olymp der Autotests“ zu stürmen.

Um die Anzahl der Fragen zu reduzieren, haben wir eine eigene Wissensdatenbank erstellt, in der wir begonnen haben, Links zu den FAQ zu speichern. Glücklicherweise gibt es eine solche interne Funktionalität in unserem Unternehmen.

Autotest-WissensdatenbankAutotest-Wissensdatenbank

Aber egal wie gut Ihre Dokumentation ist, es wird immer Leute geben, die sie nicht gut lesen. Mit der Zeit begann die Anzahl der Links in persönlichen Nachrichten zu stören und zu dauern, dann haben wir einen allgemeinen Chat „Technischer Support für Autotests“ erstellt. Also haben wir 2 Probleme gelöst:

  • Fragen wurden absichtlich gestellt, weil jetzt mehr als 160 Chat-Teilnehmer sie sehen können;

  • Fragen können nicht nur von Automatoren beantwortet werden, sondern auch von den Testern selbst, die die Bumps bereits ausgefüllt haben.

    Chat-AvatarChat-Avatar

Materialaktualisierung. Im Laufe der Zeit hat sich das Autotesting in unserem Unternehmen sprunghaft weiterentwickelt und unser Kurs begann obsolet zu werden. Zum Beispiel haben wir von unittest auf pytest umgestellt, unsere Repositories aufgeteilt, wichtige Abhängigkeiten umbenannt. Natürlich blieben die allgemeinen Ansätze, aber jede Abweichung von dem, was im Video gesagt wurde, warf ein Dutzend Fragen auf. Und wenn die textliche Wissensbasis problemlos korrigiert werden kann, dann ist dies beim Video nicht der Fall. Wir versuchen, neue Webinare zu veröffentlichen und Neuigkeiten (mit gleichzeitigem Eintrag in die Wissensdatenbank) zu veröffentlichen, die helfen, die Neuerungen und Änderungen zu verstehen.

In unserem Unternehmen wird ein Teil der Arbeitszeit für das Absolvieren interner Kurse aufgewendet. Und es gibt sogar eine Motivation, sie zu bestehen: Für Tester, die Tests unterstützen, fügen sie 10 % zur aktuellen Note hinzu. Um die Kontrolle zu behalten, haben wir einen abschließenden Test mit 40 Fragen durchgeführt: 20 Fragen zur Kenntnis von Python, 20 Fragen zur Kenntnis von Autotesting-Ansätzen in unserem Unternehmen. Bei einer bestandenen Punktzahl von 70 haben 55 Teilnehmer hervorragende akademische Leistungen. Fast alle meistern unsere Aufgaben souverän.

Diagramm der beim Abschlusstest erzielten PunkteDiagramm der beim Abschlusstest erzielten Punkte

Der Kurs steht allen für 1,5 Jahre zur Verfügung. Während dieser Zeit begannen mehr als 200 Menschen, es zu passieren.

Umfrage testenUmfrage testen

Aber nicht alle haben es bis zum Ende geschafft. Einige merkten an, dass die Sortierung der Themen viel länger gedauert habe als geplant. Jemand trifft auf einzigartige Fehler, jemand verliert die Motivation und versteht, dass dies nichts für ihn ist. Wir versuchen, Feedback zu erhalten, Fehler zu analysieren, den Kurs weiterzuentwickeln und daran zu arbeiten, die Eintrittsbarriere zu verringern.

Was haben wir bekommen?

  • Mehr als 30 manuelle Tester begannen, die Automatisierung zu unterstützen.

  • 7 Testgruppen konnten Tests zur Unterstützung durchführen und eigenständig entwickeln.

  • Durch das Testen ist ein allgemeines Verständnis des Autotestgeräts gewachsen. Dadurch ist das Vertrauen in die Tests gestiegen.

  • Verbesserte allgemeine technische Grundbildung.

  • Basierend auf dem Kurs haben wir eine Menge hochwertiges Material erstellt, das den Mitarbeitern des Unternehmens hilft, Autotests zu verstehen.

  • Wir haben alle Webinare und Präsentationen gespeichert und begonnen, sie zu verwenden, auch für die Schulung von Junioren. Daher verbringen Mentoren weniger Zeit mit dem Erzählen.

  • Jetzt können manuelle Tests selbstständig geringfügige Änderungen vornehmen, und Automatisierer können mehr tun, um neue Tests, Tools und Kurse zum Testen zu entwickeln.

  • Wir haben einen weiteren Kurs für Automatisierer mobiler Apps erstellt.

Heute haben wir eine Infrastruktur, in der unserer Meinung nach ein Mitarbeiter die Grundlagen der Automatisierung erlernen kann. Er hat ein Verständnis dafür, was zu tun ist, was zu entscheiden ist, wo er eine Frage stellen, wo er die interessierenden Informationen lesen und sehen kann.

Similar Posts

Leave a Reply

Your email address will not be published.