Posebna škola za testere ne postoji. Na fakultetima ne postoje smerovi koji se bave posebno ovom oblašću razvoja softvera u smislu oblikovanja profesionalaca koji su spremni da počnu sa radom, dok, sa druge strane, testiranje softvera postaje sve zahtevnije u tehničkom smislu. QA profesionalci su suštinski samouki. Materijali za učenje se mogu naći na webu, postoje i kod nas neki neformalni kursevi, ali ono što je najvažnije ipak nedostaje, a to je praksa.
U kompaniji Hybrid IT Solutions rade dva iskusna QA inženjera, Stefan Vorkapić i Marko Lakaj, koji su i sami bili suočeni sa navedenom situacijom i baš zato odlučili da kroz mentorski rad i dobro osmišljenu praksu pomognu ljudima koji žele da se bave QA-om.

U razgovoru sa Stefanom i Markom pokušali smo da otklonimo nedoumice i odgovorimo na najčešća pitanja vezana za QA: Da li je QA isto što i tester, da li to može da radi bilo ko bez tehničkog znanja, razvoj karijere i raspon plata, gde ima QA praksa i šta ćete na njoj naučiti…

Zašto QA nije za one koji žele lakše da uđu u programiranje?

Stefan: QA je potpuno odvojena grana, ali deo istog ciklusa razvoja softvera. Toolovi, alatni set i fokus posla je odvojena celina. QA nije ulaz, odskočna daska, za posao softver developera, već je zanimanje za sebe. Sam process učenja seta toolova, odnosno alata koji se koriste u testingu udaljava nas od razvojnog puta programera.
Marko : Ljudi imaju zablude da je biti tester mnogo lakše nego biti developer…u jednu ruku to jeste tačno, ukoliko je reč o manuelnom testeru koji nema dodira sa automatizacijom, ali kompletan QA, mora da zna osnove bar jednog programskog jezika i više automation frameworka kako bi mogao da uđe u srž celog procesa. Poenta je da QA koji radi i tehničku stranu, odnosno automatizaciju, sarađuje direktno sa developerima i na analitički način pristupa implementaciji koda.

Šta je to QA?

Marko: QA je skraćenica od Quality Assurance i razlikuje se od QC što je quality control. QA je osoba koja se brine o celokupnom kvalitetu softvera, ne vodi računa samo o tome da li su funkcionalnosti koje su developeri implementirali u jednom sprintu ispravne i odgovaraju kriterijumima, već se bavi kvalitetom celokupnog softvera, kao i kvalitetom UX-a.
Stefan: Recimo da je tester podskup QA-a i da je tako najlakše napraviti razliku u terminologiji. Tester najčešće testira funkcionalnost zadatu u određenom trenutku, dok QA razmišlja o celokupnom setu kvaliteta proizvoda i mora biti u kontaktu sa biznis stranom tog proizvoda.
Marko: Važno je reći i da je nepisano pravilo da QA ima najviše funkcionalnog znanja, pored Product Owner-a.

Kakve vrste testiranja softvera postoje?

Marko: To je jako široka paleta. Generalno se može podeliti na manuelno i automatsko.
Stefan: Najčešće se na pomen QA-a misli na funkcionalno testiranje koje podrazumeva testiranje feature-a, i da li oni funkcionišu na unapred definisan način. Potpuno posebna grana je na primer security testing, zatim performance testing (da li je odziv sistema dovoljno brz, da li može da podrži dovoljno korisnika,…) Marko i ja najviše radimo funkcionalno testiranje.
Marko: Testing piramida izgleda kao na slici 

Moram da napomenem da Unit i Component testing najčešće rade developeri, dok je QA odgovoran za preostale nivoe.

Šta je to kompletan QA?

Marko: Kompletan QA obavlja manuelno i automatsko testiranje (API i frontend).

 

Šta QA mora da zna i koje predznanje treba da ima?

Marko: Ono što se najviše očekuje od svakog QA-a je sposobnost analitičkog razmišljanja. Edukacija zavisi od toga da li neko želi da se bavi automatizacijom ili ne. Ukoliko želite da budete u drugoj grupi, podrazumeva se poznavanje osnova objektnog programiranja i bar osnova nekog programskog jezika (Java, JavaScript, Pyton, C#).
Stefan: Način razmišljanja je veoma važan jer je nama cilj da vidimo kada nešto ne radi, a ne kada radi.
Marko: Pokušavamo da “pokvarimo sistem” (smeh). Šalu na stranu, ali stvarno je tako. Naš posao je da razmišljamo “out of the box” i utvrdimo kako se implementirani feature ponaša u nepredviđenim uslovima.

 

Šta tačno radi QA?

Marko: QA garantuje i uverava se u ispravnost funkcionalnosti koje su implementirali developeri. Takođe brine o celokupnom kvalitetu softvera.

 

Kako izgleda razvoj karijere QA-a, gde mogu da se zaposle i koji je raspon plata?

Stefan: Svaka firma koja se bavi agilnim razvojem softvera bi trebala da ima QA-a, ali to nije uvek slučaj. Postoje dva razloga za neangažovanje QA-a, prvi je ušteda, a drugi je taj da klijent ima svog QA-a ili eksternu agenciju koja im radi QA.
Što se tiče razvoja karijere, moj je utisak da svi mi počinjemo od manuelnog testiranja, kako bi se izgradio mindset neophodan za automatizaciju procesa testiranja gde se u skripte preslika ono što bi se u prethodnom slučaju radilo manuelno. To nije nužno put kojim se mora ići, ali je malo nerealno očekivati od nekog ko je tek počeo, da obuhvati sve što jedan QA treba da zna i treba da uradi.
Sa druge strane u praksi sve zavisi od firme, projekata, klijenata. Napredovanje, rast i razvoj u karijeri QA-a, odnosno neki krajnji cilj u karijeri i vrhunac zavisi od vaših afiniteta i može da se posmatra sa tehničke, biznis i menadžment strane.
Može se napraviti razlika i u smislu rada u outsourcing firmi i firmi koja ima svoj proizvod. Testiranje vlastitog proizvoda može doneti veću fleksibilnost u izboru načina testiranja, pristupu samom procesu, izboru alata, jer klijenti često ograničavaju slobodu u ovom smislu. Na primer, ako se preuzima neki legacy projekat, moguće je da će klijent tražiti neki određeni technology stack u kom će se raditi testiranje…kao što se može desiti da klijent traži automatsko testiranje i daje slobodu u izboru tehnologije. Uvek je bolje početi rad na projektu od nule ….
Marko: Ako si početnik, prvo se očekuje da se upoznaš sa aplikacijom i njenim funkcionalnostima i opštim ciljem te aplikacije (čemu služi, ko je koristi…dakle biznis stranom softvera)……posle se polako kreće sa automatizacijom…prvo se rade lakši testovi, pa sve kompleksniji (kasnije se uvodi continuous integration, kako se postavljaju pipeline-ovi za testing job-ove…)
Samostalnost u radu dolazi s vremenom, ali pre svega zavisi od tehničkog zahteva projekta na kom radiš, od tvoje želje i spremnosti seniora da prenesu svoje znanje.Ako nemaš afiniteta da tehnički napreduješ, a radiš sa seniorom koji će donositi odluke, samostalnost će jako teško i sporo doći. Potrebno je da te neko gurne u vatru. Dakle, ovde ne postoji jedan odgovor, sve zavisi od toga gde radiš, na čemu radiš, da li imaš nadređenog, da li taj nadređeni želi da te uči, da li ti sam želiš da napreduješ i tražiš izazove.
Stefan: Najbolje je da te gurnu u vatru i da se snalaziš. U ovakvoj situaciji možeš da se nađeš ako nemaš od koga da učiš, ali i ako senior sa kojim radiš želi da te osamostali.
Marko: Što se tiče raspona plata, razlika između primanja QA-a i software developera je sve manja (u nekim firmama čak i nema razlike) jer sve više firmi prepoznaje integralnu ulogu QA-a u razvoju softvera (što se reflektuje i na platu). QA pozicija je sve zahtevnija tehnički i sve je bliže dev znanju i kao takva se sve više i vrednuje.

 

Šta će se tačno raditi na QA praksi u firmi Hybrid IT Solutions?

Stefan: Marko i ja smo osmislili QA praksu i planiramo da je realizujemo od 2.decembra kod nas u firmi Hybrid IT Solutions. S obzirom da imamo preko pet godina iskustva na raznim projektima iz nekoliko različitih industrija, kreirali smo tronedeljni program za praksu koji, po našem mišljenju, sadrži neophodne početne elemente za svakog ko želi da se bavi testiranjem softvera:
Manuelni deo
Test link – testing management tool
Pisanje test scenarija
Postman – testiranje API-a
Automatizacija
Front-end: Selenium Web Driver
API: RestAssured

 

Da li QA može da radi neko ko nije završio tehnički fakultet/programerske smerove?

Stefan: Definitivno može, dok god odgovara onim zahtevima koje smo već pomenuli. Dakle, može biti bilo kog backgrounda ali mora imati razvijeno analitičko mišljenje, mora poznavati osnove objektno orijentisanog programiranja i osnove bar jednog programskog jezika. Takođe, dobro poznavanje engleskog jezika je od velike važnosti. Ovo su ujedno i osnovni uslovi za praksu u Hybrid IT Solutions.

 

Šta možete sami da naučite ako želite da se bavite testiranjem?

Marko: S obzirom da ne postoji formalno obrazovanje za QA-a, najbolje je prvo pročitati nešto na temu značenja samog pojma i šta to zanimanje sve obuhvata, metodologijama, načelima, koji su framework-ovi najzastupljeniji, šta se najviše traži.
Stefan: Većinu mogu sami da nauče, osim praktičnog znanja, iako postoje projekti otvorenog tipa na kojima mogu da se nauče osnovne stvari.
Marko: Praktično znanje može da se stekne na našoj praksi. Prećićemo teorijsku osnovu, ali ćemo se baviti najviše praktičnom primenom određenih alata i metodologija.

Za kraj pozivamo sve zainteresovane (koji zadovoljavaju navedene uslove – analitičko mišljenje, poznavanje osnova objektno orijentisanog programiranja i osnova Java programskog jezika) da se prijave za QA praksu do 20. novembra, kako bismo mogli na vreme da intervjuišemo kandidate i počnemo sa radom od 2. decembra.

Prijave i svoj CV pošaljite na contact@hybrid-it.rs

Sve prijave ćemo detaljno pregledati i najbolji kandidati će biti pozvani na intervju.