Manuelno vs automatsko testiranje
U prošlom blogu, bavili smo se vrstama testiranja i videli kako softversko testiranje možemo podeliti po različitim kategorijama i kriterijumima. Jedna od najvažnijih podela u QA industriji je svakako podela na manuelno i automatsko testiranje.
Na SixCube University-ju imaćeš priliku da kroz temeljan i izbalansiran program upoznaš i jedno i drugo, a kroz rad na simulacijama projekata naučićeš kako da u praksi kombinuješ dva pristupa zarad postizanja optimalnih rezultata u testiranju.
Šta je manuelno, a šta automatsko testiranje?
Za početak, da ukratko ponovimo šta preciznije znače ova dva pojma. Kao što smo naveli u prethodnom tekstu, manuelno testiranje je „tradicionalni pristup ispitivanju softvera u kojem testeri ručno, kroz samu upotrebu datog softvera ili njegove simulacije, izvršavaju testove bez korišćenja automatizovanih alata ili skripti”.
S druge strane, automatsko testiranje „koristi posebne softverske alate i skripte za izvršavanje testova, često bez direktnog ljudskog nadzora”.
Neki benefiti automatskog testiranja
Rečeno na najjednostavniji mogući način, automatsko testiranje podrazumeva da skripta/alat sama radi ono što bi inače ručno radio tester.
Na primer, manuelno testiranje neke komponente interfejsa, recimo kontakt forme, znači da tester ručno, klikovima na stranici i unošenjem različitih informacija u kontakt formu, proverava da li ova komponenta izvršava očekivane funkcije. U kontekstu automatskog testiranja, ovo radi alat za testiranje „na jedan klik“, ili na osnovu nekog unapred definisanog automatskog okidača, proverava rezultate, i prijavljuje da li je test uspešan.
Verovatno najintuitivniji benefit automatskog testiranja je brzina i jednostavnost izvršavanja testova, naročito onih kompleksnijih. U navedenom primeru, umesto da tester ručno proverava da li sve relevantne kombinacije unetih podataka proizvode očekivane rezultate, skripta ovo obavlja sama.
Ovo znači i povećanje efikasnosti i manju upotrebu ljudskih resursa jer tester za to vreme može da se posveti drugim zadacima. Takođe, iako ubrzava proces izvršenja testova, automatsko testiranje i dalje može da zahteva određeno vreme, naročito u velikim sistemima ili kod kompleksnih testova. Ono što je prednost ovakvih automatskih testova u odnosu na manuelne je što mogu da se izvršavaju noću ili van radnog vremena, čime se značajno ubrzava dobijanje povratne informacije i smanjuju troškovi testiranja.
Dalje, automatsko testiranje je veoma korisno kod regresivnog testiranja, dakle kada utvrđujemo da nove promene u kodu nisu uticale na stare funkcionalnosti. U tom slučaju, tester ne mora da prolazi kroz mukotrpan posao ručnog testiranja svih pojedinih funkcionalnosti redom prilikom svakog ažuriranja ili bilo kakve promene, već za to postoje unapred spremni automatski testovi za čije izvršavanje je potrebno neuporedivo manje vremena i truda.
Automatsko testiranje, takođe, povećava konzistentnost procesa testiranja i stabilnost sistema. Unapred definisani i utvrđeni testovi izvršavaju se svaki put na isti način i po istim pravilima, tako da je mogućnost ljudske greške znatno manja. Naravno, i manuelni testovi se sprovode po precizno utvrđenoj proceduri, ali automatizacija eliminiše svakodnevne ljudske faktore koji utiču na kvalitet takvog testiranja, kao što su umor ili nepažnja.
Na kraju, postoje određeni testovi koji po prirodi stvari ne mogu biti izvršeni manuelno i kod njih nam je neophodna pomoć softverskih alata za testiranje. Na primer, ukoliko je potrebno da izmerimo vreme koje je potrebno softveru da odgovori na određeni upit, merenje pomoću sata ili štoperice neće biti dovoljno precizno, već će tu biti potrebna podrška alata specijalizovanog za ovaj zadatak. Isto važi i, recimo, za evaluaciju ponašanja sistema u slučaju kada ga upotrebljava veliki broj korisnika u isto vreme.
Rastuće potrebe za automatizacijom
Benefiti automatizacije postaju sve jasniji kompanijama širom sveta. Tako istraživanja pokazuju da, od svih izazova vezanih za QA, najveći broj kompanija (čak 39%) među najveće izazove ubraja upravo automatizaciju testova. A kada se govori o tipovima testiranja koje žele da uvedu u svoje organizacije u narednom periodu, na čak prvih 5 mesta su različite vrste automatskog testiranja.
Stoga su potrebe za automatizacijom, kao i testerima koji su obučeni za nju, sve veće, i deo naše misije je svakako da pomognemo da se na ovu potrebu odgovori.
Pored celokupnog, 6-mesečnog kursa koji uključuje i manuelno i automatsko testiranje, SixCube University ti nudi i opciju 3-mesečnog kursa posebno fokusiranog na automatizaciju. Testerskih alata na tržištu je sve više i cilj ovog modula je da ti kroz dobro osmišljen program i praktičan rad na konkretnim alatima, omogući pre svega duboko razumevanje principa po kom oni funkcionišu. Ovaj pristup osposobiće naše polaznike da se u budućnosti brzo i uspešno prilagode bilo kom drugom postojećem alatu na tržištu.
Da li je onda manuelno testiranje suvišno?
Odgovor na ovo pitanje je kratak i jasan: ne. Iako je automatizacija sve važnija i traženija, manuelno testiranje i dalje ima veliku vrednost u procesu obezbeđivanja kvaliteta softvera.
Naime, sam proces automatizacije zahteva određeno vreme, trud, kao i specifično znanje, koje poseduju retki. Zato npr. ima situacija u kojima je automatizacija nemoguća ili nepraktična. Recimo, postoje slučajevi u kojima se zahtevi ili sam sistem previše naglo i dramatično menjaju tako da testeri moraju automatske testove neprestano prilagođavati tim promenama, što može da oduzme više vremena nego manuelno proveravanje sistema.
Takođe, automatizacija treba da bude opravdana i u kontekstu učestalosti testiranja. Automatizovati testove koji će biti pušteni samo jedan ili dva puta će verovatno zahtevati veći trud nego manuelno testiranje. Automatizacija, ipak, ima znatno više smisla kada se rade regresivni testovi na softveru koji ima dug životni ciklus i česta ažuriranja i promene, jer je akumulirano vreme i trud dugoročno potrebno za ručnu proveru takvog softvera neuporedivo veće.
Ponekad su i tehničke karakteristike sistema, neke određene funkcionalnosti, ili test alata jednostavno takve da bi automatizacija te funkcionalnosti bila prekompleksna i prezahtevna da bi bila isplativa, u kom slučaju se takođe pribegava manuelnom testiranju.
Na kraju, manuelno testiranje pruža testeru bolji subjektivni uvid u softver. Čak i najbolji automatizovani testovi nekad ne mogu dovoljno dobro da definišu ili prepoznaju aspekte iskustva korisnika koji mogu da budu poželjni ili problematični, i oni se vide tek prilikom ručnog korišćenja i testiranja sistema. Mnogi testeri će vam zato reći da je manuelno testiranje najbolji prvi korak upoznavanja sa sistemom, koje je neophodno kako bi se dobio utisak o tome kako softver radi i „diše“ i kako bi se kasnije automatizacija postavila na zdrav temelj.
Šta je zaključak?
Što se tiče pitanja iz naslova, odgovor je da ovo nije ili-ili situacija, već da su za uspešno testiranje potrebna oba. Efikasno testiranje sistema najčešće uključuje neku kombinaciju manuelnog i automatskog testiranja, i teško je zamisliti da će u bliskoj budućnosti biti drugačije.
U osnovi, manuelno testiranje omogućava kreativan pristup testiranju, dubinsko istraživanje, ispitivanje nepredvidivih scenarija i bolje razumevanje perspektive korisnika.
Automatsko testiranje je, s druge strane, korisno za ponavljajuće zadatke, regresivno testiranje, i može da donese ogromne uštede vremena i truda, naročito kod velikih i stabilnih sistema koji trpe česte i relativno male promene.
Predavači na SixCube University-ju su QA stručnjaci sa velikim iskustvom u industriji, kojima je dobro poznato koji je optimalan odnos između ova dva pristupa neophodan za najbolje rezultate.
Naš program je podeljen u dve celine koje se mogu odvojeno pohađati – jedna je upravo fokusirana na manuelno, a druga na automatsko testiranje, i obe će ti pružiti znanja i praktične veštine dovoljne da započneš ili značajno unaprediš svoju testersku karijeru. A celokupna obuka koja uključuje oba ova modula temeljno će te upoznati sa svetom testiranja, dati priliku za ozbiljan praktičan rad i naučiti veštinama potrebnim za postizanje vrhunskih rezultata u budućnosti.

