Na projekte Crossuite je testing dôležitou súčasťou vývoja. Už 6 rokov preto máme v rámci neho samostatný, aktuálne 7-členný testerský tím, ktorý neustále zlepšuje svoje procesy. Aby sme mohli v tomto trende aj naďalej pokračovať, rozhodli sme sa v marci navštíviť QA konferenciu v Brne. TestCrunch sa totiž chváli prívlastkom “najlepšia a najväčšia testerská konferencia v Česko-Slovensku”. Ako správni testeri sme si to, samozrejme, museli overiť. Záver? Súhlasíme!
Robíme to správne
Presne to nám konferencia potvrdila. Napríklad na prednáške Is BDD in UI Automation still valid? rozprával Mykhailo Semenikhin o nutnosti využívať v rámci testingu Behavior Driven Development. Pri ňom sa testovacie scenáre zapisujú čo najzrozumiteľnejšie, aby mohli softvér otestovať aj netechnickí členovia tímu. My píšeme takýmto spôsobom napríklad naše akceptačné testy, a teda sme celú prednášku spokojne prikyvovali hlavami, že áno, naozaj je to skvelé.
Podobne to bolo aj pri vstupe Lukáša Pišku s názvom Zelené reporty aneb jak si udržet mindset testera. Tá hovorila o tom, že pri reportingu pre klienta sa nezriedka manipuluje s úspešnosťou reportov, len aby to dobre vyzeralo. Takáto nekalá technika je najčastejšia tesne pred dátumom spustenia novej funkcionality. My jej, podobne, ako prednášajúci, neholdujeme. Červené testy reportujeme poctivo a bugom priradzujeme prioritu podľa dôležitosti.
Našli sme bug na Alze!
Môjho kolegu, testera Ľuda, najviac zaujala prezentácia Tvůj iPhone není celý svět, testuj jako reálný uživatel: „Pre mňa osobne bola naj prednáška o web performance testingu. Radim Daniel Pánek začal otázkou, či aplikácie, ktoré má niekto používať, testujeme v reálnom užívateľskom prostredí. Vyzeralo to na jednoznačnú odpoveď. No potom sme sa dostali k tomu, že pri simulovaní reálneho pracovného prostredia používateľov by sme mali rátať aj napríklad so spomaleným netom, rôznymi peakmi a podobne. Až teraz sme začali chápať princíp otázky, ktorú na začiatku položil. Obyčajne totiž skúšame softvér na testovacom prostredí u nás v kancelárii, kde sú podmienky ideálne. Je to teda niečo, na čom musíme popracovať. No ale najlepšie na prednáške bolo, že Radim na záver odhalil kritický bug na produkcii Alzy! Čo to je nepoviem, ale bola to naozaj čerešnička na torte. :D“ Popri tejto prednáške ocenili kolegyne Katka a Andrea aj Security Testing nikdy nekončí od Matěja Gromana, pretože bola plná praktických príkladov.
AI ako technická podpora
Asi najviac sme sa tešili na prednášku AI in Test Automation od Rhony Asgari. V práci sme si už síce ChatGPT vyskúšali aj na generovanie automatizovaných testov, no všetkých nás zaujímalo najmä to, ako jeho potenciál využiť naplno. Prezentácia nás priviedla k myšlienke, že ak ho budeme kvalitne učiť a vkladať mu relevantné dáta, pravdepodobne dokáže generovať aj použiteľné scenáre. Nayše, na základe učenia na našom kóde, by mohol vedieť tieto scenáre jednoducho zautomatizovať. Do budúcna dokonca premýšľame aj nad potenciálom využitia chatu ako technickej podpory pre našich zákazníkov. Aj pri testovaní sa totiž môže naučiť, ako má aplikácia fungovať, a potom tieto znalosti pretaviť do odpovedí na otázky používateľov. Stále však zvažujeme riziká, ako je téma úniku dát, ktorých sa dopustila aj taká veľká firma ako Samsung, či neznalosti procesov fungovania inteligentných chatbotov.
Pocity z prezentácie o AI pekne zhrnul aj kolega Sam: „Prednáška mi objasnila celý dnešný „hype“ okolo AI. Vďaka nej sme si následne vyskúšali použitie ChatGPT aj na našom projekte, pri písaní jednoduchého testovacieho scenára a automatizovaného testu, pričom sme zadali názov user story a akceptačné kritériá. Ale mal som dobrý pocit z viacerých prednášok, ktoré ma uistili v tom, že naše QA štandardy máme nastavené správne a ideme dobrým smerom. Potešila ma úroveň celej konferencie, ktorá sa niesla v uvoľnenej atmosfére, no zároveň bola vedená profesionálne. Všetci prednášajúci boli veľmi dobre pripravení a vedeli upútať pozornosť počas celého dňa prednášok.“
Budeme mať testathon!
No a na záver sme sa, aj vďaka prednáške How testing is evolving in DevOps od Szilárda Szélla, utvrdili v tom, že testovanie je dôležitou súčasťou celého vývojového spektra, od plánovania až po delivery. QA tím by mal dbať o to, aby sa jeho spätná väzba dostala do tvorby nových funkcionalít už niekde na začiatku ich vzniku, no zároveň samozrejme nesmie chýbať ani v ostatných krokoch, až po finálne delivery produktu. Vďaka tomu bude možné bezpečnostné problémy odhaliť už v úvode vývoja, poskytnúť spätnú väzbu developerom už v procese dizajnovania prototypov a sústrediť sa na zrozumiteľnosť aplikácie pre cieľového používateľa.
Čo by sme však chceli do nášho procesu doplniť sú silnejšie penetračné a performance testy alebo AWS Fault Injection Simulator (FIS) fungujúci na princípe tzv. chaos engineering. S aplikáciou teda pracuje v náhodných a nepredvídateľných situáciách, nie v logických postupoch, ktoré bežne skúsení používatelia vykonávajú. Prípadne sa zámerne spôsobujú rôzne problémy a sleduje sa, ako na ne softvér reaguje. Takto dokážeme identifikovať slabé miesta v systéme a následne vytvárať programy, ktoré sú schopné odolávať rôznym typom porúch. Chaos engineering by sme si radi vyskúšali aj manuálne, napríklad na barťanskom premiérovom testathon-e. Veríme, že to bude už čoskoro.
Záver slovami kolegynky Andrei: „Prednášky na konferencii boli dobrý mix, každá niekoho zaujala. Navyše tam mali veľmi dobré jedlo a rôzne aktivity cez prestávky :). Určite sa nám oplatilo na ňu vycestovať a hlavne sme si splnili ciele, kvôli ktorým sme sa konferencie rozhodli zúčastniť.”
A pre mňa osobne bola konferencia skvelým záverom štvorročného fungovania v rámci QA tímu, ktorý som teraz vymenil za pozíciu DevOpsáka. Nechávam ho ale v dobrých rukách a verím, že všetko, čo sa kolegovia dozvedeli v Brne, pretavia do praxe. A keďže DevOps a QA idú ruka v ruke, teším sa, že budeme spolupracovať naďalej, hoci možno na inej úrovni. Stále ale ostávam v rovnakej kancelárii, s rovnakými ľuďmi okolo, a s rovnakou víziou – zlepšovať kvalitu aplikácie a prinášať koncovým používateľom skutočnú hodnotu.