Jako tester jsem často přemýšlel nad tím, jak zefektivnit a vylepšit proces testování. Odpověď, kterou jsem našel, leží ve světě AI. Dnes se s vámi proto chci podělit o to, že umělá inteligence není jen módní slovo, ale mění hru v oblasti testování.
Jak nám testerům může umělá inteligence pomoct?
Umělá inteligence může být užitečná například při tvorbě testů. Může nám pomoci jak s automatickými, tak i s manuálními testy, čímž zrychlí naši práci a usnadní detekci chyb. Navíc není její přínos pouze v psaní testů. Umělá inteligence může vizuálně sledovat změny v aplikaci nebo nám poskytnout rady při psaní testů. Další výhodou je generování dat potřebných k testování. Představuje nástroj, který zvyšuje naši efektivitu a pomáhá organizovat testování, což vede k lepší kvalitě výsledků.
Generování dat
AI může generovat velké množství různorodých dat. Ty můžeme využít k psaní již zmíněných scénářů, test casů, mind map, dat pro formuláře, uživatelských dat nebo nám může pomoct při psaní dokumentace. Ne vše se ale děje v jednom AI nástroji, je potřeba jich tak znát více, protože každý se zaměřuje na trochu něco jiného.
První nástroj, který bych chtěl představit, je Mockaroo. Je to nástroj, který umí generovat data ve formátech CSV, JSON, SQL, takže zvládá vyplňovat data pro formuláře nebo rovnou pro databáze různorodými daty. Nástroj nevyžaduje žádné kódění a navíc si můžete nastavit, kolik polí pod jakým názvem chcete, aby se generovalo, nebo můžete nahrát nějaký CSV soubor, kde je příkladem toho, jak by měla struktura vypadat, pak už jen vyplníte, kolik polí k tomu chcete a v jakém formátu vám má Mockaroo vyplivnout výsledek.
Já jsem tento tool využil nedávno při testování projektu, kde jsem potřeboval vytvářet mnoho formulářů ohledně nemovitostí. Měli jsme možnost importovat nemovitosti z CSV souborů, takže jsem si stáhl vzor souboru, vložil ho do Mockaroo a během chvilky jsem si zvádl vygenerovat 1000 nemovitostí, které jsem pak používal v průběhu testování.
Dalším toolem je Gretel.ai. Ten se specializuje na generování syntetických dat, což znamená, že data, které generuje, se mají podobat reálným, ale jsou uměle vytvořená. Nástroj klade důraz na ochranu soukromí a bezpečnost citlivých informací. Je vhodný pro situace, kde je klíčové zajistit, že žádné skutečné citlivé údaje nejsou vystaveny riziku. Funguje tak, že do něj nahrajeme nějaký soubor, kde jsou reálná data, a nástroj je zanonymní tím, že místo nich vytvoří smyšlené. To ve výsledku umožňuje pracovat s daty, aniž by se ohrožovali citlivé informace.
Dalším a dnes velmi oblíbeným toolem je chatGPT. Ten se dá použít ke generování scénářů, dokumentace nebo jako pomoc při psaní test-casů. Já osobně ho používám skoro stejně jako Google. Při testování se ho ptám na to, jak můžu otestovat různé funkcionality, například jak otestovat login, a slouží mi to jako pomocník, abych při testování na nic nezapomněl.
Další užitečný nástroj se jmenuje Taskade. Tímto nástrojem se dají vytvářet mindmapy, agendy meetingu nebo třeba sprint planning. Mně osobně přijde nejvíc užitečný pro vytvoření mind mapy, která se dá použít jako mapa k testování, kde si mohu odškrtávat, co jsem otestoval a co ne. Je potřeba si pak jednotlivé pole upravit podle potřeby, každopádně to pomáhá v prioritizaci a organizaci celkového testování.
AI negeneruje jen data. Funguje také jako našeptávač při kódování nebo dokáže rovnou generovat kód.
Prvním nástrojem, co našeptává kódování, je Github Copilot. Je dostupný pro spoustu editorů – například pro Visual studio. Jeho hlavní funkcí je, že dokáže při psaní kódu generovat návrhy, což může dost urychlit psaní a lze tím předejít chybám.
Druhým toolem je Blackbox, který se také dá nainstalovat jako doplněk pro Visual studio code a funguje obdobně jako Copilot od Githubu – našeptává při psaní kódu. Výhodou Blackboxu je, že se s nástrojem můžeme radit stejně jako s Chat GPT.
Další pro nás testery užitečnou fukncí je detekce vizuálních změn. A s tím nám taky může AI pomoct.
Aplitools je skvělý pomocník pro detekci vizuálních změn, lze ho integrovat třeba do Cypressu nebo Playwrightu. Po integraci je nutné definovat, kde se mají screenshoty vytářet, a pokaždé, co se spustí test, vytvoří se nový screenshot, který se porovná s tím, co se vytvořilo při posledním spuštění testu. Výsledkem je, že se zobrazí, kde přesně nastaly změny, a tester pak rozhoduje, zda se jedná o chybu nebo ne.
Dalším nástrojem pro detekci vizuálních změn je Percy. Narozdíl od Aplitools vytváří při testování historii snímků, což umožňuje lépe sledovat, jak se obsah mění v průběhu času. Tooly nejsou moc rozdílné a je na každém, který si vybere.
Všechny zmíněné nástroje jsem testoval, že žádný z nich se neobejde bez toho, aby byly nějak ručně nastaveny a upraveny, což docela odpovídá na otázku, jestli AI nahradí testery. :)
Nahradí AI testery?
Ne, nenahradí (zatím). Na AI by se mělo pohlížet spíše jako na nástroj, který zlepšuje schopnosti (nejen) testerů, než jako na náhradu jejich role. Budoucnost ukáže další vývoj, ale jelikož vytváříme software pro lidi, lidský zásah (alespoň pro kontrolu) bude vždy potřeba. Uvedené nástroje ale vždycky můžeme využívat ve svůj prospěch.