Prestanite gubiti vrijeme na ručno testiranje aplikacija!

Damir Svrtan, Infinum: Prestanite gubiti vrijeme na ručno testiranje aplikacija!

Automatizirani testovi su skripte koje simuliraju korisnikovo korištenje aplikacije i ispituju što je više moguće njenih svojstava te se na taj način gubi potreba za ručnim testiranjem. Proteklog vikenda na WebCampu iznimno zanimljiv i motivirajuć govor na ovu temu održao je Damir Svrtan, voditelj programerskog tima u Infinumu.

Fotografije: Dino Lukman
Fotografije: Dino Lukman

Predavanje je počeo pitanjem koliko u publici ima programera te koliko od njih testira svoje aplikacije. Više od pola posjetitelja spustilo je ruke nakon što je postavljeno drugo pitanje jer su pretpostavili da se odnosilo na pisanje automatiziranih testova. Općepoznata je činjenica u programerskom svijetu da je pisanje testova naporno, dosadno i da se ponekad čini kao gubitak vremena, ali isto vrijedi i za pranje zubi. Na kraju dana oboje se mora raditi kako biste imali manje problema, više sigurnosti i zdraviji život. 🙂

Kako je rekao Bob Lord, predsjednik AOL-a:

Whatever can be automated will inevitably be automated.

Žalosno je što većina programera misli da će više vremena uštedjeti ručnim testiranjem, nego automatiziranim. Primjećujete oksimoron? Sama se rečenica kosi sa sobom. Programeri su tu da “nauče računalo” nešto što će olakšati ljudima budući rad. Oni automatiziraju stvari, ali preferiraju ručno testirati radi li to.

Karakteristike ručnog testiranja

Dakle, pod ručnim testiranjem se podrazumijeva klikanje mišem po cijeloj aplikaciji i provjeravanje radi li sve kako treba. Karakteristike ovog pristupa su:

  1. Repetitivnost – kako bi osigurali da sve radi kako treba potrebno je pregledati svaki dio aplikacije. Implementirano je novo svojstvo aplikacije? Ponovite cijeli postupak testiranja.
  2. Sporost – ponekad stranica ima veliku formu s puno polja za ispuniti. U jedno polje ide tekst, u drugo brojke, u treće datum. Neka polja moraju biti ispunjena, što znači da morate provjeriti da forma upozori korisnika na neispunjeno polje. Nešto nije radilo kako treba? Ponovite cijeli postupak unosa sadržaja u polja.
  3. Sklonost pogreškama – ljudi zaboravljaju. Implementirano je novo svojstvo u formi ili, u gorem slučaju, izmijenjeno je staro. Jedan datum mora biti prije drugog, jedan tekst kraći od 250 znakova, email ispravnog formata. Prilikom implementacije nije problem istestirati sve slučajeve, ali hoćete li se sjetiti svih za par mjeseci kad je potrebno testirati izmjenu?

Sve spomenute probleme rješavaju automatizirani testovi. Programer provjerava radi li sve kako treba izvršavanjem jedne naredbe, kraće je od 10 klikova mišem i automatizirana skripta ne zaboravlja sve što treba testirati.

Zašto programeri ne vole automatizirane testove?

webcamp_svrtan_02

Koji su onda izgovori programera u vezi automatiziranih testova? Zašto ih ne pišu?

Damir je izdvojio njemu najzanimljivije razloge i ono što je poručio vlasnicima citata:

  • Programer: “Aplikacija je premala da bi se pisali testovi.”
  • Damir: “Male aplikacije imaju tendenciju narasti.”
  • Programer: “Pisanje testova je dosadno.”
  • Damir: “A klikanje satima po aplikaciji nije?”
  • Programer: “Nemamo specifikaciju, stoga testovi nemaju smisla.”
  • Damir: “Molim? Ako nemate specifikaciju, kako onda uopće pišete ikakav kod?”
  • Programer: “Nemamo vremena pisati testove.”
  • Damir: “Kada se testovima pristupi na pravilan način, njihovo pisanje ne oduzima dodatno vrijeme.”

Kako pisati testove?

U redu, želim biti bolji programer i započeti s pisanjem testova, ali kako?

wrong_way

right_way

Rješenje je da treba pisanje testova smatrati djelom ciklusa implementacije aplikacije, modula, a ne kao nešto odvojeno.

Govor je završen kratkom, ali snažnom porukom:

Prekinite s ručnim testiranjem, pišite testove tijekom ciklusa programiranja i prestanite gubiti vrijeme.

Zaključak mi i dalje odzvanja u ušima i razlog je zbog kojeg sam upravo pritisnuo tipku “Buy now” na Amazonu te planiram kako ću unaprijediti svoj dosadašnji kod s automatiziranim testovima, postati bolji programer i imati zdravije zube. 🙂

Sukladno članku 94. Zakona o elektroničkim medijima, komentiranje članaka na Netokraciji dopušteno je samo korisnicima koji ostave svoje ime i prezime te mail adresu i prihvate pravila ponašanja.

Pravila ponašanja

Na Netokraciji za vas stvaramo kvalitetan, autorski potpisan sadržaj i zaista se veselimo vašim kvalitetnim, kontruktivnim komentarima. Poštujmo stoga jedni druge prilikom komentiranja, kao i Zakon, držeći se sljedećih pravila ponašanja:

  • Ne budite 💩: Nema vrijeđanja, diskriminiranja, ni psovanja (osim ako nije osobni izričaj, ali onda neka psovka bude općenita, a ne usmjerena prema nekome). Također, upoznajte se sa stavkom 2. članka 94. Zakona o elektroničkim medijima prije no što ostavite komentar.
  • Samo kvalitetna rasprava, manje trolanja: Ne morate se ni sa kim slagati, ali budite konstruktivni i doprinesite raspravi! Svako trolanje, flameanje, koliko god "plesalo" na granici, leti van.
  • Imenom i prezimenom, nismo Anonymous 👤: Autor sadržaja stoji iza svog sadržaja, stoga stojite i vi iza svog komentara. Koristimo ime i prezime te pravu email adresu.

Kako koristimo podatke koje ostavljate? Bacite oko na našu izjavu o privatnosti.

Sve ostale komentare ćemo s guštom spaliti, jer ne zaslužuju svoje mjesto na internetu.

Komentari

  1. Damir Miladinov

    Damir Miladinov

    06. 10. 2015. u 10:03 pm Odgovori

    Odlično predavanje. Mislim da početnici treba posle osnovnih stvari iz programiranja odmah da uče da pišu testove, pa tek onda da uče sve te cool frameworke, da bi testiranje postalo deo navike.

  2. Stjepan

    Stjepan

    08. 10. 2015. u 12:48 pm Odgovori

    Nikako se ne bi složio s citatom da “Kada se testovima pristupi na pravilan način, njihovo pisanje ne oduzima dodatno vrijeme.” Pisanje testova oduzima vrijeme, ali testovi su tu da uštede vrijeme koje bi kasnije potrošili na ispravljanje grešaka (a što se greška otkrije kasnije njezino ispravljanje je skuplje).

    Testovi su kao štednja. Štediš na početku da bi kasnije imao. Ali da bi štedio moraš nešto imati. To što imaš i ulažeš je dodatno vrijeme u razvoju.

  3. Bruno

    Bruno

    09. 10. 2015. u 9:52 pm Odgovori

    Ovo mi je zapelo za oko:
    >Damir: “Molim? Ako nemate specifikaciju, kako onda uopće pišete ikakav kod?”

    Da li živimo u istoj zemlji? Damir želi reći da je imanje specifikacije defaultna situacija? Naime – nije i nema naznaka kada će to biti.

Odgovori

Tvoja e-mail adresa neće biti objavljena.

Popularno

Startupi i poslovanje

Startup 101 program BIRD inkubatora obvezna je početnica za sve koji žele ideju pretvoriti u djelo

U organizaciji BIRD inkubatora uskoro kreće edukacijski program Startup 101 koji je osmišljen kako bi prenio osnove svima koji razmišljaju o pokretanju startupa, a nisu sigurni što bi to sve od njih zahtijevalo.

Intervju

Kako je nastao prvi kolektivni ugovor u gaming industriji u Hrvatskoj?

Potpisivanjem prvog kolektivnog ugovora hrvatske gaming industrije, Gamechuck tim je ostvario mirniji san, a prema nekima i "vrli novi svijet".

Startupi i poslovanje

Može li javna nabava biti lakša? Nova aplikacija ma.te.a opremila se planovima, tenderima i analizama

U protekle 3 godine putem javne nabave kupljeno je preko 140 milijardi kuna vrijednosti usluga, roba i radova - a možda bi bilo još i više da oni koji nude/traže imaju jedno mjesto gdje mogu pratiti sve potrebno. Može li nova aplikacija tvrtke PJR donijeti promjenu?

Što ste propustili

Startupi i poslovanje

Može li javna nabava biti lakša? Nova aplikacija ma.te.a opremila se planovima, tenderima i analizama

U protekle 3 godine putem javne nabave kupljeno je preko 140 milijardi kuna vrijednosti usluga, roba i radova - a možda bi bilo još i više da oni koji nude/traže imaju jedno mjesto gdje mogu pratiti sve potrebno. Može li nova aplikacija tvrtke PJR donijeti promjenu?

Intervju

Što radi tester, a što Quality Assurance inženjer – QA sudjeluje u cijeloj igri, dok tester brani gol od bugova

Kako se QA inženjer razlikuje od testera, što zapravo radi i zašto mu posao počinje već kod čitanja dokumentacije te kako se zaljubiti u taj posao ispričale su Ivana i Jelena, QA inženjerke iz Undabota.

Startupi i poslovanje

Program Nevjerojatni za mlade poduzetnike upisuje novu generaciju! Kako se provela prošla?

Program Nevjerojatni i ove godine će pomoći nekoliko mladih poduzetnika kroz mentorstva i edukacije o marketingu, prodaji, strategiji i financijama. Ususret zadnjem tjednu prijava koristimo priliku saznati iskustva prošlogodišnjeg polaznika.

Vodič

Team Topologies: Recept za timove koji će biti učinkoviti od početka do kraja proizvodnje softvera

Buka u komunikaciji i niska razina međusobnog povjerenja problemi su koji se lako prikradaju, a ostavljaju kobne posljedice na radnu atmosferu timova pa prema tome i uspjeh tvrtke. Na svu sreću, čini se kako postoji rješenje koje će spasiti softverske timove koji hodaju na rubu sukoba.

Startupi i poslovanje

Uspješni Hrvati u New Yorku okupljaju hrvatske startupe kako bi im olakšali proboj na američko tržište

Hrvatski startupi dobit će priliku predstaviti se širokoj mreži potencijalnih poslovnih partnera i ulagača, a to je tek prvi korak prema dugoročnoj suradnji domaće tehnološke industrije i uspješnih američkih Hrvata, kako bi pokazali da imamo za ponuditi više od turizma i sportaša.

Startupi i poslovanje

RMRK protokol Brune Škvorca od NFT-ova želi napraviti mnogo više od obične slike

Čuli ste vjerojatno već za OpenSea, svjetski poznatu platformu gdje možete kupovati, prodavati i stvarati NFT-ove... Uoči BlockSplit konferencije imamo vam priliku predstaviti i projekt hrvatskog osnivača - Brune Škvorca, čiji RMRK protokol bi napokon mogao od NFT-ova napraviti nešto multimedijalno i višestruko korisno.