QA engineer a QA tester: Čo robia a ako spolupracujú s developermi

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.

QA engineer a QA tester spolupracujú s vývojármi na kontrole kvality softvéru pred release
Spolupráca QA engineer a QA tester pri vývoji softvéru

V článku sa dozvieš:

    Čo sú QA pracovné pozície

    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.

    • QA engineer má na starosti testovanie softvéru, nastavovanie procesov kvality a často aj automatizované testy.
    • QA tester sa zameriava viac na manuálne testovanie, prípravu testovacích scenárov a dokumentáciu.

    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.

    Recommend

    Odporúčame ti…

    Pozri si aj naše otvorené pracovné pozície z oblasti testingu.

    Kto je QA engineer a čomu sa venuje?

    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:

    • Testovanie softvéru. Ide o najdôležitejšiu úlohu. Keď inžinier dostane od vývojárov hotovú aplikáciu, začne ju dôkladne testovať. Overuje, či funguje tak, ako má, a pri testovaní využíva rôzne metódy, aby dosiahol čo najlepšie výsledky.
    • Automatizované testovanie. QA engineeri využívajú manuálne aj automatizované testovanie. Často tieto techniky kombinujú, aby dosiahli čo najpresnejšie výsledky.
    • Spolupráca s vývojármi. Kľúčový prvok, ktorý výrazne ovplyvňuje úspech celého projektu. Chyby, ktoré QA engineeri odhalia, musia vedieť jasne a zrozumiteľne komunikovať vývojárom, aby ich tí mohli efektívne odstrániť.
    • Zabezpečenie kvality. QA engineeri dohliadajú na to, aby bol výsledný produkt stabilný, rýchly a bez závažných chýb.

    7 min.Prečo si vybrať zamestnanie software testera

    8 dôvodov, prečo si vybrať zamestnanie software testera

    V článku ti opíšeme dôvody, prečo naštartovať svoju kariéru v IT práve na pozícii IT testera.

    Kto je QA tester a aká je jeho náplň práce?

    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:

    Príprava testovacích plánov

    Testeri zvyčajne vypracúvajú testovacie plány, ktoré následne poskytujú QA engineerom. Tí na ich základe vykonávajú samotné testy.

    Spolupráca s QA engineermi

    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.

    Tvorba dokumentácie

    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.

    Recommend

    Odporúčame ti…

    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.

    QA inžinier vs. SW developer

    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.

    Povinnosti QA engineerov

    QA engineeri sa zameriavajú predovšetkým na tieto úlohy:

    • Zabezpečujú spoľahlivosť, kvalitu a funkčnosť softvéru tak, aby spĺňal očakávania koncových používateľov.
    • Zdokumentovávajú a následne nahlasujú problémy zistené v softvéri vývojovému tímu.
    • Vykonávajú rôzne testovacie techniky, ako sú testovanie použiteľnosti, regresné testovanie, funkčné testovanie a ďalšie.
    • Spolupracujú so zainteresovanými stranami, ako sú projektoví manažéri, vývojári či obchodní analytici, aby bol projekt dokončený včas a v rámci rozpočtu.

    Povinnosti software developerov

    Developeri sú ďalší špecialisti, ktorí zohrávajú kľúčovú úlohu v IT tímoch. Ich hlavná náplň práce zahŕňa:

    • Písanie dobre zdokumentovaného a čistého, ktorý spĺňa priemyselné normy.
    • Implementáciu softvérových riešení pomocou rôznych programovacích jazykov, ako sú C++, Python, Java a ďalšie.
    • Používanie nástrojov, ako sú vývojové prostredia (IDE), na písanie, ladenie (debugovanie) a testovanie kódu.
    • Neustále sledovanie nových technológií a trendov v odvetví a dodržiavanie osvedčených postupov.
    • Údržbu kódu, vykonávanie potrebných zmien a jeho pravidelnú aktualizáciu, aby sa dosiahla čo najvyššia kvalita výsledného riešenia.

    Čo spôsobuje konflikt medzi developermi a QA engineermi?

    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.

    Ako možno spojiť QA engineerov a vývojárov?

    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.

    Najlepšie spôsoby, ako môžu QA inžinieri zlepšiť spoluprácu s vývojármi softvéru

    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ší.

    1. Informuj vývojárov o výsledkoch

    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.

    2. Buď dôsledný v dokumentácii testovania

    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.

    3. Pracuj s vývojármi na spoločných cieľoch

    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.

    4. Zameraj sa na lepšiu komunikáciu

    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.

    5. Zdieľaj svoje vedomosti s ostatnými

    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í.

    6. Vzájomný rešpekt

    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ť.

    7. Začni testovať už v ranom štádiu – Shift-Left!

    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úť.

    Recommend

    Odporúčame ti…

    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.

    8. Vzájomne sa informujte o svojich aktivitách

    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:

    • Trello
    • Slack
    • Pivotal Tracker
    • Jira
    • Asana

    9. Zabezpeč, aby sa testovací tím podieľal na code reviews

    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.

    10. Nauč kolegov vývojárov automatizované unit testovanie

    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.

    11. Zisti, čo vývojári testovali, aby si mohol uprednostniť iné oblasti

    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ť.

    12. Zabezpeč, aby developeri dokázali úspešne reprodukovať bug

    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:

    • Aké používateľské oprávnenia mal nastavené v systéme, keď sa chyba vyskytla?
    • Objavuje sa chyba aj po zmene týchto oprávnení?
    • Aký prehliadač (a jeho verziu) používa?
    • Aké kroky vykonal na reprodukciu chyby?
    • Aké dáta sú potrebné? (Napríklad účet s heslom, na ktorom sa chyba vyskytuje, a pod.)

    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.

    13. Zameraj sa na kvalitu, nie na testovanie

    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.

    14. Podeľ sa o zodpovednosť

    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.

    15. Buď konštruktívny, pokiaľ ide o chyby

    Ž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.

    16. Netrestaj vývojárov ani používateľov

    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:

    • vytvoriť pracovný tím, ktorý sa bude venovať zlepšovaniu kvality,
    • vydať len prvú časť funkcie (takú, ktorá je dostatočne kvalitná),
    • označiť funkciu ako alfa, beta alebo skorý prístup (early release), aby sa stanovili realistické očakávania.

    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.

    FAQ: Najčastejšie kladené otázky o QA testeroch a QA inžinieroch

    Je QA engineer to isté ako test engineer?

    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.

    Aké skills a skúsenosti potrebuje QA inžinier?

    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.

    Môžu byť z QA testerov QA engineeri?

    Á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í.

    Čím lepšia spolupráca, tým kvalitnejší softvér

    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.

    O autorovi

    Michaela Kojnoková

    Agile Test Engineer

    Po štúdiu informatiky na ŽU a TUKE som sa najviac ponorila do oblasti automatizácie testovania. Okrem toho sa venujem tvorbe webov, databázam, dátovej analytike, umelej inteligencii a strojovému učeniu. Mám rada cestovanie, šport a najviac si užívam čas strávený v prírode s mojimi blízkymi. LinkedIn

    Daj nám o sebe vedieť