Bachelor's Thesis

Generování strukturovaných testovacích dat pomocí LLM

Final Thesis 1.9 MB

Author of thesis: Jakub Komanický

Acad. year: 2025/2026

Supervisor: Ing. Aleš Smrčka, Ph.D.

Reviewer: Dr. Ing. Petr Peringer

Abstract:

This bachelor's thesis aims to develop a tool capable of expanding existing JSON test suites by automatically generating both valid and invalid test examples. The generation process employs a combined approach: while Large Language Models are utilized to synthesize complex data values, other test inputs are generated based on the observed values in the provided examples. This process is guided by a combinatorial criterion that controls the specific content and coverage of each test. The resulting tool outputs the expanded test suites as fully structured JSON files. The tool supports integration with both self-hosted models and commercial APIs from major providers.

Keywords:

automatic test data generator, data-based testing, JSON, testing, test data, test input, data generation, data synthesis, LLM, large language models, structured data, combinatorial testing, t-wise

Date of defence

18.06.2026

Result of the defence

Defended (thesis was successfully defended)

znamkaDznamka

Grading

D

Process of defence

Student nejprve prezentoval výsledky, kterých dosáhl v rámci své práce. Komise se poté seznámila s hodnocením vedoucího a posudkem oponenta práce. Student následně odpověděl na otázky oponenta a na další otázky přítomných. Komise se na základě posudku oponenta, hodnocení vedoucího, přednesené prezentace a odpovědí studenta na položené otázky rozhodla práci hodnotit stupněm D.

Topics for thesis defence

  1. Kolik řádků kódu v Pythonu jste napsal a kolik jste nechal vygenerovat (a kterým LLM)?
  2. Kolik řádků kódu má váš projekt celkově?
  3. Kolik práce vám dalo vytvorení promptu?
  4. Jaký má váš prompt přibližně rozsah?

Language of thesis

English

Faculty

Department

Study programme

Information Technology (BIT)

Composition of Committee

prof. Dr. Ing. Jan Černocký (předseda)
doc. Ing. Zdeněk Vašíček, Ph.D. (místopředseda)
Ing. Jiří Hynek, Ph.D. (člen)
RNDr. Marek Rychlý, Ph.D. (člen)
Ing. Vojtěch Havlena, Ph.D. (člen)

Supervisor’s report
Ing. Aleš Smrčka, Ph.D.

Student sice pracoval samostatně, ale zadání práce, které bylo velmi obecné kvůli manévrovacímu prostoru při řešení a možné integraci s existujícím nástrojem, uchopil jinak, než byla moje původní představa.

Evaluation criteria Verbal classification
Informace k zadání

Cílem bakalářské práce bylo navázat na výzkum v oblasti automatické tvorby testovacích dat, konkrétně na možnosti systematického generování stromově strukturovaných dat. Zadání není obtížné. Bohužel absence pravidelných konzultací vedla k realizačnímu výsledku, který není integrovatelný s již existujícím řešením pro syntézu testovacích dat vyvíjeným na FIT VUT.

Práce s literaturou

Student si studijní prameny vybíral sám.

Aktivita během řešení, konzultace, komunikace

Během zimního semestru byla aktivita téměř nulová. V letním semestru se student začal ozývat ke konci dubna.

Aktivita při dokončování

První verze technické zprávy byla připravena asi týden před odevzdáním. Měl jsem možnost poskytnout zpětnou vazbu k hlavním částem dokumentu.

Publikační činnost, ocenění
Points proposed by supervisor: 59

Grade proposed by supervisor: E

Reviewer’s report
Dr. Ing. Petr Peringer

Tato práce umožňuje generovat JSON data pro testování systémů s využitím obecných LLM. Student vytvořil systém pro generování testů v jazyku Python s využitím lokálního případně externího LLM. Z textu práce ani z kódu nelze přesně rozhodnout, kolik kódu bylo vygenerováno LLM, nicméně je zřejmé, že student odvedl dost práce na implementaci a také na experimentech při testování.  Vzhledem ke kvalitě textu práce a dosaženým výsledkům navrhuji hodnocení stupněm C.

Evaluation criteria Verbal classification Points
Náročnost zadání

Evaluation level: průměrně obtížné zadání

Toto zadání je značně experimentální a je zaměřeno na využití obecných LLM modelů pro generování testovacích JSON dat na základě sady vzorových JSON dat. Vzhledem k rozsáhlé podpoře využívání LLM v různých volně dostupných prostředích (např. ollama) považuji zadání za průměrně obtížné.

Prezentační úroveň technické zprávy

Struktura textu je vyhovující, kapitoly na sebe logicky navazují, ale chybí mi kapitola s přehledem existujících podobných systémů (a jejich porovnání s vytvořeným systémem v kapitole 5). Kapitola 1 by neměla obsahovat hodnocení přínosů práce - to patří do závěru. 

70
Formální úprava technické zprávy

Typograficky je práce na velmi dobré úrovni, až na menší chyby (např. na str. 44, 59). Z jazykového hlediska je anglický text vyhovující (až na to, že zadání je česky a chybí rozšířený abstrakt).

80
Realizační výstup

Implementace projektu zahrnuje asi 7000 řádků v Pythonu. Zajímavé je, že jméno autora je jen na jediném místě - v souboru 'pyproject.toml'. Nikde ve zdrojových kódech není ani informace, že by byly generovány nějakým LLM systémem. Nelze tedy jednoznačně vyhodnotit vlastní přínos autora.

75
Využitelnost výsledků

Práce sice nepřináší nové poznatky, ale jde o užitečnou prakticky použitelnou aplikaci LLM pro generování JSON testovacích dat.

Rozsah splnění požadavků zadání

Evaluation level: zadání splněno

Rozsah technické zprávy

Evaluation level: je v obvyklém rozmezí

Text má rozsah přes 60 stran + přílohy.

Práce s literaturou

Seznam literatury je nadprůměrně rozsáhlý (45 položek). Postrádám v něm například odkaz na projekt Ollama, který autor používá. Použití citací je někdy přehnané - viz např. šestkrát odkaz [19] na straně 6. Na straně 9 jsou podivné citace za větou.

75
Topics for thesis defence:
  1. Kolik řádků kódu v Pythonu jste napsal a kolik jste nechal vygenerovat (a kterým LLM)?
Points proposed by reviewer: 75

Grade proposed by reviewer: C

Responsibility: Mgr. et Mgr. Hana Odstrčilová