Atpakaļ uz skolu: kā apmācīt manuālos testētājus rīkoties ar automatizētiem testiem

Četri no pieciem kvalitātes nodroÅ”ināŔanas pretendentiem vēlas iemācÄ«ties strādāt ar automatizētiem testiem. Ne visi uzņēmumi var izpildÄ«t Ŕādas manuālo testētāju vēlmes darba laikā. Wrike organizēja automatizācijas skolu darbiniekiem un Ä«stenoja Å”o vēlmi daudziem. Å ajā skolā piedalÄ«jos tieÅ”i kā QA students.

Es iemācÄ«jos strādāt ar Selēnu un tagad patstāvÄ«gi atbalstu noteiktu skaitu automātisko testu, praktiski bez ārējas palÄ«dzÄ«bas. Un, pamatojoties uz mÅ«su kopÄ«gās pieredzes rezultātiem un saviem personÄ«gajiem secinājumiem, es mēģināŔu atvasināt paÅ”u ideālākās automatizācijas skolas formulu.

Raikas pieredze skolas organizÄ“Å”anā

Kad kļuva skaidrs, ka nepiecieÅ”ama automatizācijas skola, tās organizācija uzticējās Stasam Davidovam, automatizācijas tehniskajam vadÄ«tājam. KurÅ” gan cits, ja ne viņŔ var paskaidrot, kāpēc viņi nāca klajā ar Å”o iniciatÄ«vu, vai viņi ir sasnieguÅ”i rezultātus un vai viņi nožēlo pavadÄ«to laiku? Dosim viņam vārdu:

ā€” 2016. gadā uzrakstÄ«jām jaunu ietvaru autotestiem un izveidojām tā, lai testu rakstÄ«Å”ana kļuva vienkārÅ”a: parādÄ«jās normāli soļi, struktÅ«ra kļuva daudz saprotamāka. Mums radās ideja: jāiesaista visi, kas vēlas rakstÄ«t jaunus kontroldarbus, un, lai bÅ«tu vieglāk saprast, izveidojām lekciju ciklu. KopÄ«gi izdomājām tēmu plānu, katrs no topoÅ”ajiem pasniedzējiem paņēma vienu sev un sagatavoja par to referātu.

ā€” Kādas grÅ«tÄ«bas bija skolēniem?

ā€” Galvenokārt, protams, arhitektÅ«ra. Bija daudz jautājumu par mÅ«su testu struktÅ«ru. Atsauksmēs par Å”o tēmu tika rakstÄ«ts daudz un nācās rÄ«kot papildus lekcijas, lai sÄ«kāk izskaidrotu.

ā€” Vai skola atmaksājās?

- Jā noteikti. Pateicoties viņai, testu rakstÄ«Å”anā tika iesaistÄ«ti daudzi cilvēki, un vidēji slimnÄ«cā visi sāka labāk saprast, kas ir autotesti, kā tie tiek rakstÄ«ti un kā tie tiek palaisti. Samazinājusies arÄ« automatizācijas inženieru slodze: tagad mēs saņemam daudzkārt mazāk lÅ«gumu pēc palÄ«dzÄ«bas testu analÄ«zē, jo testētāji un izstrādātāji gandrÄ«z visās situācijās ir sākuÅ”i ar to tikt galā paÅ”i. Nu, nodaļai ir vairākas iekŔējās priekÅ”rocÄ«bas: mēs guvām pieredzi prezentācijās un lekcijās, pateicoties kurām daži automatizācijas inženieri jau ir paspējuÅ”i uzstāt prezentācijas konferencēs, kā arÄ« saņēmuÅ”i jaudÄ«gu video un prezentāciju komplektu jaunpienācējiem.

Savā vārdā piebildÄ«Å”u, ka saziņa starp mÅ«su nodaļām ir vienkārÅ”ota lÄ«dz gluži smieklÄ«gi vieglam lÄ«menim. Piemēram, tagad man praktiski nav jādomā, kurus gadÄ«jumus un kādā atomitātes lÄ«menÄ« automatizēt. Rezultātā visi interesenti pilnÄ«bā rÅ«pējas par testa pārklājumu, kas nepārtraukti pieaug. Neviens neprasa no citiem neiespējamo.

Kopumā ietekme uz komandu darbu noteikti ir pozitÄ«va. VarbÅ«t arÄ« kolēģi, lasot Å”o rakstu, domā darÄ«t ko lÄ«dzÄ«gu? Tad padoms bÅ«s vienkārÅ”s: tas ir tā vērts, ja automātiskās pārbaudes ir jÅ«su prioritāte. Tālāk mēs runāsim par sarežģītāku jautājumu: kā to visu organizēt pēc iespējas pareizāk, lai visu puÅ”u izmaksas bÅ«tu minimālas un produkcija bÅ«tu maksimāla.

OrganizēŔanas padomi

Skola bija noderÄ«ga, taču, kā atzina Stass, bija zināmas grÅ«tÄ«bas, kuru dēļ bija jāorganizē papildu lekcijas. Un tieÅ”i kā nesens students, salÄ«dzinot sevi neziņā un sevi tagad, es formulēju Ŕādas darbÄ«bas, lai izveidotu, manuprāt, ideālu veidu, kā iemācÄ«t testētājiem izprast automatizētos testus.

0. darbÄ«ba. Izveidojiet vārdnÄ«cu

Protams, Å”is solis ir vajadzÄ«gs ne tikai kvalitātes nodroÅ”ināŔanai. Tomēr es vēlos to skaidri pateikt: automatizācijas kodu bāze ir jāsaglabā lasāmā formā. ProgrammÄ“Å”anas valodas - ne mazāk svarÄ«gi яŠ·Ń‹ŠŗŠø, un no tā jÅ«s varat sākt savu nirÅ”anu.

Atpakaļ uz skolu: kā apmācīt manuālos testētājus rīkoties ar automatizētiem testiem

Å eit ir uzdevuma skata ekrānuzņēmums ar elementu nosaukumiem. Iedomāsimies, ka jÅ«s testējat TaskView kā melno kasti un nekad savā dzÄ«vē neesat redzējis Selēnu. Ko Å”is kods dara?

Atpakaļ uz skolu: kā apmācīt manuālos testētājus rīkoties ar automatizētiem testiem

(Spoileris ā€” uzdevums administratora vārdā tiek izdzēsts, izmantojot atpÅ«tu, un tad mēs redzam, ka straumē ir par to ieraksts.)

Šis solis vien tuvina QAA un QA valodas. Automatizācijas komandām ir vieglāk izskaidrot darbības rezultātus; manuālajiem testētājiem ir jātērē mazāk pūļu, veidojot gadījumus: tos var padarīt mazāk detalizētus. Tomēr visi viens otru saprot. Laimestu saņēmām pat pirms īstā treniņa sākuma.

1. darbība. Atkārtojiet frāzes

Turpināsim paralēli ar valodu. Kad mēs bērnÄ«bā mācāmies runāt, mēs nesākam no etimoloÄ£ijas un semantikas. Mēs atkārtojam ā€œmammaā€, ā€œpērciet rotaļlietuā€, bet nekavējoties neiedziļināmies Å”o vārdu protoindoeiropieÅ”u saknēs. Tā tas ir Å”eit: nav jēgas ienirt paÅ”os autotestu tehnisko Ä«paŔību dziļumos, nemēģinot uzrakstÄ«t kaut ko, kas darbojas.
Tas izklausās nedaudz pretrunīgi, bet tas darbojas.

Pirmajā nodarbÄ«bā ir vērts dot pamatu, kā tieÅ”i rakstÄ«t autotestus. Mēs palÄ«dzam izveidot izstrādes vidi (manā gadÄ«jumā Intellij IDEA), izskaidrojam minimālos valodas noteikumus, kas nepiecieÅ”ami, lai esoÅ”ajā klasē rakstÄ«tu citu metodi, izmantojot esoŔās darbÄ«bas. Ar viņiem uzrakstām vienu vai divus kontroldarbus un uzdodam mājasdarbu, ko es noformētu Ŕādi: no meistara atzaroja zars, bet no tā ir izņemti vairāki kontroldarbi. PalikuÅ”i tikai to apraksti. Mēs lÅ«dzam testētājus atjaunot Å”os testus (protams, ne izmantojot Å”ova atŔķirÄ«bas).

Rezultātā tas, kurÅ” klausÄ«jās un darÄ«ja visu, varēs:

  1. iemācīties strādāt ar izstrādes vides interfeisu: veidojot filiāles, karstos taustiņus, commits un push;
  2. apgūt valodas un nodarbību struktūras pamatus: kur ievietot injekcijas un kur importēt, kāpēc vajadzīgas anotācijas un kādi simboli tur atrodami, bez soļiem;
  3. saprast atŔķirību starp darbību, gaidīt un pārbaudīt, kur ko izmantot;
  4. ievērojiet atŔķirÄ«bu starp automātiskajām pārbaudēm un manuālajām pārbaudēm: automātiskajos testos jÅ«s varat izvilkt vienu vai otru apdarinātāju, nevis veikt darbÄ«bas caur saskarni. Piemēram, nosÅ«tiet komentāru tieÅ”i uz aizmugursistēmu, nevis atveriet uzdevuma skatu, atlasiet ievadi, ierakstiet tekstu un noklikŔķiniet uz pogas SÅ«tÄ«t;
  5. formulējiet jautājumus, uz kuriem atbildes tiks sniegtas nākamajā solī.

Pēdējais punkts ir ļoti svarÄ«gs. Å Ä«s atbildes var viegli sniegt pirms laika, taču svarÄ«gs ir mācÄ«Å”anas princips, ka atbildes bez formulētiem jautājumiem netiek atcerēties un netiek izmantotas, kad tās beidzot ir vajadzÄ«gas.

BÅ«tu ideāli, ja Å”ajā laikā automatizācijas inženieris no QA komandas viņam uzticētu uzdevumu uzrakstÄ«t pāris testus kaujā un ļautu viņam pakļauties savai nozarei.

Ko nedrīkst dot:

  1. padziļinātākas zināŔanas par izstrādes vides funkcionalitāti un paÅ”u programmÄ“Å”anas valodu, kas bÅ«s nepiecieÅ”amas tikai patstāvÄ«gi strādājot ar filiālēm. To neatcerēsies, jums tas bÅ«s jāpaskaidro divreiz vai trÄ«sreiz, bet mēs augstu vērtējam automatizācijas inženieru laiku, vai ne? Piemēri: konfliktu risināŔana, failu pievienoÅ”ana git, klaÅ”u izveide no nulles, darbs ar atkarÄ«bām;
  2. viss, kas saistÄ«ts ar xpath. Nopietni. Par to jārunā atseviŔķi, vienreiz un ļoti koncentrēti.

2. solis. Sīkāka gramatikas apskate

Atcerēsimies uzdevuma skata ekrānuzņēmumu no 0. darbÄ«bas. Mums ir darbÄ«ba ar nosaukumu checkCommentWithTextExists. MÅ«su testētājs jau saprot, ko dara Å”is solis, un mēs varam ieskatÄ«ties soļa iekÅ”pusē un nedaudz to sadalÄ«t.

Un iekŔā mums ir Ŕādas lietas:

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

Kur atrodas onCommentBlock

onCommonStreamPanel().commentBlock(userName);

Tagad mēs mācāmies teikt nevis ā€œpērc rotaļlietuā€, bet gan ā€œpērc rotaļlietu veikalā Detsky Mir, kas atrodas zilajā skapÄ« treÅ”ajā plauktā no augÅ”asā€. Jāpaskaidro, ka mēs norādām uz elementu secÄ«gi, no lielākiem elementiem (straume -> bloks ar komentāriem no noteiktas personas -> tā Ŕī bloka daļa, kurā atrodas norādÄ«tais teksts).

Nē, vēl nav pienācis laiks runāt par xpath. VienkārÅ”i Ä«si norādiet, ka viņi ir aprakstÄ«juÅ”i visus Å”os norādÄ«jumus un mantoÅ”ana notiek caur tiem. Bet mums ir jārunā par visiem Å”iem saderinātājiem un viesmīļiem; tie attiecas tieÅ”i uz Å”o soli un ir nepiecieÅ”ami, lai saprastu, kas notiek. Bet nepārslogojieties: vēlāk jÅ«su students var patstāvÄ«gi izpētÄ«t sarežģītākus apgalvojumus. Visticamāk, vajadzētu, gaidÄ«tUntil, parādÄ«ts();, pastāv();, not(); vajadzētu pietikt.

Mājasdarbs ir acÄ«mredzams: filiāle, kurā ir noņemts vairāku darbÄ«bu saturs, kas nepiecieÅ”ams noteiktam kontroldarbu skaitam. Ä»aujiet testētājiem tos atjaunot un padarÄ«t skrējienu atkal zaļu.

Turklāt, ja testÄ“Å”anas komandai ir ne tikai jaunas funkcijas, bet arÄ« daži kļūdu labojumi, varat lÅ«gt viņu nekavējoties uzrakstÄ«t Å”o kļūdu testus un atbrÄ«vot tos. Visticamāk, visi elementi jau ir aprakstÄ«ti, var pietrÅ«kt tikai pāris soļu. Å is bÅ«s ideāls treniņŔ.

Solis 3. Pilnīga iegremdēŔana

Pēc iespējas pilnÄ«gāks testētājam, kurÅ” gatavojas turpināt pildÄ«t savus tieÅ”os pienākumus. Visbeidzot, mums ir jārunā par xpath.

Pirmkārt, ļaujiet mums paskaidrot, ka viņi apraksta visus Å”os onCommentBlock un komentārus.

Atpakaļ uz skolu: kā apmācīt manuālos testētājus rīkoties ar automatizētiem testiem

Kopā:

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

Ä»oti svarÄ«ga ir stāsta secÄ«ba. Pirmkārt, mēs ņemam jebkuru esoÅ”o xpath un parādām, kā elementu cilnē ir viens un tikai viens elements. Tālāk mēs runāsim par struktÅ«ru: kad jums ir jāizmanto WebElement un kad ir jāizveido atseviŔķs fails jaunam elementam. Tas ļaus jums labāk izprast mantojumu.

Ir skaidri jānorāda, ka viens elements ir viss uzdevuma skats, tajā ir bērnelements - visa straume, kurā ir bērna elements - atseviŔķs komentārs utt. Pakārtotie elementi atrodas vecāku elementos gan lapā, gan automātiskās pārbaudes ietvara struktÅ«rā.

Å ajā brÄ«dÄ« auditorijai bija skaidri jāsaprot, kā tās tiek mantotas un ko var ievadÄ«t pēc punkta onCommentBlock. Å ajā brÄ«dÄ« mēs izskaidrojam visus operatorus: /, //, ., [] un tā tālāk. Kravai pievienojam zināŔanas par lietoÅ”anu @class un citas nepiecieÅ”amās lietas.

Atpakaļ uz skolu: kā apmācīt manuālos testētājus rīkoties ar automatizētiem testiem

Studentiem vajadzētu saprast, kā Ŕādā veidā tulkot xpath. Konsolidēt - tieÅ”i tā, mājasdarbs. IzdzÄ“Å”am elementu aprakstus, ļaujam atjaunot testu darbu.

Kāpēc Å”is konkrētais ceļŔ?

Mums nevajadzētu pārslogot cilvēku ar sarežģītām zināŔanām, bet mums viss ir jāpaskaidro uzreiz, un tā ir sarežģīta dilemma. Å is ceļŔ ļaus mums vispirms likt klausÄ«tājiem uzdot jautājumus un kaut ko nesaprast un atbildēt uz tiem jau nākamajā brÄ«dÄ«. Ja runā par visu arhitektÅ«ru, tad, kad tiks analizēta soļu vai xpath tēma, tās svarÄ«gākās daļas jau bÅ«s aizmirstas to nesaprotamÄ«bas dēļ.

Tomēr daži no jums, iespējams, varēs dalÄ«ties pieredzē par to, kā procesu var optimizēt vēl vairāk. Ar prieku lasÄ«Å”u lÄ«dzÄ«gus ieteikumus komentāros!

Avots: www.habr.com

Pievieno komentāru