Efektivita využití AI v testování softwaru
24.11.2023
Efektivita využití AI v testování softwaru

​Doba, kdy bylo softwarové testování plně závislé na manuální práci testerů, kteří museli prověřovat jednotlivé části kódu a ručně hledat chyby, je pravděpodobně minulostí. Tato metoda byla nejen časově náročná, ale především vysoce závislá na lidském faktoru. V současnosti jsme ve světě testování softwaru svědky evolučního procesu; přechodu od zažitých metod automatizace k sofistikovaným technikám založeným na umělé inteligenci.

Umělá inteligence (AI) umožňuje testerům analyzovat rozsáhlé datové sady, predikovat chování systému a odhalovat potenciální problémy, které by mohly lidskému oku uniknout. AI se ve stále větší míře podílí na zdokonalování přípravné fáze testování. Pomáhá při psaní testovací strategie, testovacího plánu a také s konkrétními testovacími scénáři v programovacím jazyce dle vlastní volby.

K významnému nárůstu kvality testování došlo již s příchodem automatizovaného testování. Automatizované skripty dnes běžně provádějí opakující se úkoly bez potřeby lidské intervence, což vede ke zvýšení efektivity a objemu zvládnuté práce.

Aktuálně je jedním z nejběžnějších pomocníků využívaných při testování ChatGPT. ChatGPT-4 (Generative Pretrained Transformer) byl vyvinut společností OpenAI, organizací honosící se posláním vývoje umělé inteligence pro dobro lidstva. Přičemž jen společnost Microsoft investovala do projektu více než miliardu dolarů, další využití v prohlížeči AI BingChatGPT je již také dostupné na trhu.

Model GPT-4 byl trénován na obrovském množství dat dostupných na internetu. V této chvíli však pracuje model pouze s daty platnými do září roku 2021, stejně jako tomu bylo u jeho předchůdce. Jak již bylo řečeno, dokáže Chat GPT zlepšit kvalitu přípravné a realizační fáze testování. Funguje jako zkušený kolega, který je kdykoliv k dispozici k diskusi nad tématy a rutinními úkoly, se kterými potřebujete pomoci. Ve své práci je pak podstatně rychlejší než člověk. ChatGPT komunikuje primárně v angličtině. Češtině bez problému rozumí, ale jeho odpovědi v tomto jazyce jsou prozatím omezené a nevyužívají plného potenciálu modelu.

Empirický výzkum potvrdil rychlejší a kvalitnější vyřešení úkolu s pomocí AI

Z publikované empirické studie​ Massachusetts Institute of Technology autorů W. Noye a W. Zhanga je zřejmé, že pozitivní přínos ChatGPT je experimentálně měřitelný a prakticky využitelný. Jak dále uvádí Noy a Zhang, produktivita práce jednoho člověka během jednoho pracovního dne je složena ze složky rychlosti zpracování konkrétního úkolu a složky kvality poskytnutého výstupu. Realizovaného výzkumu se zúčastnilo 444 zaměstnanců, zejména zkušených analytiků dat. Každý z účastníků měl za úkol zpracovat dvě zadání oblasti, na kterou se specializují. Výstupem měl vždy být dokument typu krátký report, analýza nebo budoucí strategie v rámci dané oblasti.

První ze dvou zadaných úkolů vyřešili účastníci tradičním způsobem, bez pomoci umělé inteligence. Při řešení druhého úkolu byli náhodně rozlosováni do dvou skupin. První polovina zaměstnanců, experimentální skupina, měla tento druhý úkol vyřešit s pomocí ChatGPT. Druhá, kontrolní skupina, si měla vystačit s tradičními metodami bez pomoci AI. Zhruba 30 % účastníků pracující s ChatGPT neměla dříve s AI žádnou zkušenost. Vzniklé dokumenty z druhého experimentu byly hodnoceny expertním týmem specialistů schopných kvalitu výstupů odborně posoudit. Hodnocení se pohybovalo na škále 1–7, kdy 1 byla nejnižší a 7 nejvyšší možná známka. Výstup, tedy vypracovaný dokument, byl vždy hodnocen třemi nezávislými hodnotiteli. Hodnotitelům nebylo sděleno, zda byl výstup vypracován s pomocí umělé inteligence, či nikoli.

Výsledek výzkumu překvapil, s pomocí AI došlo k nárůstu objemu zvládnuté práce o 60 %

Fenomén kognitivní psychologie, známý jako kompromis mezi rych­los­tí a přesností, se v tomto výzkumu nepotvrdil. Došlo jak k rychlejší­mu vyřešení úkolů, tak k dosažení lepší kvality dodaných výsledků. V prvním experimentu tvorby dokumentu bez pomoci AI došlo k zhruba shodnému výsledku měřené kvality v obou sledovaných skupinách. Obě skupiny byly kontrolním srovnáním stejně výkonné jak v měřeném čase, tak v dosažené kvalitě výstupů.

V druhém kole experimentu trvalo zpracování úlohy s pomocí ChatGPT v průměru 17 minut. Kdežto průměr zpracování úkolu bez pomoci umělé inteligence trval 27 minut. V laboratorních podmínkách by tedy jeden pracovník během 8hodinové pracovní doby (480 minut) vytvořil 480/27 = 17,7 ucelených výstupů. Specialista s pomocí ChatGPT by pak vytvořil 480/17 = 28,3 hotových výstupů. To znamená navýšení produktivity práce o téměř 60 %! (28,3–17,7)/17,7 = 0,598. Tento rozdíl odpovídá 0,83 standardní odchylky, což je v experimentech hodnoceno jako rozdíl velký.


Kvantita jako taková by nás dostatečně neuspokojila, pokud by jí bylo dosaženo na úkor kvality. V tomto případě, a na základě nezávislého hodnocení tří odborníků na dané zpracované téma, tomu tak ale rozhodně není. Rozdané známky hodnotitelů na škále 1–7 dosáhly průměrného hodnocení 4,5 s pomocí AI a 3,8 bez pomoci AI. Jak již bylo zmíněno, hodnotitelé nevěděli, zda byl výstup zpracován s, nebo bez pomoci ChatGPT. Standardní odchylka posunu kvality výstupu nabyla hodnoty 0,45. Tato hodnota je přesně na hranici malé až střední změny ve sledovaných parametrech výzkumu.

Největšího efektu dosáhla umělá inteligence v rychlosti zpracovávaných úkolů. Došlo ale také k mírnému až střednímu posunu v kvalitě dodaných výstupů. Vzhledem k nízké čí žádné předchozí zkušenosti s ChatGPT lze časem díky postupnému nabývání zkušeností s nástroji AI očekávat ještě vyšší rychlost a kvalitu při dosahování plnění zadaných úkolů. Zajímavé by bylo zopakovat celý experiment se vzorkem uchazečů, kteří mají předchozí zkušenost s využitím ChatGPT řekněme 75 %. Postupně se očekává nárůst zkušeností práce s nástroji umělé inteligence. Výsledky experimentální skupiny s vyšší zkušeností využití nástroje by pravděpodobně vedly k ještě výraznějším rozdílům ve výkonu mezi kontrolní a experimentální skupinou.

Reálný příklad z praxe psaní regresních testů

Psaní základního regresního scénáře zabere zkušenému testerovi zhruba 30 minut. S pomocí ChatGPT zvládne tester regresní scénář napsat a vyladit za polovinu času. Hlavní přidaná hodnota spočívá v domyšlení všech pozitivních i negativních cest, které mohu po zadání analýzy požadavků nastat. Jednoduše řečeno, tester přenese rutinní úkoly na stroj a uvolní si kreativní část mozku k řešení komplexnějších úkolů a dohledu nad celkovým výstupem přípravy testování. V kombinatorice je ChatGPT dobře vytrénován a jeho výstupy pomohou eliminovat riziko zanesení chyb. Stejně tak pomůže s určením vah důležitosti a priorit jednotlivých scénářů při udržení komplexit a integrity celku. Zejména při velkém počtu testovacích scénářů v řádech tisíců je zachování nezávislého arbitra při výběru kritických cest nutných k otestování zcela klíčové.


Detailní analýzy přečte chat GPT za vás a extrahuje ty nejdůležitější myšlenky

Reálně dokáže ChatGPT efektivně navrhnout také komplexní testovací strategii, konkrétní testovací plán, plán regresních testů či přímo vygenerovat hotové skripty pro automatizaci v Pythonu, Playwrightu či CyPressu. Navržené testovací skripty jsou po doplnění konkrétních přístupových cest a autorizaci plně funkční.

Obrovská přidaná hodnota umělé inteligence tkví v možnosti navázat na předchozí konverzaci a vhodnými dotazy dosáhnout ideálního řešení. AI dokáže dále nalézt limity a podmínky daného řešení, nalézt chybu v kódu nebo nabídnout různé varianty řešení problémů do přehledné tabulky, včetně poměrného zastoupení daného řešení ve světě.

Umělá inteligence je dobrý sluha, ale zlý pán

ChatGPT ukládá veškerá poskytnutá data a kombinací vhodných otázek je může v dobré víře poskytnout dalším uživatelům. Je proto nezbytné citlivé firemní údaje chránit a vůbec je ke zpracování AI neposkytnout. Moderní software využívající ChatGPT API dokáže ta­ko­vá­to škodlivá data ​identifikovat již na vstupu a včas je eliminovat. Posunuje tak hranici bezpečnosti práce s umělou inteligencí na vyšší – akceptovatelnou míru rizika. V ideálním případě je vhodné komuni­ka­ci a poskytnutá data umělé inteligenci ukládat k podrobnější ana­lý­ze. Výstupy z ChatGPT je vhodné ukládat také a sledovat vývoj poskytovaných výstupů v čase na úrovni jednotlivých uživatelů.​


David Víteček

Zdroj: SystemOnLine 11/2023​​