Kurudi shuleni: jinsi ya kuwafunza wanaojaribu kwa mikono ili kukabiliana na majaribio ya kiotomatiki

Waombaji wanne kati ya watano wa QA wanataka kujifunza jinsi ya kufanya kazi na majaribio ya kiotomatiki. Sio makampuni yote yanaweza kutimiza tamaa hizo za wapimaji wa mwongozo wakati wa saa za kazi. Wrike alishikilia shule ya otomatiki kwa wafanyikazi na akagundua hamu hii kwa wengi. Nilishiriki katika shule hii haswa kama mwanafunzi wa QA.

Nilijifunza jinsi ya kufanya kazi na Selenium na sasa naunga mkono kwa uhuru idadi fulani ya majaribio ya kiotomatiki bila msaada wa nje. Na, kwa kuzingatia matokeo ya uzoefu wetu wa pamoja na hitimisho langu la kibinafsi, nitajaribu kupata fomula ya shule bora zaidi ya otomatiki.

Uzoefu wa Wrike katika kuandaa shule

Wakati haja ya shule ya automatisering ikawa wazi, shirika lake lilianguka kwa Stas Davydov, kiongozi wa kiufundi wa automatisering. Ni nani mwingine isipokuwa yeye anayeweza kueleza kwa nini walikuja na mpango huu, ikiwa walipata matokeo na ikiwa wanajuta wakati uliotumiwa? Wacha tumpe nafasi:

- Mnamo mwaka wa 2016, tuliandika mfumo mpya wa majaribio ya kiotomatiki na kuifanya iwe rahisi kuandika vipimo: hatua za kawaida zilionekana, muundo ulieleweka zaidi. Tulikuja na wazo: tunahitaji kuhusisha kila mtu ambaye anataka kuandika vipimo vipya, na ili iwe rahisi kuelewa, tuliunda mfululizo wa mihadhara. Kwa pamoja tulikuja na mpango wa mada, kila mmoja wa wahadhiri wa siku zijazo alichukua moja yake na kuandaa ripoti juu yake.

- Wanafunzi walipata shida gani?

- Hasa, bila shaka, usanifu. Kulikuwa na maswali mengi kuhusu muundo wa majaribio yetu. Katika maoni, mengi yaliandikwa juu ya mada hii na tulilazimika kushikilia mihadhara ya ziada ili kuelezea kwa undani zaidi.

- Je, shule ililipa?

- Ndiyo, hakika. Shukrani kwake, watu wengi walihusika katika kuandika vipimo, na, kwa wastani, katika hospitali, kila mtu alianza kuelewa vizuri nini autotess ni, jinsi imeandikwa na jinsi ya kuzinduliwa. Mzigo wa wahandisi wa otomatiki pia umepungua: sasa tunapokea mara nyingi maombi machache ya usaidizi wa kuchanganua majaribio, kwani wapimaji na watengenezaji wameanza kukabiliana na hili wenyewe katika karibu hali zote. Kweli, kuna faida kadhaa za ndani kwa idara: tulipata uzoefu katika mawasilisho na mihadhara, shukrani ambayo wahandisi wengine wa otomatiki tayari wameweza kutoa mawasilisho kwenye mikutano, na pia kupokea seti yenye nguvu ya video na mawasilisho kwa wageni wanaoingia.

Kwa niaba yangu mwenyewe, nitaongeza kuwa mawasiliano kati ya idara zetu yamerahisishwa hadi kufikia kiwango rahisi sana. Kwa mfano, sasa sihitaji kufikiria juu ya kesi gani na kwa kiwango gani cha atomiki cha kujiendesha. Matokeo yake, wahusika wote wanaovutiwa wanatunza kikamilifu chanjo ya mtihani, ambayo inakua daima. Hakuna anayedai kisichowezekana kutoka kwa wengine.

Kwa ujumla, athari kwenye kazi ya timu ni dhahiri chanya. Labda wenzako wanaosoma nakala hii pia wanafikiria kufanya kitu kama hicho? Kisha ushauri utakuwa rahisi: ni thamani yake ikiwa vipimo vya automatiska ni kipaumbele kwako. Ifuatayo, tutazungumza juu ya swali ngumu zaidi: jinsi ya kuandaa haya yote kwa usahihi iwezekanavyo, ili gharama za pande zote ziwe ndogo na matokeo ni ya juu.

Vidokezo vya kupanga

Shule hiyo ilikuwa muhimu, lakini, kama Stas alikubali, kulikuwa na shida, kwa sababu ambayo ilikuwa ni lazima kupanga mihadhara ya ziada. Na ilikuwa ni kama mwanafunzi wa hivi majuzi nikilinganisha kutojua na mimi mwenyewe-sasa nilipounda hatua zifuatazo ili kuunda, kwa maoni yangu, njia bora ya kufundisha wanaojaribu kuelewa majaribio ya kiotomatiki.

Hatua ya 0. Unda kamusi

Bila shaka, hatua hii inahitajika sio tu kwa QA. Walakini, nataka kuiweka wazi: msingi wa kiotomatiki lazima uhifadhiwe katika fomu inayoweza kusomeka. Lugha za programu - sio mdogo lugha, na kutoka kwa hii unaweza kuanza kupiga mbizi yako.

Kurudi shuleni: jinsi ya kuwafunza wanaojaribu kwa mikono ili kukabiliana na majaribio ya kiotomatiki

Hapa kuna picha ya skrini ya mwonekano wa kazi iliyo na majina ya vipengee. Wacha tufikirie kuwa unajaribu hakiki ya kazi kama kisanduku cheusi na hujawahi kuona Selenium maishani mwako. Kanuni hii inafanya nini?

Kurudi shuleni: jinsi ya kuwafunza wanaojaribu kwa mikono ili kukabiliana na majaribio ya kiotomatiki

(Spoiler - kazi inafutwa kupitia mapumziko kwa niaba ya msimamizi, na kisha tunaona kuwa kuna rekodi ya hii kwenye mkondo.)

Hatua hii pekee huleta lugha za QAA na QA karibu zaidi. Ni rahisi kwa timu za otomatiki kuelezea matokeo ya kukimbia; wanaojaribu kwa mikono wanapaswa kutumia juhudi kidogo kuunda kesi: zinaweza kuelezewa kidogo. Bado, kila mtu anaelewa kila mmoja. Tulipokea ushindi hata kabla ya mafunzo halisi kuanza.

Hatua ya 1. Rudia misemo

Wacha tuendelee sambamba na lugha. Tunapojifunza kuongea kama watoto, hatuanzi kutoka kwa etimolojia na semantiki. Tunarudia "mama", "nunua toy", lakini usiingie mara moja kwenye mizizi ya Proto-Indo-Ulaya ya maneno haya. Ndivyo ilivyo hapa: hakuna maana ya kupiga mbizi ndani ya kina cha sifa za kiufundi za majaribio ya kiotomatiki bila kujaribu kuandika kitu kinachofanya kazi.
Inaonekana kinyume kidogo, lakini inafanya kazi.

Katika somo la kwanza, inafaa kutoa msingi wa jinsi ya kuandika otomatiki moja kwa moja. Tunasaidia kusanidi mazingira ya ukuzaji (kwa upande wangu, Intellij IDEA), eleza kanuni za chini za lugha ambazo ni muhimu kuandika njia nyingine katika darasa lililopo kwa kutumia hatua zilizopo. Tunaandika jaribio moja au mbili pamoja nao na kuwapa kazi ya nyumbani, ambayo ningetengeneza kama hii: tawi lililokatwa kutoka kwa bwana, lakini majaribio kadhaa yameondolewa kutoka kwake. Imebaki maelezo yao tu. Tunawaomba wanaojaribu kurejesha majaribio haya (sio kupitia show diff, bila shaka).

Kama matokeo, yule aliyesikiliza na kufanya kila kitu ataweza:

  1. jifunze kufanya kazi na interface ya mazingira ya maendeleo: kuunda matawi, hotkeys, kujitolea na kusukuma;
  2. bwana misingi ya muundo wa lugha na madarasa: wapi kuingiza sindano na wapi kuagiza, kwa nini maelezo yanahitajika, na ni aina gani ya alama zinazopatikana huko, badala ya hatua;
  3. kuelewa tofauti kati ya hatua, kusubiri na kuangalia, wapi kutumia nini;
  4. tambua tofauti kati ya majaribio ya kiotomatiki na ukaguzi wa mwongozo: katika majaribio ya kiotomatiki unaweza kuvuta kidhibiti kimoja au kingine badala ya kutekeleza vitendo kupitia kiolesura. Kwa mfano, tuma maoni moja kwa moja kwa upande wa nyuma badala ya kufungua mwonekano wa kazi, kuchagua ingizo, kuandika maandishi na kubofya kitufe cha Tuma;
  5. tengeneza maswali ambayo yatajibiwa katika hatua inayofuata.

Hatua ya mwisho ni muhimu sana. Majibu haya yanaweza kutolewa kwa urahisi kabla ya wakati, lakini ni kanuni muhimu ya kufundisha ambayo majibu bila maswali yaliyotungwa hayakumbukwi na hayatumiki yanapohitajika.

Ingekuwa bora ikiwa kwa wakati huu mhandisi wa otomatiki kutoka kwa timu ya QA atampa kazi ya kuandika majaribio kadhaa kwenye vita na kumruhusu kujisalimisha kwa tawi lake.

Nini si kutoa:

  1. ujuzi wa kina zaidi wa utendaji wa mazingira ya maendeleo na lugha ya programu yenyewe, ambayo itahitajika tu wakati wa kufanya kazi na matawi kwa kujitegemea. Haitakumbukwa, itabidi uielezee mara mbili au tatu, lakini tunathamini wakati wa wahandisi wa otomatiki, sivyo? Mifano: kutatua migogoro, kuongeza faili kwa git, kuunda madarasa kutoka mwanzo, kufanya kazi na utegemezi;
  2. kila kitu kinachohusiana na xpath. Kwa umakini. Unahitaji kuzungumza juu yake kando, mara moja na kwa umakini sana.

Hatua ya 2. Kuangalia kwa karibu sarufi

Hebu tukumbuke picha ya skrini ya mwonekano wa kazi kutoka hatua #0. Tuna hatua inayoitwa checkCommentWithTextExists. Mjaribu wetu tayari anaelewa hatua hii hufanya na tunaweza kuangalia ndani ya hatua na kuitenganisha kidogo.

Na ndani tunayo yafuatayo:

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

Ambapo kwenyeCommentBlock iko

onCommonStreamPanel().commentBlock(userName);

Sasa tunajifunza kusema sio "kununua toy," lakini "nunua toy kutoka kwa duka la Detsky Mir, lililo kwenye baraza la mawaziri la bluu kwenye rafu ya tatu kutoka juu." Ni muhimu kueleza kwamba tunaelekeza kipengele kwa mfuatano, kutoka kwa vipengele vikubwa (mkondo -> zuia na maoni kutoka kwa mtu fulani -> sehemu hiyo ya kizuizi hiki ambapo maandishi maalum hukaa).

Hapana, bado sio wakati wa kuzungumza juu ya xpath. Taja kwa ufupi tu kwamba maagizo haya yote yanaelezewa nao na urithi unapitia kwao. Lakini tunahitaji kuzungumza juu ya wachezaji hawa wote na wahudumu; wanahusiana haswa na hatua hii na ni muhimu kuelewa kinachotokea. Lakini usipakie kupita kiasi: mwanafunzi wako anaweza kusoma madai magumu zaidi peke yake baadaye. Uwezekano mkubwa zaidi, inapaswa, kusubiriMpaka, kuonyeshwa();, kuwepo();, si(); inapaswa kutosha.

Kazi ya nyumbani ni dhahiri: tawi ambalo yaliyomo ya hatua kadhaa ambayo ni muhimu kwa idadi fulani ya vipimo yameondolewa. Waruhusu wanaojaribu kuzirejesha na kufanya kukimbia kuwa kijani tena.

Zaidi ya hayo, ikiwa timu ya majaribio haina vipengele vipya tu katika kazi yake, lakini pia baadhi ya marekebisho ya hitilafu, unaweza kumwomba kuandika mara moja vipimo vya mende hizi na kuzifungua. Uwezekano mkubwa zaidi, vitu vyote tayari vimeelezewa; hatua chache tu zinaweza kukosa. Hii itakuwa Workout kamili.

Hatua ya 3. Kuzamishwa kamili

Imekamilika iwezekanavyo kwa mpimaji ambaye ataendelea kutekeleza majukumu yake ya moja kwa moja. Mwishowe, tunahitaji kuzungumza juu ya xpath.

Kwanza, wacha tuweke wazi kwamba haya yote kwenyeCommentBlock na maoni yameelezewa nao.

Kurudi shuleni: jinsi ya kuwafunza wanaojaribu kwa mikono ili kukabiliana na majaribio ya kiotomatiki

Jumla:

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

Mpangilio wa hadithi ni muhimu sana. Kwanza, tunachukua xpath yoyote iliyopo na kuonyesha jinsi kichupo cha vipengele kina kipengele kimoja tu. Ifuatayo, tutazungumzia kuhusu muundo: wakati unahitaji kutumia WebElement, na wakati unahitaji kuunda faili tofauti kwa kipengele kipya. Hii itawawezesha kuelewa vizuri urithi.

Ni lazima ielezwe kwa uwazi kwamba kipengele kimoja ni mtazamo mzima wa kazi, ina kipengele cha mtoto - mkondo mzima, ambao una kipengele cha mtoto - maoni tofauti, nk. Vipengele vya watoto viko ndani ya vipengee vya mzazi kwenye ukurasa na katika muundo wa mfumo wa otomatiki.

Katika hatua hii, hadhira inapaswa kuwa imeelewa kwa uthabiti jinsi zinavyorithiwa na ni nini kinachoweza kuingizwa baada ya kitone kwenye onCommentBlock. Katika hatua hii, tunaelezea waendeshaji wote: /, //, ., [] na kadhalika. Tunaongeza ujuzi juu ya matumizi katika mzigo @class na mambo mengine ya lazima.

Kurudi shuleni: jinsi ya kuwafunza wanaojaribu kwa mikono ili kukabiliana na majaribio ya kiotomatiki

Wanafunzi wanapaswa kuelewa jinsi ya kutafsiri xpath kwa njia hii. Kuunganisha - hiyo ni kweli, kazi ya nyumbani. Tunafuta maelezo ya vipengele, waache kurejesha kazi ya vipimo.

Kwa nini njia hii maalum?

Hatupaswi kuzidisha mtu mwenye ujuzi mgumu, lakini lazima tueleze kila kitu mara moja, na hii ni shida ngumu. Njia hii itaturuhusu kwanza kuwafanya wasikilizaji kuuliza maswali na wasielewe kitu na kuyajibu wakati unaofuata. Ikiwa unasema juu ya usanifu mzima, basi kwa wakati mada ya hatua au xpath inachambuliwa, sehemu muhimu zaidi zake zitakuwa tayari zimesahau kutokana na kutoeleweka kwao.

Hata hivyo, baadhi yenu pengine wataweza kushiriki uzoefu wako kuhusu jinsi mchakato unaweza kuboreshwa hata zaidi. Nitafurahi kusoma mapendekezo sawa katika maoni!

Chanzo: mapenzi.com

Kuongeza maoni