Zréck an d'Schoul: wéi een manuell Tester trainéiert fir mat automatiséierten Tester ëmzegoen

Véier vu fënnef QA Bewerber wëllen léieren wéi een mat automatiséierten Tester schafft. Net all Firmen kënnen esou Wënsch vun manuellen Tester während der Aarbechtszäit erfëllen. Wrike huet eng Automatisatiounsschoul fir Mataarbechter gemaach an huet dëse Wonsch fir vill realiséiert. Ech hunn an dëser Schoul präzis als QA Student deelgeholl.

Ech hunn geléiert wéi ech mat Selenium schaffen an elo onofhängeg eng gewëssen Unzuel vun Autotester ënnerstëtzen mat praktesch keng Hëllef vun baussen. An, baséiert op de Resultater vun eiser gemeinsamer Erfahrung a meng perséinlech Conclusiounen, wäert ech probéieren déi ganz Formel fir déi ideal Schoul vun Automatisatioun ofzeschléissen.

Wrike seng Erfahrung an der Organisatioun vun enger Schoul

Wéi de Besoin fir eng Automatisatiounsschoul kloer gouf, ass seng Organisatioun op Stas Davydov gefall, den technesche Lead vun der Automatioun. Wien soss ausser hien kann erkläre firwat si mat dëser Initiativ komm sinn, ob se Resultater erreecht hunn an ob se d'Zäit bedaueren? Loosst eis him d'Wuert ginn:

- Am 2016 hu mir en neie Kader fir Autotester geschriwwen an et sou gemaach datt et einfach gouf Tester ze schreiwen: normal Schrëtt erschéngen, d'Struktur gouf vill méi verständlech. Mir sinn op eng Iddi komm: Mir mussen jidderee matmaachen, deen nei Tester schreiwen wëll, a fir et méi einfach ze verstoen, hu mir eng Serie vu Virträg erstallt. Mir hunn zesummen e Plang mat Themen erstallt, jidderee vun den zukünftegen Dozenten huet ee fir sech geholl an e Rapport doriwwer ausgeschafft.

- Wéi eng Schwieregkeeten hunn d'Schüler?

- Haaptsächlech, natierlech, Architektur. Et ware vill Froen iwwer d'Struktur vun eisen Tester. Am Feedback gouf vill iwwer dëst Thema geschriwwen a mir hu missen zousätzlech Virträg halen fir méi detailléiert z'erklären.

- Huet d'Schoul sech bezuelt?

- Jo, definitiv. Dank hatt ware vill Leit un d'Tester schrëftlech involvéiert, an am Duerchschnëtt am Spidol huet jiddereen ugefaang besser ze verstoen wat Autotester sinn, wéi se geschriwwe sinn a wéi se lancéiert ginn. D'Laascht op d'Automatisatiounsingenieuren ass och erofgaang: Mir kréien elo villmol manner Ufroe fir Hëllef bei der Analyse vun Tester, well Tester an Entwéckler ugefaang hunn dëst selwer a bal all Situatioun ze bewältegen. Gutt, et gi verschidde intern Virdeeler fir d'Departement: Mir hunn Erfarung a Presentatiounen a Virliesungen erlieft, duerch déi e puer Automatisatiounsingenieuren et scho fäerdeg bruecht hunn Presentatiounen op Konferenzen ze maachen, an och e mächtege Set vu Videoen a Presentatiounen fir Onboarding Newcomer kritt.

A mengem Numm wäert ech derbäisetzen datt d'Kommunikatioun tëscht eisen Departementer op e ganz lächerlechen Niveau vereinfacht gouf. Zum Beispill, elo brauch ech praktesch net ze denken iwwer wéi eng Fäll a wéi engem Niveau vun der Atomitéit automatiséiert gëtt. Als Resultat këmmeren all interesséiert Parteien sech voll ëm d'Testofdeckung, déi stänneg wiisst. Keen fuerdert dat Onméiglecht vun aneren.

Am Allgemengen ass den Impakt op d'Aarbecht vun den Teams definitiv positiv. Vläicht denken d'Kollegen, déi dësen Artikel liesen, och drun eppes ähnlech ze maachen? Da wäert de Rot einfach sinn: et ass derwäert wann automatiséiert Tester eng Prioritéit fir Iech sinn. Als nächst wäerte mir iwwer eng méi komplex Fro schwätzen: wéi all dat esou korrekt wéi méiglech ze organiséieren, sou datt d'Käschte vun alle Parteien minimal sinn an d'Ausgab maximal ass.

Organisatioun Tipps

D'Schoul war nëtzlech, awer, wéi Stas zouginn, et waren e puer Schwieregkeeten, wéinst deenen et néideg war, zousätzlech Virliesungen ze arrangéieren. An et war als kierzlech Student dee mech selwer an der Ignoranz a mir selwer vergläicht - elo hunn ech déi folgend Schrëtt formuléiert fir, menger Meenung no, den ideale Wee ze kreéieren fir Tester ze léieren automatiséiert Tester ze verstoen.

Schrëtt 0. Schafen engem Wierderbuch

Natierlech ass dëse Schrëtt net nëmme fir QA gebraucht. Wéi och ëmmer, ech wëll et explizit maachen: d'Automatiséierungscodebase muss an enger liesbarer Form gehale ginn. Programméierungssproochen - net zulescht Sproochen, an aus dëser kënnt Dir Är daucht ufänken.

Zréck an d'Schoul: wéi een manuell Tester trainéiert fir mat automatiséierten Tester ëmzegoen

Hei ass e Screenshot vun enger Taskview mat den Nimm vun den Elementer. Loosst eis virstellen datt Dir Taskview als schwaarz Këscht testt an nach ni Selen an Ärem Liewen gesinn hutt. Wat mécht dëse Code?

Zréck an d'Schoul: wéi een manuell Tester trainéiert fir mat automatiséierten Tester ëmzegoen

(Spoiler - d'Aufgab gëtt iwwer Rescht am Numm vum Administrateur geläscht, an da gesi mir datt et e Rekord vun dësem am Stream ass.)

Dëse Schrëtt eleng bréngt d'QAA an d'QA Sprooche méi no zesummen. Et ass méi einfach fir Automatisatiounsteams d'Resultater vun engem Laf z'erklären; manuell Tester musse manner Effort verbréngen fir Fäll ze kreéieren: si kënne manner detailléiert gemaach ginn. Wéi och ëmmer, jiddereen versteet sech. Mir kruten d'Gewënn nach ier den eigentlechen Training ugefaang huet.

Schrëtt 1. Widderhuelen Ausdréck

Loosst eis d'Parallel mat der Sprooch weiderféieren. Wa mir als Kanner léieren ze schwätzen, fänken mir net vun Etymologie a Semantik un. Mir widderhuelen "Mamm", "Kaaft e Spillsaach", awer gitt net direkt an d'Proto-Indo-europäesch Wuerzelen vun dëse Wierder. Also ass et hei: et ass kee Sënn fir an déi ganz Tiefe vun den techneschen Features vun Autotesten ze dauchen ouni ze probéieren eppes ze schreiwen wat funktionnéiert.
Et kléngt e bësse kontraintuitiv, awer et funktionnéiert.

An der éischter Lektioun ass et derwäert eng Basis ze ginn wéi Dir Autotester direkt schreift. Mir hëllefen d'Entwécklungsëmfeld opzestellen (a mengem Fall, Intellij IDEA), erklären d'Mindestsproochregelen déi néideg sinn fir eng aner Method an enger existéierender Klass mat de existente Schrëtt ze schreiwen. Mir schreiwen een oder zwee Tester mat hinnen a ginn hinnen Hausaufgaben, déi ech esou formatéiere géif: eng Branche ass aus dem Meeschter ofgeschnidden, awer e puer Tester sinn dovunner ewechgeholl. Nëmmen hir Beschreiwunge bleiwen. Mir froen Tester dës Tester ze restauréieren (net duerch Show Diff, natierlech).

Als Resultat kann deen deen nolauschtert an alles gemaach huet:

  1. léiere mat der Entwécklung Ëmfeld Interface ze schaffen: Branchen erstellen, Hotkeys, engagéiert a dréckt;
  2. Meeschter d'Basis vun der Struktur vun der Sprooch a Klassen: wou Injektiounen a wou ze importéieren, firwat Annotatiounen néideg sinn, a wéi eng Symboler do fonnt ginn, ausser Schrëtt;
  3. verstoen den Ënnerscheed tëscht Aktioun, wait a kontrolléieren, wou ze benotzen wat;
  4. bemierkt den Ënnerscheed tëscht Autotester a manuelle Kontrollen: an Autotester kënnt Dir een oder aneren Handler zéien anstatt Aktiounen duerch d'Interface ze maachen. Zum Beispill, schéckt e Kommentar direkt op de Backend anstatt eng Taskview opzemaachen, den Input auswielen, Text tippen a klickt op de Schécken Knäppchen;
  5. Froen ze formuléieren déi am nächste Schrëtt beäntwert ginn.

De leschte Punkt ass ganz wichteg. Dës Äntwerte kënne ganz einfach virdru ginn, awer et ass e wichtege Léierprinzip datt Äntwerten ouni formuléiert Froen net erënnert ginn an net benotzt ginn wann se endlech gebraucht ginn.

Et wier ideal wann zu dëser Zäit en Automatisatiounsingenieur aus dem QA Team him eng Aufgab zougewisen huet fir e puer Tester an der Schluecht ze schreiwen an him erlaabt a seng Branche z'ënnerschreiwen.

Wat net ze ginn:

  1. méi am-Déift Wëssen iwwer d'Funktionalitéit vum Entwécklungsëmfeld an der Programméierungssprooch selwer, déi nëmme gebraucht gëtt wann se onofhängeg mat Filialen schaffen. Et gëtt net erënnert, Dir musst et zweemol oder dräimol erklären, awer mir schätzen d'Zäit vun den Automatisatiounsingenieuren, richteg? Beispiller: Konflikter léisen, Dateien op Git bäidroen, Klassen aus Schrummen erstellen, mat Ofhängegkeeten schaffen;
  2. alles am Zesummenhang mat xpath. Eescht. Dir musst iwwer dat getrennt schwätzen, eemol a ganz konzentréiert.

Schrëtt 2. Eng méi no kucken op d'Grammatik

Loosst eis un den Taskview Screenshot vum Schrëtt #0 erënneren. Mir hunn e Schrëtt genannt checkCommentWithTextExists. Eisen Tester versteet scho wat dëse Schrëtt mécht a mir kënnen an de Schrëtt kucken an et e bësse zersetzen.

A bannen hu mir déi folgend:

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

Wou onCommentBlock ass

onCommonStreamPanel().commentBlock(userName);

Elo léiere mir net ze soen "Kaaft e Spillsaach", mee "Kaaft e Spillsaach aus dem Detsky Mir Buttek, deen am bloe Cabinet op der drëtter Regal vun uewen läit." Et ass néideg ze erklären datt mir op en Element sequenziell weisen, vu gréisseren Elementer (Stream -> Block mat Kommentaren vun enger bestëmmter Persoun -> deen Deel vun dësem Block wou de spezifizéierten Text sëtzt).

Nee, et ass nach net Zäit iwwer xpath ze schwätzen. Just ernimmt kuerz datt all dës Instruktioune vun hinnen beschriwwe ginn an datt d'Ierfschaft duerch si geet. Awer mir mussen iwwer all dës Matcher a Kelner schwätzen; si bezéie sech speziell op dëse Schrëtt a si noutwendeg fir ze verstoen wat geschitt. Awer net iwwerlaascht: Äre Student kann méi komplex Behaaptungen eleng méi spéit studéieren. Wahrscheinlech, soll, waitUntil, ugewisen ();, existéieren ();, net (); soll duergoen.

D'Hausaufgaben ass evident: eng Branche an där den Inhalt vu verschiddene Schrëtt, déi fir eng gewëssen Unzuel vun Tester néideg sinn, ewechgeholl ginn. Loosst d'Tester se restauréieren a maachen de Laf erëm gréng.

Zousätzlech, wann d'Testteam net nëmmen nei Features a senger Aarbecht huet, awer och e puer Bugfixes, kënnt Dir him froen direkt Tester fir dës Bugs ze schreiwen an se ze verëffentlechen. Wahrscheinlech sinn all d'Elementer scho beschriwwe ginn; nëmmen e puer Schrëtt kënne fehlen. Dëst wäert de perfekte Workout sinn.

Schrëtt 3. Voll immersion

Sou komplett wéi méiglech fir en Tester, dee weider seng direkt Aufgaben ausféiert. Endlech musse mir iwwer xpath schwätzen.

Als éischt, loosst eis et kloer maachen datt all dës onCommentBlock a Kommentar vun hinnen beschriwwe ginn.

Zréck an d'Schoul: wéi een manuell Tester trainéiert fir mat automatiséierten Tester ëmzegoen

Total:

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

D'Uerdnung vun der Geschicht ass ganz wichteg. Als éischt huelen mir all existent xpath a weisen wéi d'Elementer Tab een an nëmmen een Element enthält. Als nächst wäerte mir iwwer d'Struktur schwätzen: wann Dir WebElement benotze musst, a wann Dir eng separat Datei fir en neit Element erstellt. Dëst erlaabt Iech Ierfschaft besser ze verstoen.

Et muss explizit uginn datt en eenzegt Element de ganzen Taskview ass, et enthält e Kand Element - de ganze Stream, deen e Kand Element enthält - e separate Kommentar, etc. Kand Elementer sinn bannent Elterendeel Elementer souwuel op der Säit an an der Struktur vun der Autotest Kader.

Zu dësem Zäitpunkt sollt d'Publikum fest verstanen hunn wéi se ierflech sinn a wat no der Punkt am onCommentBlock aginn ka ginn. Zu dësem Zäitpunkt erkläre mir all d'Bedreiwer: /, //, ., [] an sou weider. Mir addéiere Wëssen iwwer d'Benotzung an d'Laascht @class an aner néideg Saachen.

Zréck an d'Schoul: wéi een manuell Tester trainéiert fir mat automatiséierten Tester ëmzegoen

D'Schüler solle verstoen wéi een xpath op dës Manéier iwwersetzt. Fir ze konsolidéieren - dat ass richteg, Hausaufgaben. Mir läschen d'Beschreiwunge vun den Elementer, loosst se d'Aarbecht vun den Tester restauréieren.

Firwat dëse spezielle Wee?

Mir sollen net eng Persoun mat komplex Wëssen iwwerlaascht, mä mir mussen alles op eemol erklären, an dat ass e schwéieren Dilemma. Dëse Wee erlaabt eis fir d'éischt d'Nolauschterer Froen ze stellen an eppes net ze verstoen an se den nächste Moment ze beäntweren. Wann Dir iwwer d'ganz Architektur schwätzt, wann d'Thema Schrëtt oder xpath analyséiert gëtt, ginn déi wichtegst Deeler dovunner scho vergiess wéinst hirer Onverständlechkeet.

Wéi och ëmmer, e puer vun iech wäerten wahrscheinlech fäeg sinn Är Erfahrung ze deelen wéi de Prozess nach méi optimiséiert ka ginn. Ech wäert frou ähnlech Suggestiounen an de Kommentaren ze liesen!

Source: will.com

Setzt e Commentaire