IT Systems Integration Consultant
QA engineer a QA tester sú kľúčovými osobami v procese vývoja softvéru. Zameriavajú sa na to, aby bola aplikácia v poriadku a mohla sa bez problémov posunúť ďalej – ideálne už konečnému spotrebiteľovi. Láka ťa QA pracovná pozícia, no nevieš, čo každá z nich obnáša a aké sú medzi nimi rozdiely? Čítaj ďalej. Máme pre teba pripravené všetky kľúčové informácie.

V článku sa dozvieš:
V IT tímoch existuje špeciálna skupina odborníkov, ktorí dohliadajú na kvalitu softvéru – QA (Quality Assurance) špecialisti. Medzi najznámejšie roly patria QA engineer a QA tester. Ich spoločným cieľom je to, aby aplikácie fungovali spoľahlivo, bez chýb a priniesli používateľovi dobrý zážitok.
Jednoducho povedané, QA inžinier buduje procesy a hľadá chyby a QA tester ich zaznamenáva a systematicky overuje. Spoločne tvoria tím, ktorý je nevyhnutný pre úspešný vývoj softvéru.
Pozri si aj naše otvorené pracovné pozície z oblasti testingu.
QA inžinier (Quality Assurance engineer) je odborník, ktorý sa stará o to, aby bol softvér či aplikácia, na ktorej pracujú vývojári, kvalitný, bezchybný a aby spĺňal všetky potrebné požiadavky ešte predtým, než sa dostane ku koncovým používateľom. Týmto spôsobom dokáže ušetriť klientovi nielen čas, ale aj peniaze.
QA engineeri majú na starosti rôzne úlohy, medzi ktoré patria napríklad:
Okrem inžiniera sa môžeš stretnúť aj s QA testerom. Tieto dve pozície pôsobia veľmi podobne, no odlišujú sa tým, na čo sa zameriavajú. QA testeri majú spravidla na starosti tieto úlohy:
Testeri zvyčajne vypracúvajú testovacie plány, ktoré následne poskytujú QA engineerom. Tí na ich základe vykonávajú samotné testy.
QA testeri spolupracujú s viacerými odborníkmi, no najčastejšie práve s QA engineermi, ktorým poskytujú testovacie plány a pomáhajú s testovaním.
QA tester zaznamenáva celý proces testovania. Zapisuje, čo funguje a čo je potrebné opraviť. Dokumentácia je následne dôležitým a praktickým nástrojom pre vývojárov a ďalších IT špecialistov, ktorí sa podieľajú na odstraňovaní chýb.
Správny inžinier aj tester aplikácií by mali mať viaceré mäkké aj tvrdé zručnosti. Medzi mäkké patria pozornosť k detailom, trpezlivosť, systematickosť, precíznosť, zvedavosť, kritické a analytické myslenie, schopnosť spolupracovať a vytrvalosť. Z technických a praktických zručností by to mali byť základné programátorské znalosti, znalosť nástrojov na testovanie, porozumenie softvérovému vývoju a schopnosť písať prehľadné reporty.
Pracovných pozícií v IT sfére je veľa a mnohí si ich často mýlia. Platí to aj pri QA engineeroch a developeroch. Títo dvaja špecialisti síce úzko spolupracujú na rôznych úlohách, no náplň ich práce je výrazne odlišná. Pre lepšiu predstavu sme porovnali ich hlavné povinnosti.
QA engineeri sa zameriavajú predovšetkým na tieto úlohy:
Developeri sú ďalší špecialisti, ktorí zohrávajú kľúčovú úlohu v IT tímoch. Ich hlavná náplň práce zahŕňa:
Vzťah medzi vývojárom a QA engineerom je často napätý a pripomína vzťah medzi pôvodným tvorcom a nekompromisným kritikom. Práca QA inžiniera si zo svojej podstaty nevyžaduje oceniť tvrdú prácu a šikovnosť, ktorú vývojár vložil do zmien kódu, ale namiesto toho kladie dôraz na hľadanie chýb. Na praktickej úrovni QA engineerov zaujíma najmä to, koľko chýb zmena kódu priniesla a kedy ich vývojár opraví.
V čase, keď vývojári píšu viac kódu ako kedykoľvek predtým, nemusia byť práve najväčšími fanúšikmi QA engineerov. Môžu ich vnímať ako prekážku vo svojej snahe nasadiť viac kódu, čo často vedie ku konfliktom medzi tímami. Takáto pesimistická kultúra bráni spolupráci medzi vývojármi a QA engineermi, čo môže negatívne ovplyvniť dodržiavanie termínov a zvýšiť náklady.
V kultúre spolupráce inžinieri aj vývojári chápu, že nemôžu pracovať jeden bez druhého. Preto namiesto toho, aby sa na seba pozerali s opovrhnutím, spolupracujú, uľahčujú si prácu a ako celok rýchlejšie napredujú.
Zmena kultúry môže byť prvým krokom k tomu, aby oba tímy efektívne spolupracovali. Napriek tomu je potrebné urobiť viac, aby sa vybudovala pevná a funkčná spolupráca medzi tímom kvality a vývojovým tímom.
Spolupráca s vývojármi softvéru môže byť pre testera aplikácií náročná. Ak sa však budeš držať týchto odporúčaní, celý proces bude plynulejší a príjemnejší.
Fáza testovania môže byť pre vývojárov stresujúca – nielen preto, že ich nespočetné hodiny práce sú pod drobnohľadom, ale aj preto, že komunikácia o priebehu testovania býva často nedostatočná.
Buď proaktívny a stanov konzistentný spôsob informovania vývojárov o pláne testovania, výsledkoch a prípadných zmenách. Jedným zo spôsobov je poskytovať prehľadné plány testovacích behov a súhrny výsledkov. Keď sa objavia výsledky, zameraj sa na to, aby spätná väzba bola konštruktívna a praktická – pomôž si popisom, snímkami obrazovky či inými kontextovými údajmi.
Zbav proces testovania dohadov tým, že zabezpečíš štandardizovaný spôsob štruktúrovania testovacích prípadov, plánovania behov a zhromažďovania či reportovania spätnej väzby.
Pomôcť ti môžu moderné nástroje na správu testovania, ktoré obsahujú knižnice testovacích prípadov. Tie hodnotia funkčnosť na základe osvedčených postupov alebo priemyselných štandardov. Vďaka týmto knižniciam budú vývojári presne vedieť, čo treba implementovať a ako vyhodnotiť súlad so štandardmi.
Spolu s vývojármi sa zamyslite nad tým, aké sú tvoje ciele ako jednotlivca a aké sú ciele tímu. Je cieľom vytvoriť softvér bez chýb? Získať finančnú odmenu? Alebo priniesť ďalší prelomový produkt?
Spísanie cieľov vám umožní ich formalizovať a jasne komunikovať. Často zistíš, že to, čo chce dosiahnuť tím, chceš aj ty sám – a práve to vytvára predpoklady pre pevný a dôverný vzťah.
Práca QA engineera často zjednodušuje komunikáciu medzi ľuďmi. Dokáže zvýšiť efektivitu a zlepšiť interaktivitu – či už ide o aplikácie sociálnych médií alebo systémy na správu IT ticketov.
Iróniou však je, že samotná komunikácia IT špecialistov môže niekedy trpieť. QA engineeri aj vývojári sú často takí pohltení kódom, technológiami a opakujúcimi sa technickými úlohami, že zabúdajú na svet okolo seba. To je problém, pretože výmena myšlienok, nápadov či postrehov zo softvéru, na ktorom pracujú, je kľúčová pre plynulý chod projektu a efektívnu spoluprácu.
Vývojári a inžinieri by sa mali učiť jeden od druhého. Vývojár by mal pomôcť inžinierovi pochopiť kód spolu so všetkými súvisiacimi testovacími scenármi, zatiaľ čo inžinier by mal vývojárovi objasniť testovací súbor a dôvody výberu konkrétnych techník na testovanie.
Inžinier, ktorý rozumie základnému kódu, má výhodnejšiu pozíciu pri hľadaní problémových miest a potenciálnych chýb. Naopak, vývojár, ktorý rozumie testovaciemu súboru a vie, ako ho vylepšiť, dokáže vytvoriť odolnejší produkt a písať presnejší kód. Zdieľanie vedomostí medzi inžiniermi a vývojármi tak môže viesť k silným spojenectvám v tíme a zároveň podporovať rozvoj ich zručností.
Aby bol proces zdravý a výsledný produkt kvalitný, vzťah medzi vývojárom a QA engineerom by mal byť založený na vzájomnom rešpekte. V tomto duchu je dôležité, aby engineer pri hlásení chýb neukazoval prstom. Keď sa chyby prezentujú odsudzujúcim spôsobom, je prirodzené, že si ich vývojári vezmú osobne – koniec koncov, ide o ich kód.
Pre vývojárov je rovnako dôležité pamätať na to, že cieľom QA je zlepšovať používateľskú skúsenosť a celkovú kvalitu produktu. Rešpektujúci inžinier sa vždy sústreďuje na tento cieľ. Znamená to hodnotiť kvalitu aplikácie alebo webu, nie kritizovať programátora, ktorý za problém môže, ale aj nemusí byť zodpovedný. Ak medzi vývojármi a QA vládne vzájomný rešpekt, môžu si byť istí, že chyby sú hlásené objektívne a s cieľom pomôcť.
Tradične sa úloha QA engineera začína až vtedy, keď vývojári dokončia svoju prácu. Ak však chceš dodávať robustné webové aplikácie rýchlejšie, je potrebné začleniť testovanie do SDLC čo najskôr. Shift-left testing je metodika, ktorá kladie dôraz na testovanie už vo fáze zhromažďovania požiadaviek. Vďaka tomu môžu inžinieri premýšľať o možných scenároch, pri ktorých sa môžu vyskytnúť chyby.
Predstav si teraz, že vývojári vedia, aké testy bude tím QA vykonávať pri každej funkcii. Nemyslíš si, že im to pomôže zlepšiť sa v tom, čo už robia? Ak sa testovací tím zapojí už vo fáze vývoja, môže sledovať, aké vlastnosti CSS a JavaScriptu vývojári implementujú, a zároveň ich upozorniť na možné problémy s kompatibilitou medzi prehliadačmi, ktoré by mohli vzniknúť.
QA engineeri sa môžu paralelne zapojiť do práce tým, že začnú testovať kód už počas vývoja. To môže ušetriť veľa času a zároveň predísť chybám vývojárov. Koniec koncov – čím skôr odhalíte a opravíte chyby, tým viac času, peňazí a zdrojov nakoniec ušetríte.
Mať stoly blízko seba a komunikovať tvárou v tvár o pracovnom postupe môže určite pomôcť odstrániť komunikačné medzery. Tento typ konverzácie však nemusí byť vždy možný. Ak členovia vývojového a testovacieho tímu pracujú z rôznych miest, je potrebné nájsť alternatívy. Používanie nástrojov na spoluprácu môže pomôcť zdieľať aktualizácie a držať krok s cieľmi pre šprint.
Existuje množstvo aplikácií na správu pracovných postupov, ktoré zobrazujú priebeh rôznych úloh bez ohľadu na lokalitu. Vytvárajú tak jednoduchú cestu pre komunikáciu medzi tímami. Medzi špičkové aplikácie patria napríklad:
V mnohých organizáciách sa QA engineeri či QA testeri na preskúmaniach kódu zúčastňujú len minimálne alebo vôbec. Nemalo by to však byť pravidlom. Pochopenie kódu a jeho fungovania nie je výlučne úlohou vývojárov. Testeri musia navrhovať testy zamerané na správne oblasti, ktoré následne poskytujú QA engineerom. Učenie sa jeden od druhého tento proces zjednodušuje. Okrem toho môžu testeri a inžinieri ľahko odhaliť aj chyby. Dôkladná znalosť vzájomných nástrojov a spôsobu práce je prínosom pre QA tím aj vývojárov.
Vývojový tím si napríklad nemusí uvedomiť, aký náročný je proces testovania webových aplikácií naprieč prehliadačmi. V ich očiach platí, že ak kód funguje dobre v ich obľúbenom prehliadači (Google Chrome, Safari alebo Mozilla Firefox), bude fungovať dobre aj inde. Trpkú pravdu im však môže ukázať len testovací tím – a čím skôr tak urobí, tým lepšie. Z toho vyplýva, že vývojári môžu mať výrazný prínos z pochopenia QA procesu a testovacích scenárov. Pomôže im to písať ľahšie testovateľný a stabilnejší kód.
Jedným z vynikajúcich spôsobov, ako zabezpečiť lepšiu spoluprácu medzi QA inžiniermi a vývojármi, je organizovať mítingy zamerané na odovzdávanie vedomostí o automatizovanom unit testovaní. Takto môžu inžinieri pomôcť vývojárom rýchlejšie vykonávať unit testovanie s využitím frameworkov pre automatizované testovanie.
QA inžinier by mal mať jasnú predstavu o tom, aké testovanie už vykonali vývojári. Pomôže mu to identifikovať funkcie, ktoré boli otestované – či už manuálne, alebo prostredníctvom automatizovaných skriptov. Zároveň dokáže zistiť, ktoré oblasti sú pokryté a ktoré si naopak vyžadujú väčšiu pozornosť.
Keď QA engineer zadáva hlásenie o chybe vývojárskemu tímu, malo by byť čo najkonkrétnejšie a obsahovať všetky relevantné informácie, napríklad:
Spolu s programátormi vytvorte šablónu informácií, ktoré sú pri odstraňovaní chýb nevyhnutné, no často prehliadané. Ak programátor napriek tomu nedokáže problém reprodukovať, spolupracuj s ním priamo a hľadajte rozdiely medzi jednotlivými prostrediami.
Testovanie je len prostriedok na dosiahnutie cieľa. QA engineeri často vykonávajú testy tak, akoby museli splniť nejakú kvótu. Musíme si však uvedomiť, že skutočným cieľom je zlepšiť kvalitu produktu.
Uisti sa, že rozumieš tomu, čo je pre tvojich zákazníkov dôležité – a to testuj. Nezameriavaj sa len na definíciu user story. Snaž sa myslieť ako používateľ a over, či aplikácia dáva zmysel aj z jeho pohľadu.
V jednom projekte, na ktorom som sa podieľala, mala aplikácia funkciu hlásenia chýb. Prešla všetkými funkčnými testami a vyzerala výborne. Zákazníci sa však sťažovali, že z hlásenia nevedia jednoducho pochopiť, kde sa zvýraznený problém nachádza.
Vždy mysli na používateľov a netestuj len preto, aby si si mohol odškrtnúť splnený test. Používateľov nezaujíma, koľko testov ste s tímom vykonali – zaujíma ich kvalita produktu a to, či skutočne zodpovedá ich potrebám.
Je to veľmi jednoduché: každý by mal byť zodpovedný za kvalitu produktu. V agilnom tíme už neexistuje „my“ a „oni“. Vývojári by mali byť zodpovední za svoj kód a uistiť sa, že napísali príslušné unit testy. QA by mal testovať celý systém.
Áno, QA sú strážcovia kvality, ale každý člen agilného tímu by mal niesť rovnakú zodpovednosť za výsledný produkt.
Žiadne množstvo testovania nezaručí, že sa do produkcie nedostanú žiadne chyby. Niektoré sa vždy prešmyknú – aj cez najprísnejšie testovacie postupy – a odhalia ich až externí používatelia. Kľúčom k úspechu je zachovať pokoj, poučiť sa z týchto „uniknutých chýb“ a zlepšiť ďalší release.
Vývojári sa často pýtajú QA engineerov: „Ako je možné, že ste to nevideli? Vy ste to netestovali?“ Realita je však taká, že softvér je veľmi zložitý a nie je možné otestovať každý jeden scenár či každú konfiguráciu. QA engineeri vykonávajú testovanie založené na rizikách a sústreďujú sa na používateľské toky, ktoré považujú za najdôležitejšie a najčastejšie – a to v rámci časových možností, ktoré majú.
V niektorých prípadoch sa radia s produktovým manažmentom, obchodnými zainteresovanými stranami (predaj, predpredaj a pod.) alebo dokonca so samotnými zákazníkmi.
Oddelenie QA sa často vyhráža, že neschváli funkciu kvôli nízkej kvalite. To je to najhoršie, čo môžeš ako QA inžinier urobiť. Zamysli sa nad tým, aký to má výsledok: neschválením funkcie si znepriatelíš vývojára – a čo je horšie, používatelia ju nebudú môcť používať.
V prípade nízkej kvality existuje viacero možností, čo môžeš urobiť. Napríklad:
To znamená, že používatelia budú môcť začať využívať novú funkciu s vedomím, že je možno ešte len čiastočne dokončená. A to je výhra pre obe strany – používatelia dostanú funkciu a vývojári spolu s QA engineermi získajú spätnú väzbu.
Nie. QA inžinier sa zameriava na celý proces zabezpečenia kvality – od návrhu testovacej stratégie až po prevenciu chýb počas vývoja. Test engineer má technickejšie zameranie a venuje sa hlbokému testovaniu konkrétneho produktu, často aj výkonovým a bezpečnostným testom. V praxi sa ale tieto role môžu prelínať, najmä vo firmách, kde je menší QA tím.
Medzi kľúčové skills patria technické znalosti (programovanie, práca s databázami, API testovanie), znalosť metodík (funkčné aj non-functional testovanie) a nástrojov na testovanie (Selenium, Cypress, JMeter, Postman), analytické myslenie a schopnosť identifikovať riziká, komunikačné schopnosti – QA engineer často sprostredkováva spätnú väzbu medzi vývojom a manažmentom.
Áno. Veľa QA engineerov začínalo ako QA tester. Prechod si vyžaduje rozšírenie technických skills – najmä v oblasti automatizácie, testovacích nástrojov, programovania a návrhu stratégií.
Spolupráca QA engineera a QA testera je nevyhnutnosť každého IT tímu – od prvých požiadaviek až po finálny release. Ak ťahajú za jeden povraz, tím dokáže dodávať funkčný softvér rýchlejšie, s menším počtom bugov a s lepším používateľským zážitkom.
Ak ťa niektorý QA job zaujal, využi naše tipy a pomôž zlepšiť spoluprácu medzi vývojármi a QA engineermi – s dôrazom na význam komunikácie a tímovej spolupráce počas celého vývojového procesu. Nech už sa rozhodneš pre ktorúkoľvek z QA pozícií, vždy budeš dôležitou súčasťou tímu – človekom, ktorý sa stará o to, aby výsledný produkt nebol len funkčný, ale aj spoľahlivý a príjemný pre používateľov.
Súvisiace články