Jak využít ChatGPT pro automatizaci a testování?

V dnešním rychlém světě, který se řídí technologiemi, je Quality assurance (QA) důležitou součástí vývoje softwaru, jehož cílem je, aby softwarové produkty splňovaly požadavky uživatelů, neobsahovaly chyby a fungovaly tak, jak mají. 

Jednou z nových technologií, která může být přínosem pro testování, je i ChatGPT - jazykový model vyvinutý společností OpenAI, který už několik měsíců testujeme i v našem QA týmu, a hledáme cesty, jakým způsobem může být tento nástroj pro nás i klienty přínosný.  

ChatGPT sice generuje pouze text, to nám ale nebrání využít jeho možností a promítnout jeho benefity do kvality testování.  

Jak může testerům ChatGPT pomoci?  

1. Zjednodušuje generování testovacích dat:  

ChatGPT může automaticky generovat různé testovací scénáře a vstupy na základě pokynů od testera. To umožňuje rychle vytvořit rozsáhlé sady testů, což vede k lepšímu pokrytí a rychlejšímu testování. 

2. Validace testovacích plánů: 

Můžete použít ChatGPT k validaci testovacího plánu. ChatGPT může prověřit váš plán a navrhnout další testovací scénáře, pokud zjistí mezery. 

3. Automatizace s Cypress: 

Pokud používáte Cypress pro automatizaci testů, může ChatGPT pomoci generovat složité selectory, struktury page object, a dokonce i návrhy na opravy, pokud narazíte na chyby. Můžete mu také poskytnout část kódu, kterou potřebujete opravit, a ChatGPT vám navrhne zlepšení a přesné umístění změn.

4. Troubleshooting a rychlý návrat na běžný provoz: 

Pokud narazíte na chybu během testování, ChatGPT vám může pomoci rychle generovat scénáře pro reprodukci této chyby, což usnadní vývojářům její opravu. 

5. Redukce manuálních úkolů: 

ChatGPT může být využit ke generování dokumentace, testovacích scénářů a návrhů testovacích strategií, což snižuje potřebu manuální práce a zvyšuje produktivitu týmu. 


Pojďme na to konkrétně aneb dva příklady z praxe

1) Potřebujeme otestovat datepicker na klientské stránce. Úkol pro ChatGPT by mohl znít takto:  

“You are a QA and you have to test datepicker. Can you create test cases for this datepicker?”

ChatGPT vytvoří Test Cases

Testeři si tak mohou ověřit, zda pokrývají skutečně vše. Test cases pro datepicker by tak mohl vypadat takto (samozřejmě se jedná jen o část scénářů) :  

1. Date Selection: 

  • Test that you can select a date by clicking on a specific day in the datepicker. 

  • Test that you can select a date by typing it into an input field and pressing Enter. 

  • Test that you can select today’s date using a “Today” button (if available). 

  • Test that you can select a date from the previous month. 

  • Test that you can select a date from the next month. 

  • Test that you can select a date that is disabled (e.g., past dates in a flight booking application). 

  • Test that you can select a date that is outside the date range allowed (if there are date restrictions). 

Tímto způsobem je možno specifikovat jakoukoli aplikaci. Čím konkrétnější je zadání, tím lepší scénáře ChatGPT generuje.   


2) Automatizace v Cypress - testování webu Linky bezpečí www.linkabezpeci.cz  

Linka bezpečí patří k našim “pro bono” klientům, což znamená, že od nás získávají zdarma naše IT služby a expertízu při správě provozu jejich webových portálů a to zahrnuje i průběžné testování nasazovaných nových funkcionalit. 

Pro testování webovách portálů Linky bezpečí používáme Cypress a i zde nám může být ChatGPT užitečný. Tím, že ChatGPT má přístup k jakémukoliv textovému dokumentu, je schopný dle syntaxu vytvořit selectory, které pro svůj automat testeři potřebují.    

Např. pokud nefunguje selector, který si tester vytvořil, stačí otevřít devTools, zkopírovat si část, kterou je třeba přidat jako selector a ChatGPT jej vytvoří. Výhodou je, že i při tvoření selectorů, ChatGPT vysvětlí, proč ho napsal tímto stylem, takže juniorní automatizér se takhle i zároveň vzdělává.  

ChatGPT je také rovnou schopen navrhnout, jak opravit error, pokud dostane snippet kódu.  

Zároveň poradí, kam přesně do struktury dokumentu jej vložit a vytvoří i celý příkaz.  

Závěr

Využití ChatGPT může být revolučním způsobem, jak zautomatizovat testování a zlepšit kvalitu softwarových výstupů. Rozhodně však nenahradí práci testerů ani jejich expertní znalosti. Je zajímavým nástrojem, který umí pomoci při komplikacích či verifikacích procesů, ale pouze ve správné kombinaci s dalšími nástroji a metodikami QA a především zkušenostmi testerů.  

 A především - vše je o správném a kvalitním dotazování!