10.06.2021

7 stvari koje ste želeli da znate o software testingu

1. Koja je razlika između QA i software testing-a?

Mnogi i dalje ne razumeju razliku između QA i software testing-a. QA (Quality Assurance) predstavlja osiguravanje kvaliteta softvera. To znači ne samo da softver radi ispravno, već i onako kako je biznis to zamislio.

QA proces zapravo počinje pri postavljanju biznis zahteva. Pronalaze se eventualni propusti u specifikacijama, razmatraju se očekivanja od strane krajnjeg korisnika, a sve to u cilju prevencije bagova tokom kreiranja i tokom samog testiranja softvera. QA ima za cilj da postigne prevenciju pojave problema (issues) i više se vezuje za Agile metodologiju.

Software tester je uloga koja je fokusirana na srž: testiranje samog proizvoda, pronalaženje defekata i njihovo prijavljivanje i verifikaciju koristeći različite metodologije i programe. Testeri pronalaze defekt i opisuju ga kako bi programer znao gde je problem nastao i kako da ga popravi. Nakon intervencije programera, tester ponovo proverava da li je taj problem rešen. Ovde fokus nije na prevenciji da defekt nastane, nego da se defekt detektuje – govorimo o kontroli kvaliteta proizvoda.

QA blisko sarađuje sa biznisom i daju im uvid na koji način krajnji korisnik može videti taj proizvod. Na taj način, QA zapravo daje neki svoj lični pečat proizvodu i njegovim funkcijama. QA „izaziva“ biznis da napravi bolji zahtev za softver, da taj zahtev bude kvalitetniji i potpuniji. Kada je zahtev za softver takav, onda postoji mnogo manje šanse da u njegovoj izradi dođe do propusta. U softwer testingu, stvar je drugačija: testeri nemaju toliko kontakta sa biznisom i ne mogu toliko da utiču na sam proizvod.

Sada kada nam je jasno u čemu je razlika između QA i testiranja softvera, hajde da pređemo na najčešća pitanja:

2. Zašto su software testing i QA važni?

Uloga QA je izuzetno važna na projektu: predstavlja most između biznis ideja i programerske realizacije.

Kada se proizvod razvija, on prolazi kroz faze testiranja i od strane programera kako bi proverili svoj kod. Ali, kada proizvod dođe na testiranje kod software testera, on prolazi i kroz različite scenarije korišćenja koji mogu rezultirati neadekvantnim ponašanjem proizvoda.

Ono može biti uzrokovano propustima u specifikaciji, propustima u implementaciji, propustima u testiranju, ograničavajućim faktorima kao što su okruženje itd. U zavisnosti od toga koji softver je u pitanju, to neadekvatno ponašanje može da košta kompaniju ugleda, kapitala, ili da rezultira sudskom tužbom, pa i gubitkom nečijeg života. Kako bismo osigurali da se ovakve stvari ne dešavaju – neophodno je uložiti u QA.

3. Gde se koriste QA i software testing?

Svako ko razvija softverski proizvod treba da ima QA/Software testera na raspolaganju.

Primer: kompanija koja se bavi modom zaduži programere da kreiraju website sa ponudom prozivoda. Sajt na prvi pogled izgleda super i može da se koristi. Kompanija napravi rasprodaju i pošalju SMS poruke/mejlove korisnicima. 10 min nakon toga sajt više ne moze da se koristi (vrlo česta pojava u našem okruženju 😊).

Zbog čega se to dešava? Zbog toga što način korišćenja sajta nije do kraja iskomuniciran sa programerima i testerima, a samim tim server nije predviđen da opsluži taj broj ljudi i on prestaje sa radom.

I kako sada to utiče na biznis? Stres kod programera, stres kod testera, stres kod menadžmenta, gubitak novca u tih nekoliko sati koliko sajt nije bio dostupan i frustracija i nezadovoljstvo kod krajnjih korisnika.

4. Da li je moguće baviti se QA bez poznavanja kodiranja? Ko sve može da bude software tester?

Da, moguće je.

Uloga QA nije definisana tako da osoba mora da piše automatske testove i da razume programski jezik. QA stručnjak može i bez toga da dobro radi svoj posao. Potrebno je da logički razume kako neke stvari mogu da rade, da razmišlja kao krajnji korisnik, da pokuša da sagleda stvari i iz drugog ugla i da pronađe manu specifikaciji ili samom proizvodu na kraju. Ne bih savetovala ni da se beži od programiranja – s obzirom na to da je QA oblast koja se konstantno razvija, poznavanje osnova programiranja može samo da pomogne. Važno je ostati otvoren za učenje i prihvatanje novih stvari. 😊

Kao i u svakom poslu, mislim da je od presudne važnosti da je osoba zainteresovana, željna da uči i da ima dobru motivaciju. Naravno, uvek je lakše nekome ko je iz tehničke sfere da krene sa QA pozicijom, ali sam tokom svog rada sretala kolege sa različitim fakultetskim zvanjem koji su potvrdili moje mišljenje da ne postoji striktna definisanost u vidu obrazovanja. Savetuje se početnicima da se upoznaju sa osnovama testiranja, tehnikama testiranja i radom sa bazama, pošto su ovo najčešća pitanja na intervjuima za QA poziciju.

QA je kao kada se malo dete igra sa igračkom. Dete vrlo brzo rasturi i polomi igračku kako bi videlo šta sve ima unutar nje i od čega je napravljena, pa je posle ponovo sklapa. Isto tako i QA-jevci, „rasturaju“ proizvod do sitnica, kako to ne bi radio krajnji korisnik.

5. Kako izgleda jedan radni dan osobe koja se bavi QA?

Prvo kafa, a onda pročitate baš mnogo mejlova. 😊

Na Agile projektu dan moze poprilično da varira, pa tako jutro može da počinje sa dnevnim sastankom gde iznosimo status za prethodni dan i plan za trenutni dan. Nakon toga sledi: kreiranje test case-ova, detektovanje test data requirementa ukoliko je potrebno, review test case-ova koji su pisali drugi članovi tima, davanje sugestija za izmene, ili menjanje postojećih test case-ova ukoliko sam dobila komentare na kreiranje.

Ukoliko ima potrebe da se uradi knowlegde share organizujemo sastanke. Ukoliko sa produkcije dođe issue za investigaciju, prekidamo trenutni posao i dajemo prioritet njemu ukoliko je urgentan. Pokušavamo da reprodukujemo issue, nalazimo scenario, okruženje pod kojim se događa i dodajemo informacije za programere ukoliko jeste validan problem da ga poprave. Ukoliko nije validan pružamo objašnjenje o načinu rada proizvoda.

6. Koja je budućnost QA i software testiranja?

Ja sam počela da radim pre 7 godina i u ovom periodu se naša profesija značajno promenila. Kada sam ja počela, samo poneki program je bio dostupan za automatske testove. Kako je automatsko testiranje počelo da se razvija, počela su i pitanja: da li će QA kao pozicija uopšte da opstane? Sada kada programer može sve da isprogramira i automatski da pusti, da li će QA da izumre?

Ali, zapravo, desilo se suprotno. Postoje stvari koje automatski testovi jednostavno ne mogu da pokriju ili nisu dovoljno efikasni. Jedan kolega koji radi automation je naveo primer da njemu treba mnogo više vremena da detektuje da se dugme nalazi u donjem desnom uglu, dok testeru treba samo par sekundi jer prostim pogledom na tu stranicu on brzo uočava dugme. Dakle, potreba za manuelnim testiranjem opstaje i dalje.

Primeri:

Da li znate da je jedna svemirska letelica doživela krah jer prethodno nije bila testirana?

Interfejs ove letelice je prihvatao brojeve u određenom formatu, i niko nije probao ili testirao kako se letelica ponaša ako se tu upiše neki drugi broj. Kada je letelica pokrenuta, u to polje je upisala neki jako dugačak broj (za koji nije bilo dovoljno predviđenog mesta u memoriji) i došlo je do kraha čitave letelice. Dakle, samo jedan broj je izazvao tako veliki problem. Uvek će biti potrebe za testiranjem. Sigurna sam da testeri neće nestati za 10 godina, pa ni za 100 😊 Posla će uvek biti, iako će se sigurno njegova priroda menjati i varirati zavisno od razvoja AI.

Da li znate kako je samo jedan čovek napravio ogromnu gužvu u saobraćaju?

Sigurno ste čuli priču o jednom domišljatom umetniku koji je prevario Google maps. Simon Vekert je svojim umetničkim performansom skrenuo pažnju na to kako softveri koje mi uzimamo „zdravo za gotovo“ rade i kako oblikuju naš svakodnevni život. Simon je pozajmio i iznajmio 99 telefona, koje je stavio u mala crvena kolica i na svima je uključio praćenje lokacije. Na ovaj način, prevario je Google Maps, koji prikazivao ogromne gužve na delu puta kojim se Simon kretao. Putnici su počeli da izbegavaju ove deonice, te su one ubrzo postale puste – iako je na mapama kreiran potpuni zastoj. Šta mislite, da li je nekom u QA timu pala na pamet ovakva upotreba Google Maps-a? 😊

7. Karijerne prilike: koliko su zanimanja za QA popularna i dobro plaćena?

Karijerne prilike su šarenolike kao što je i sama oblast QA, zavise od platformi za koje je proizvod namenjen. Traže se pozicije od juniora do seniora, postoje zahtevi i za automation QA koji poznaju programske jezike, ali i za usko stručne pozicije kao što su security expert, performance expert itd.

Ja sam započela sa mobile testiranjem, pa sam jedno vreme radila web testiranje, a sada radim i mobile i web i API testiranje. Kao i u svakom drugom poslu, što je tester kvalitetniji to je viša plata. Za automation testere važi da imaju bolje plate.

Razgovarali smo sa: Jelisavetom Marković, instruktorom na Software testing akademiji

Jelisaveta Marković je završila Elektrotehnički fakultet na odseku za Telekomunikacije i informacione tehnologije na Univerzitetu u Beogradu. Kao Quality assurance & tester radi od 2014. godine na različitim projektima koji su obuhvatali testiranje mobilnih aplikacija, web stranica i API testiranje. Projekti su bili za inostrane kompanije čiji uspeh se meri u milionima korisnika. Tokom rada stekla je sertifikate ISTQB za Foundation i Agile Tester nivoe. Od testera kao člana tima došla je do pozicije vođe QA tima. Svoj entuzijazam za testiranje sa zadovoljstvom deli sa drugima kroz različita mentorstva i smatra da je ovo idealna prilika da podeli svoje znanje sa još više ljudi.

Zanima te karijera software testera?

Pogledaj našu Software testing akademiju koja će ti pružiti sve što ti je potrebno da započneš uspešnu karijeru u oblasti testiranja softvera.