Ako správne hodnotiť Test Automation Results
Regresný test môže ráno skončiť s 98 percentami úspešných prípadov a napriek tomu nebyť dobrou správou. Možno je neúspešný test práve prihlásenie veľkého zákazníka. Možno sa 40 testov preskočilo, pretože testovacie prostredie nebolo dostupné. Alebo bol beh zelený, ale kontroloval len to, či tlačidlá existujú, nie či sa objednávka skutočne uloží, vytvorí sa dodací list a zásoba sa správne upraví. Test automation results nie sú výrokom o kvalite, kým chýba ich kontext.
Pre vedenie QA, vývoj a odborné útvary preto skutočná práca nespočíva len v automatizovaní testov. Rozhodujúce je pripraviť výsledky tak, aby z nich vznikali spoľahlivé rozhodnutia: dá sa vydanie nasadiť? Treba chybu riešiť okamžite? Je chyba nová, opakovaná alebo len problém testovacieho prostredia? A existujú dôkazy, ktorým porozumie aj odborný útvar bez testovacieho kódu?
Čo Test Automation Results skutočne vypovedajú
Najjednoduchší ukazovateľ znie: prešiel alebo neprešiel. Je užitočný, ale zriedka postačujúci. Vysoký podiel úspešnosti môže vytvárať dôveru, ak testy pokrývajú kritické procesy, testovacie dáta sú vierohodné a prostredie sa podobá neskoršej prevádzke. Ak chýba jeden z týchto faktorov, číslo zostáva predovšetkým signálom, že sa vykonal automatizovaný priebeh.
Pri obchodne kritických aplikáciách majú väčšiu váhu iné otázky. V skladovom riešení nie je každá obrazovka rovnako dôležitá. Chyba zobrazenia vo vnútornom texte upozornenia môže počkať. Chyba, ktorá pri príjme tovaru zaúčtuje nesprávne množstvo alebo vytvorí expedičný štítok bez adresy príjemcu, nie. Dobré výsledky testov preto vážia riziká namiesto toho, aby všetky prípady brali rovnako.
Ani neúspešný test nie je automaticky chybou produktu. Môže ho vyvolať vypršané prístupové údaje, zablokovaná testovacia rola, nedostupné rozhrania, zmenené testovacie dáta alebo pomalé prostredie. Kto tieto príčiny neodlíši, vytvára šum. Tím potom trávi čas falošnými poplachmi, kým skutočné chyby zanikajú medzi červenými stavovými hláseniami.
Štyri typy stavu namiesto jedného červeného zoznamu
V praxi sa osvedčuje jasné rozdelenie: odborná chyba, technická chyba testu, problém prostredia a očakávaná zmena. Odborná chyba znamená, že aplikácia porušuje definovanú požiadavku. Technická chyba testu poukazuje skôr na samotný test, napríklad selektor, ktorý už nesedí po zámerne zmenenom rozhraní.
Problém prostredia nastáva, keď napríklad testovací systém alebo pripojené rozhranie nie je dostupné. Očakávané zmeny vznikajú, keď sa proces zámerne upravil, ale automatizácia ešte kontroluje starý cieľový stav. Tieto kategórie nezabraňujú každej diskusii. Ale zaručujú, že diskusia začne na správnom mieste.
Od testovacích behov k správam pripraveným na rozhodnutie
Použiteľná správa neodpovedá len na to, že niečo zlyhalo, ale čo sa stalo, aké je to závažné a či sa chyba javí ako reprodukovateľná. Treba na to viac než zoznam názvov testov a časových pečiatok.
K každému relevantnému behu patrí overovaný build, testovacie prostredie, použitá rola, kľúčové testovacie dáta a čas začiatku a konca. Najmä pri desktopových aplikáciách Windows alebo zložitých webových platformách sú tieto informácie potrebné na zúženie rozdielov. Chyba, ktorá sa vyskytuje len pod obmedzenou skladovou rolou, je niečo iné než chyba, ktorá blokuje každé prihlásenie.
Významné výsledky obsahujú navyše sledovateľné dôkazy: snímky obrazovky, zaznamenané kroky, chybové hlásenia a v prípade potreby technické protokoly. Samotná snímka obrazovky však môže klamať. Ukazuje okamih, nie príčinu. Kombinácia poradia krokov, viditeľného stavu a očakávanej reakcie je podstatne užitočnejšia.
Systémy podporované umelou inteligenciou môžu tieto dôkazy previesť na zrozumiteľné hodnotenia. Pri COCO napríklad testy bežia na vlastnom, samostatne hostovanom AI serveri. Vyhodnotenie môže vysvetliť, že objednávka bola síce vytvorená, ale očakávaná zmena stavu nenastala, a priamo priradiť záznam vykonania. Pre bezpečnostne uvedomelé tímy je relevantné, kde sa spracúvajú snímky obrazovky, dáta aplikácie a testovacia prevádzka. Lokálna kontrola nie je automaticky nevyhnutná, ale pri interných aplikáciách a citlivých dátach môže byť rozumnejšou cestou než externá cloudová služba.
Správna úroveň detailu pre rôznych príjemcov
Vývojové tímy potrebujú chybové hlásenia, technické kroky a čo najpresnejšie pokyny na reprodukciu. Prevádzkový manažér naopak potrebuje najprv dotknutú funkciu, obchodné riziko a jasné vyjadrenie k prevádzkyschopnosti. Obe perspektívy musia môcť vzniknúť z toho istého vykonania, bez toho, aby niekto musel ručne prenášať výsledky do prezentácií.
Dobrá správa preto začína krátkou rozhodovacou úrovňou: vydanie odporúčané, vydanie so známymi obmedzeniami alebo zastaviť vydanie. Pod tým stoja kritické odchýlky s prioritou a dôkazom. Technické podrobnosti nasledujú až potom. To nie je zjednodušenie na úkor presnosti, ale čisté oddelenie informačných potrieb.
Merať pokrytie bez klamania sa o istote
Pokrytie testami sa často znázorňuje ako percentuálna hodnota. Táto hodnota je užitočná, keď je jasné, čo meria. Pokrytie kódu ukazuje napríklad, ktoré časti programového kódu sa vykonali počas testov. To nedokazuje, že obchodný proces funguje správne. Test sa môže dotknúť mnohých riadkov kódu a napriek tomu nikdy neoveriť, či sa na dokumente objaví nesprávna dodacia adresa.
Pre odborné útvary je pokrytie procesov často výpovednejšie. Opisuje, ktoré skutočné priebehy sú chránené: zaevidovať objednávku, rezervovať zásobu, zaúčtovať čiastočnú dodávku, prijať vratku alebo schváliť faktúru. Obzvlášť cenné sú prechody medzi systémami a rolami, pretože tam často vznikajú chyby: pri importe objednávky, tlači štítku alebo pri prechode z kancelárie na skladový terminál.
Neurčujte priority podľa počtu možných testov, ale podľa dosahu škody a frekvencie zmien. Zriedkavo používaný proces s vysokým finančným alebo právnym rizikom si často zaslúži automatizáciu skôr než často používané, ale neškodné zobrazenie. Naopak, stabilný, málo kritický priebeh môže naďalej vystačiť s krátkou ručnou kontrolou. Nie každú kontrolu treba automatizovať len preto, že sa dá automatizovať.
Nestabilné testy sú samostatný problém kvality
Testy, ktoré bez rozpoznateľnej zmeny produktu raz prejdú a raz zlyhajú, sa často označujú ako flaky. Poškodzujú dôveru rýchlejšie než trvalo červený test. Len čo tímy reflexívne znova spúšťajú červené výsledky, automatizácia stráca svoju varovnú funkciu.
Príčiny sú zvyčajne konkrétne: pevné čakacie doby, spoločne používané testovacie dáta, paralelné prístupy, asynchrónne spracovanie alebo prostredie, ktoré sa neobnovuje. Krátka trojsekundová pauza v teste môže náhodou pomôcť, ale nie je riešením. Lepšie je čakať na preukázateľný stav, urobiť testovacie dáta jednoznačnými a izolovať priebehy od seba.
Nie každú nestabilitu sa dá celkom vylúčiť. Externé rozhrania môžu kolísať a skutočná infraštruktúra má výpadky. Správa by potom mala jasne označiť, či sa test kvôli externej závislosti nedal vyhodnotiť. Opakovaný beh môže byť na diagnostiku zmysluplný, ale nesmie urobiť prvé zistenie neviditeľným.
Zmysluplný postup po každom testovacom behu
Po automatizovanom behu by sa nemal každý výsledok hneď brať rovnako. Najprv sa skontrolujú blokujúce chyby a kritické testy, ktoré sa nedali vyhodnotiť. Potom nasleduje zaradenie nových odchýlok voči známym, akceptovaným problémom. Až potom je rozhodnutie o vydaní spoľahlivé.
Užitočné sú stanovené prahové hodnoty, ale musia zodpovedať procesu. Napríklad neúspešný test v platobnom alebo autorizačnom toku môže spustiť okamžité zastavenie. Pri čisto kozmetickej odchýlke môže byť zdokumentovaná výnimka obhájiteľná. Takéto pravidlá by nemali vznikať až pod časovým tlakom pred vydaním.
Rovnako dôležitá je spätná väzba: každá produkčná chyba, ktorú testy nezachytili, je dôvodom skontrolovať, či nechýba scenár, variant testovacích dát alebo kontrolný bod. Cieľom nie je nahromadiť čo najviac testov. Je ním budovať z reálnych chýb cielene lepšie zabezpečenie.
Najužitočnejšie výsledky testov nie sú napokon tie s najzelenším prehľadom. Sú to tie, pri ktorých môže zodpovedná osoba v pondelok ráno pochopiť, čo sa overilo, aké riziko zostáva a aký krok je teraz rozumný.