Kodėl norėtumėte automatizuoti testą?

Kodėl automatizuotumėte testą? Kokią naudą gauname bandymų automatizavimu?

Gana dažnai, kai žmonės įsitraukia į automatizuotą testavimą, pagrindinis dėmesys skiriamas nuo gerų testų kūrimo iki užtikrinimo, kad automatinis kodas iš tikrųjų galėtų atlikti ir vykdyti testą.

Sprinto metu, kai komandos nariai patiria spaudimą pristatyti istorijas per ribotą laiką, paprastai nepakanka laiko išbandyti visus suplanuotus scenarijus, jau nekalbant apie automatinių bandomųjų scenarijų rašymą, kad būtų galima išbandyti naują funkcionalumą.


Mes galime užsibūti detaliau apie darbą, koduoti, peržiūrėti, vykdyti ir pamiršti pagrindinę priežastį kodėl mes iš tikrųjų automatizuojame testą!



Kodėl mes automatizuojame testą?

Tai yra vienas iš klausimų, kuriuos užduodu apklausdamas kandidatus į „Test Automation“ vaidmenį ir, mano nuostabai, atrodo, kad daugelis kandidatų praleido pagrindinę ir svarbiausią priežastį automatizuoti testą. Kai kurie atsakymai, kuriuos gaunu iš kandidatų, yra gana patikimi, bet vis tiek ne tas atsakymas, kurio ieškau. Kai kurie atsakymai, kuriuos gaunu į pirmiau pateiktą klausimą, yra šie:


Padidinkite bandymo aprėptį

Šis atsakymas yra pagrįstas, tačiau kaip apibrėžti aprėptį? Jei turime 100 testų, kaip mes galime įvertinti procentinę aprėptį?



Turėdami brandžią automatizuotų bandymų automatikos praktiką, per gana trumpą laiką galite atlikti šimtus bandymų.

Dėl to mes galime sukurti daugiau bandymų atvejų, daugiau bandymo scenarijų ir išbandyti su daugiau įvestų duomenų apie tam tikrą funkciją ir taip gauti daugiau pasitikėjimo, kad jų sistema veikia taip, kaip tikėtasi.

Tačiau atliekant bandymus ir ypač bandymų automatizavimą, daugiau testų dar nereiškia geresnės kokybės ar daugiau galimybių rasti klaidų.


Martino Fowlerio įraše, kuriame jis diskutuoja Bandymo aprėptis , jis užsimena

Jei nustatysite tikslą tam tikru aprėpties lygiu, žmonės bandys jį pasiekti. Bėda ta, kad atliekant žemos kokybės bandymus pernelyg lengva pasiekti didelį aprėpties skaičių. Absurdiškiausiu lygiu, kurį turite „AssertionFreeTesting“ . Tačiau net ir be to gausite daugybę bandymų, ieškodami dalykų, kurie retai klysta, atitraukdami jus nuo tikrinių dalykų išbandymo.

Sutaupyti laiko

Šis atsakymas taip pat teisingas, nes galite praleisti brangų laiką atlikdami įdomius tiriamuosius bandymus, kol vykdomi automatiniai testai. Tačiau norint sukurti visiškai naują funkciją, automatinių scenarijų rašymas gali užtrukti ilgiau, nei išbandyti šią funkciją rankiniu būdu iš pirmo karto.

Taigi, svarbu pažymėti, kad norint sutaupyti laiko nuo automatizuotų bandymų, reikia iš pradžių dėti daugiau pastangų scenarijuojant automatizuotus testus, užtikrinant, kad jie būtų peržiūrimi, ir kad vykdant automatinius testus nebūtų jokių žagsėjimų.


Rasti daugiau klaidų

Šis atsakymas mane kartais jaudina, nes niekada nemačiau metrikos, rodančios, kad automatizavimo metu buvo rasta daugiau klaidų nei rankinis / tiriamasis testavimas. Automatizuoti testai paprastai patikrina, ar sistemoje nėra regresijos įdiegus naują kodą.

Visada yra daugiau galimybių rasti klaidų naujose funkcijose nei esamose funkcijose. Be to, yra ir kitų priežasčių kodėl automatizuotais bandymais nepavyksta rasti defektų

Pakeiskite rankinius testerius

Tai turbūt blogiausias atsakymas, kurį girdėjau, kodėl automatizuojame testą. Yra aiškus skirtumas tarp to, ką daro rankinis testeris, ir tai, ką tikrina automatinis testeris. Automatinis testavimas nėra testavimas, tai yra faktų tikrinimas.

Kad galėtume automatizuoti testą, turime žinoti laukiamą rezultatą, kad galėtume patikrinti galiojantį ar neteisingą rezultatą. Tai suteikia mums teisingą ar melagingą, teigiamą ar neigiamą rezultatą, pralaimėjimą ar nesėkmę.


Kita vertus, testavimas yra tyrimo užduotis, kai mes kartu projektuojame ir vykdome testus. Daugelis dalykų gali elgtis kitaip, kai pastebėti gali tik stebintis žmogus.

Gerų rankinių testuotojų visada reikės dėl skirtingo mąstymo ir galimybės abejoti sistema.



Pagerinti kokybę

Nors automatizuoti testai gali mums greitai pateikti atsiliepimus ir įspėti apie programos būklę, kad galėtume atkurti bet kokį sistemos pažeidimą padariusį kodo pakeitimą, automatizuotas testavimas savaime nepagerina kokybės. Tai, kad turime brandžią bandymų automatiką, dar negarantuoja, kad į gamybą nepateks jokių klaidų.

Mes galime pagerinti kokybę užtikrindami teisingą praktiką nuo kūrimo ciklo pradžios iki pabaigos. Kokybė nėra nuošalė; jis turėtų būti kepamas nuo pat pradžių. Kad gautumėte produkto kokybės vaizdą, nepakanka pasikliauti automatizuotais bandymais.




Taigi, kokia yra pagrindinė priežastis, kodėl mes automatizuojame testą?

Trumpas atsakymas yra pakartojamumas . Automatizuojame testą, nes tuos pačius testus turime atlikti dar ir dar kartą. Ar norėtumėte automatizuoti testą, jei jį ketinate paleisti tik vieną kartą ir pamiršti? Žinoma ne! Laikas ir pastangos, kurias išleidžiate bandymo automatizavimui, galėtumėte tai atlikti rankiniu būdu.

Pagal apibrėžimą mes automatizuojame pakartojamus testus, t. Y. Regresijos testus, kuriuos turime atlikti dažnai.

Taigi, kitą kartą, kai norite automatizuoti testą, žengkite žingsnį atgal ir pagalvokite, kaip dažnai jūs tikriausiai atliksite šį testą? Ar tikrai verta stengtis automatizuoti testą?