Skraćenica QA znači Quality Assurance - obezbeđivanje kvaliteta. Osnovni zadatak QA inženjera je da obezbedi adekvatan nivo kvaliteta aplikacije.
Kao što je nekada u većem delu industrije uloga frontend inženjera bila vezana isključivo za fazu implementacije, tako je uloga QA inženjera bila vezana isključivo za fazu testiranja.


Slično kao kod frontend inžinjera, i rola QA inženjera se menja, pogotovu u industriji video igara. QA inženjeri postaju aktivno uključeni u sve faze razvoja proizvoda.

Što se tiče testiranja, pokazalo se veoma efikasnim da QA inženjer ne bude jedina osoba koja se u timu bavi testiranjem. Danas u velikom delu industrije video igara QA inženjer predvodi proces testiranja, u koji je uključen ceo tim. Zadatak QA inženjera je da širi način razmišljanja o kvalitetu i da obezbedi alate i okruženja tako da ceo tim može brzo i efikasno da testira proizvod.

Automatizacija

Da bismo ilustrovali još neke specifičnosti uloge QA inženjera u industriji video igara u odnosu na ostatak industrije softvera, možemo da se pozabavimo automatizacijom.

Činjenica je da je testiranje video igara uglavnom teže automatizovati nego ostali aplikativni softver. Neki od razloga su prisustvo velike količine grafike, složena interakcija korisnika sa video igrom, veliki broj mogućnosti i scenarija korišćenja itd.

Ipak, iako video igra predstavlja spoj umetnosti, dizajna, grafike, muzike itd, svaka video igra je pre svega softver. Ako je moguće automatizovati testiranje softvera, moguće je automatizovati testiranje video igara.

Na nekoliko primera pokazaćemo poluautomatske alate i automatske sisteme za testiranje video igara.

Na sledećem primeru vidimo situacije iz testiranja video igre Heroic: Duel of Legends. Inženjeri su razvili alat pomoću koga na PC računaru unosimo komandu, i ona se šalje aplikaciji na mobilnom uređaju i izvršava. Recimo da želimo da istestiramo korišćenje različitih kartica koje predstavljaju magije. Na početku snimka vidimo da je većina kartica zaključana. Nakon unošenja komande, sve kartice postaju otključane. Dakle osoba koja testira ne mora da otključava kartice tako što će manuelno igrati igru što bi trajalo satima.

Još jedan primer iz video igre Heroic: Duel of Legends pokazuje kako je jedna veoma specifična situacija uspešno istestirana. U igri postoji magija koju korisnik baci na na neprijateljskog miniona. Magija ga oštećuje nekoliko sekundi, zatim brzo putuje do narednog miniona, njega oštećuje nekoliko sekundi, i tako dalje. Korisnici su prijavili veoma specifičan bag - ukoliko u trenutku dok magija putuje do narednog miniona taj minion bude uništen, magija neće tražiti novu metu kao što bi trebalo, nego će nestati.

Frontend inženjeri brzo su popravili ovaj problem, i QA inženjer je trebalo da istestira da li sada sve radi kako treba. Reprodukovati ovaj scenario manuelnim testiranjem očigledno je ekstremno teško. Zato su QA i frontend inženjer napisali skriptu koja reprodukuje baš tu situaciju:

Skripta instancira nekoliko neprijateljskih miniona. Na jednog od njih baci magiju. Delić sekunde nakon što magija počne da putuje do narednog miniona, skripta ga uništi. Kao što možemo da vidimo, problem je uspešno otklonjen - magija je uspela da nađe novu metu.
Primenom jednostavne skripte koja je napisana za dvadesetak minuta inženjeri su uštedeli sate posla koji bi bili potrebni da se problem reprodukuje manuelnim testiranjem.


U prethodnim primerima videli smo poluautomatske alate koji rad inženjera čine znatno efikasnijim. Na narednom snimku vidimo rad potpuno automatizovanog sistema, na primeru igre Top Eleven.

Aplikacija se automatski instalira na nekoliko mobilnih uređaja. Zatim se pokreću automatski testovi. Na konkretnom primeru, simuliraju se akcije korisnika - prevlačenje igrača na različite delove terena. Nakon svakog prevlačenja automatski se kreira slika ekrana koja se zatim poredi sa referentnom slikom. Ukoliko postoji neka značajna razlika, inžinjerima se automatski prijavljuje bag.

Na ovaj način QA inženjeri ne moraju da manuelno testiraju promene u grafici svakog dela aplikacije, već će bagovi u grafičkom prikazu biti automatski prijavljeni. Na narednoj slici vidimo kako izgleda veb stranica pomoću koje se ovi bagovi prijavljuju:

U gornjem levom delu vidimo referentnu sliku - kako konkretan ekran treba da izgleda. U gornjem desnom uglu vidimo isti ekran kako je zapravo izgledao u toku izvršavanja testa. Na donjim slikama možemo da vidimo razlike označene crvenim pikselima.

U konkretnom primeru lako se vidi da je bag prijavljen zbog toga što se svetlo plavo dugme sa natpisom „GET“ nije učitalo.

Ovo dugme javlja se na velikom broju mesta u različitim delovima aplikacije, na različitim ekranima. Manuelno testiranje svih ovakvih komponenti na svim ekranima bilo bi veoma vremenski zahtevno. Zahvaljujući automatskim testovima lako nalazimo probleme slične ovom, bez potrebe za manuelnim testiranjem.

Kao što vidimo iz svih navedenih primera, automatsko testiranje video igara jeste izazovno i donosi mnoge nove probleme u odnosu na ostatak industrije softvera. Međutim, automatsko testiranje video igara je apsolutno moguće. Koriste se poluautomatskim alati koji olakšavaju rad, ali i potpuno automatizovani sistemi.

Softver za automatsko testiranje mogao bi biti odgovor na standardni problem: način izrade visokokvalitetnog, snažnog i pouzdanog softverskog sistema sa sve većom složenošću tehnologije i pod velikim pritiskom konkurencije - automatsko testiranje video igara moglo bi biti isplativ odgovor na ovaj problem.