Kako radi i što postiže QA tim koji ima podršku svih razvojnih timova, kojeg se ne sabotira, koji je uključen u razvojne procese od najranijih faza i čije se mišljenje o definiranju smjera i specifičnosti razvoja uvažava - otkrivamo uz Photomath.
U Photomathu je QA više od samo testera, kaže mi Niko Mađar, njihov Senior Quality Assurance Automation inženjer.
Tako bi trebalo biti svugdje. Ako se na ljude koji brinu o kvaliteti gleda kao da su “samo testeri”, nitko neće ozbiljno shvaćati njihove zahtjeve i prijedloge… U idealnom scenariju, briga o kvaliteti utkana je u tkivo tvrtke, a to se osigurava time što je Quality Assurance (QA) direktno uključen u sve inicijative koje su vezane za razvoj pojedine aplikacije ili rješenja, usko surađuje sa svim razvojnim timovima, a proces feedbacka koji s njima provodi je dvosmjeran.
U razgovoru s Photomathovim Nikom Mađarom i QA inženjerkom, Teom Vujević, brzo sam shvatila kako ovaj ideal nije tako nedostižan te da Photomath već ima niz dobro uigranih praksi koje QA timu daju prostor za doprinos, rast i razvoj. Evo kako to kod njih izgleda…
Više od samog testiranja aplikacije
Zaduženja QA inženjera u Photomathu nisu vezana samo za kvalitetu najpoznatije edukativne aplikacije na svijetu. Kako je aplikacija postajala razvojno kompleksnija, tako se i okvir testiranja širio. Photomathov QA tim danas vodi brigu o testovima za razne sustave od kojih aplikacija dobiva rješenje te testiranje integracije matematičkog sadržaja iz tih sustava u samu aplikaciju.
U te sustave, između ostalih, ubrajaju se cloud servisi, Marketplace platforma za razvoj sadržaja te sustavi strojnog učenja, pojašnjava Tea:
Sve te servise i njihovu integraciju potrebno je istestirati prije puštanja u produkciju pa je QA tim izašao iz okvira ekskluzivne podrške App timu te postao podrška svakom razvojnom timu unutar Photomatha.

Ogroman rast cijele organizacije i povećanje broja projekata potaknuli su s vremenom uvođenje automatiziranog testiranja. Tim se tako podijelio u dvije specijalizacije, QA.exe za manualno te QA.auto za automatizirano testiranje. Niko je kao veliki entuzijast za automatizaciju postao prvi član QA.auto tima, čiji su glavni zadaci bili postavljanje procesa i alata za uvođenje automatiziranog testiranja.
Članovi QA.auto dijela QA tima rade na kontinuiranom automatskom testiranju svih aspekata našeg proizvoda. Pišemo integracijske testove za backend servise koji procesiraju i serviraju podatke za sve ostale dijelove proizvoda (mobilni app, web, itd). Kreiramo automatizaciju koja izvršava testove na samim mobilnim uređajima tako da simulira korisnika koji koristi aplikaciju. Radimo na automatizaciji našeg web dijela, prvenstveno Marketplacea, također simuliranjem pravih korisnika… Uz to, radimo i performance testove naših servisa kako bi bili sigurni da se u produkciji ponašaju ispravno.
Rad na mjestu gdje se prepoznaje važnost testiranja
Niko je svoju QA karijeru započeo slučajno, kaže, kao manualni tester u jednoj maloj zagrebačkoj IT firmi nakon što je završio fakultet usmjeren na inženjerstvo računalnih sustava i mreža. No brzo se u tom području pronašao i shvatio da se upravo time želi baviti.
U Photomath sam došao jer sam se htio vratiti tehničkom dijelu posla i zato što sam želio raditi na proizvodu koji donosi nešto dobro ljudima. Što je bolje nego pomagati djeci i odraslima u učenju matematike? 🙂
Danas kao Senior QA Automation inženjer, Niko postavlja sve frameworke, donosi odluke o tehničkim implementacijama u automatskim testovima te kreira i dodaje testove koji testiraju sustave. Također, mentorira kolege koji imaju manje iskustva i priprema edukacije za njih i ostale timove unutar Photomatha.

Najviše voli to što ima dovoljno vremena za eksperimentaciju i istraživanje raznih alata i pristupa te mogućnost postavljanja sustava od nule odnosno skaliranje istih. U takvim okolnostima – i s obzirom na zavidnu razinu znanja u timu i u tvrtki općenito – kaže kako ima osjećaj da svaki dan napreduje. To ne bi bilo moguće da se na QA gleda kao na manje prioritetnu kariku, ističe:
Brzina rješavanja prepreka od strane drugih timova kad se radi o automatizaciji je odlična. U prijašnjim poslovima sam se navikao da redovito čekam na dev dio dok se ne pripremi ili razriješi neka tehnička prepreka kako bi mogao nastaviti sa svojim poslom. U Photomathu se te stvari rješavaju vrlo brzo, upravo zato što je svim ostalim inženjerima stalo do kvalitete i svjesni su važnosti testiranja i dobrih praksi.
Izazovi testiranja koji vesele
Tea je Nikina prethodnica. Ona se još kao studentica matematike priključila Photomathu kao dio Customer Supporta, koji je tada operirao u sklopu QA tima. Povećanjem broja zaposlenika i daljnjim razvojem Photomath aplikacije, pojavila se potreba za proširenjem QA tima, čiji je četvrti član postala upravo ona.
Kao studentici matematike, rad u firmi u kojoj svakodnevno imam doticaja s područjem koje volim potaknuo me da se prebacim na neku drugu poziciju gdje mogu iskoristiti svoje znanje matematike, a pozicija u QA timu mi se učinila kao savršena prilika.
U timu, osim što odrađuje manualna testiranja, Tea sudjeluje u kreiranju automatiziranih regresijskih testova s kojima vrlo brzo i efikasno love nove bugove, analizira rezultate tih testova te je odgovorna za sve procese testiranja vezane za integraciju matematičkog sadržaja u aplikaciju te samo testiranje tog sadržaja unutar aplikacije.

U svom poslu najviše voli upravo tu raznovrsnost u testiranju, što je svaki dan drugačiji i što svaki nosi nove izazove.
Testiranje aplikacije ili sustava je zapravo promatranje proizvoda iz različitih perspektiva i testiranje s različitim očekivanjima. Nije lako razviti ispravan način razmišljanja i testirati proizvod s različitih aspekata, no upravo takvi izazovi su ono što mi se sviđa kod ovog posla.
Uz to, pronalaženjem bugova te davanjem prijedloga pridonosi poboljšanju aplikacije, što isto donosi posebno zadovoljstvo, dodaje Tea.
Pratimo kako se aplikacija razvija, kako korisnici reagiraju na koju funkcionalnost i sudjelujemo u poboljšanju aplikacije davanjem prijedloga. Zanimljivo je sudjelovati u cijelom procesu i pratiti napredak aplikacije, a istovremeno biti odgovoran za kvalitetu iste.
Kako se radi Quality Assurance u Photomathu?
U Photomathu dosta uspješnih testerskih praksi proizlazi iz dobrog pristupa, a koji počiva na kulturi brige o kvaliteti od trena nastanka specifikacije.
Tea objašnjava kako je svaki razvojni tim zadužen za kvalitetu svojih servisa na component razini, dok unit testovima osiguravaju da kod radi kako se očekuje. Od točke integracije s ostalim komponentama, tj. integracije s ostalim servisima – brigu o testiranju preuzima QA tim osmišljavajući efikasnu strategiju.
Naša strategija je testirati pametno, onoliko koliko je nužno i tamo gdje je vremenski i troškovno najefikasnije. Ne smatramo da smo u tome već isklesani stručnjaci, već da imamo definirane metrike koje nam omogućuju da smo svakim danom sve stručniji i efikasniji. Spremni smo preuzimati rizike i osvrtati se na posljedice.
Jedna od metoda koja nam služi za učenje je monitoriranje produkcije. Analiziramo kvalitetu (funkcionalnost i performanse) Photomath aplikacije u produkciji pa sukladno zaključcima kontinuirano unapređujemo QA metodologije.
Što se razvoja same aplikacije tiče, nastavlja Tea, release se odvija u trotjednim ciklusima. U svakom ciklusu, u sklopu E2E (App) testiranja, prvi je korak izrada testnih planova i test slučajeva te nakon toga testiranje tih funkcionalnosti i puštanje aplikacije u produkciju. Svaki član QA tima zadužen je za nekoliko funkcionalnosti i uključen je u njihovu izradu od početka planiranja pa do puštanja u produkciju. No, kako je spomenuto ranije, QA tim nije samo usmjeren na testiranje aplikacije, tijekom svakog ciklusa odrađuju se i testiranja drugih sustava paralelno. Za organiziranje, planiranje i praćenje napretka samog testiranja koriste Xray i Jiru.

U razvoj novih funkcionalnosti aplikacije uključeni su skoro od samog početka, posebno zato jer je za automatizaciju bitno unaprijed pripremiti potrebne alate i resurse, dodaje Niko.
Same testove onda razvijamo u suradnji s kolegama iz manualnog dijela i iz specifikacije funkcionalnosti. Trenutno se još uvijek prvenstveno fokusiramo na regresiju, s tim da nam je u skorijoj budućnosti plan pokrivati i novi razvoj s automatizacijom prije nego što se pusti na produkciju.
Testovi su im podijeljeni u 4 glavne domene: Backend(API), Web, Mobile i Performance, a Niko dalje objašnjava i koje konkretne tehnologije u okviru tih domena:
Alate koje smo odabrali su većinom bazirani na Javascriptu. Za backend testove koristimo Node.js, Mocha.js, Chai.js. Za mobilne testove: WebdriverIO, Appium. Za web testove Playwright. Za performance testove: Python i Locust.
Javascript smo odabrali kao glavni jezik zbog svoje popularnosti, brzine kreiranja testova i jednostavnosti setupa i održavanja. To nam se za sad pokazalo kao vrlo dobar odabir. Čak i za performance testove (koji su nekoć bili glavni razlog zašto ljudi nisu koristili Javascript) nam ne predstavljaju problem jer koristimo metode s kojima ih optimiziramo i paraleliziramo.
Kolaboracija u punom smislu riječi
Photomathov QA tim je specifičan po tome što surađuje s puno timova te je time konstantno uključen u sve procese razvoja aplikacije. Tako uvijek ostaju u toku novih inovacija i vide primjenu novih tehnologija u konkretnim situacijama, navodi Tea.
Photomath je okruženje u kojem se cijeni perspektiva koju QA tim unosi prilikom definiranja smjera i specifičnosti razvoja. Zbog toga smo uključeni u sve procese u najranijoj mogućoj fazi; s produktnim timom diskutiramo ideje oko novih značajki i AB testova, dok s čak 8 inženjerskih timova svakodnevno usuglašavamo inženjerske inicijative i potrebe testiranja istih.
Niko i kolege u QA.auto dijelu tima, prvenstveno surađuju s drugim developerima, tech leadovima i arhitektima. Zajedno s njima imaju kick-off i sync sastanke te diskusije oko odabira testne strategije i vrste testiranja koja će se implementirati.
Proces je dvosmjerni, što znači da mi možemo utjecati na funkcionalnost i ostali mogu utjecati na naše testove. Veliki je naglasak na jasnoj komunikaciji, brzini iteriranja i efikasnosti testiranja. Developeri su čak uključeni i u naše code review procese kako bi dodatno poboljšali kvalitetu testnog koda.
Zašto je Photomath dobra prilika za QA stručnjake?

Započeli smo ovu priču s izjavom kako je u Photomathu QA više od samo testera, a s tom tvrdnjom ćemo ga i završiti. Ako iz prethodnog nije bilo jasno, u Photomathu se od QA inženjera očekuje inženjerski pristup i visoka kvaliteta rada. Stoga, za one QA stručnjake koji žele puno naučiti i usavršiti se, Photomath je odlična prilika, navodi Niko bez trunke sumnje:
Ja mogu iskreno reći da sam u pola godine u Photomathu naučio i postigao više nego u nekoliko godina u drugim firmama.
Tea se nadovezuje s činjenicom da ćete se u Photomathu kroz svakodnevne zadatke susresti s raznim tehničkim izazovima.
Posao nije monoton i uvijek nam se cilj dodatno poboljšavati. Osim toga, lijepo je biti dio ovako pozitivne priče kao što je uspjeh Photomath aplikacije!
U zadnjih pola godine su skoro udvostručili tim, a u budućnosti se nadaju takva proširenja napraviti još nekoliko puta. Posebno jer im je želja preuzeti i testiranje interno razvijenih alata za internu uporabu, za što će trebati mnogo više ljudi. Trenutno su se pak primirili s novim zapošljavanjima, dodaje Niko, jer nedavno primljene nove kolege trebaju kvalitetno uvesti u posao i osigurati da im kvaliteta ne opadne.
“Kad se to sve smiri, sigurno ćemo imati otvorenih pozicija. Jer posla uvijek imamo”, poručuje za kraj.
Do tad, pratite njihove stranice karijera!
I bacite oko na Photomath Talks, seriju Photomathovih virtualnih meetupa za tehnološku zajednicu – jedan od razgovora bio je posvećeno upravo QA timu:
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:
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.