Bachelor's Thesis

Automated Generation of Source Code of Test Scenarios

Final Thesis 2.4 MB

Author of thesis: Samuel Štefánik

Acad. year: 2025/2026

Supervisor: Ing. Michal Rozsíval

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

Abstract:

This thesis focuses on the design of a specification language for describing fault models in network communication and the implementation of a tool for automated code generation. Based on the provided fault model, the Eliot tool automatically generates a corresponding implementation in C++, intended for influencing network traffic. The generated program allows the execution of testing scenarios without the need for manual implementation of fault models. The thesis presents the design of the specification language, the implementation of the code generator, and the integration of the generated code with the NetLoiter tool. The generated code employs several optimizations, with the optimized version achieving a speedup of up to 2.68x compared to the non-optimized implementation. The functionality of the proposed solution was verified using automated tests and performance experiments.

Keywords:

Eliot, fault model, SWIFI, network communication, specification language, automated code generation, testing, NetLoiter

Date of defence

16.06.2026

Result of the defence

Defended (thesis was successfully defended)

znamkaBznamka

Grading

B

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 B

Topics for thesis defence

  1. Jak je v generátoru zajištěno, že transformace DAG modelu na konečný stavový automat zachovává sémantiku stavových uzlů?
  2. Který z implementovaných testovacích scénářů považujete za nejpřínosnější a proč?
  3. Jak jste vybíral testovací scénáře?
  4. Jak velké mohou být převáděné automaty?
  5. Kolik řádků zdrojového kódu jste napsal?

Language of thesis

Slovak

Faculty

Department

Study programme

Information Technology (BIT)

Composition of Committee

doc. Ing. Jan Kořenek, Ph.D. (předseda)
doc. Ing. Ondřej Lengál, Ph.D. (místopředseda)
Ing. Bohuslav Křena, Ph.D. (člen)
Ing. Šárka Květoňová, Ph.D. (člen)
Ing. David Bařina, Ph.D. (člen)

Supervisor’s report
Ing. Michal Rozsíval

S prací pana Štefánika jsem nadmíru spokojený. K řešení přistupoval zodpovědně, pravidelně se účastnil konzultací a byl aktivní po celou dobu zpracování práce. Přicházel s vlastními nápady a nad rámec zadání přidal několik rozšíření a optimalizací.

Evaluation criteria Verbal classification
Informace k zadání

Cílem práce bylo navrhnout a implementovat nástroj, který na základě vstupní specifikace modelu chyb vygeneruje kód v jazyce C++ a následně z něj vytvoří samostatný spustitelný program. Zadání bylo splněno.

Student se mimo jiné musel seznámit s existujícím nástrojem pro ovlivňování síťové komunikace vyvíjeným na FIT VUT, navrhnout vhodný vysokoúrovňový specifikační jazyk pro popis modelů chyb a implementovat převod ze specifikačního jazyka do jazyka C++ a následnou syntézu spustitelného programu s využitím uvedeného nástroje.

Vytvořené řešení bude využito pro rozšíření zmíněného nástroje pro ovlivňování síťové komunikace.

Práce s literaturou

Student si studijní prameny vybíral samostatně.

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

Student byl aktivní po celou dobu zpracování práce. Pravidelných konzultací se účastnil připravený a přicházel s vlastními nápady a rozšířeními.

Aktivita při dokončování

Práce byla dokončena v předstihu, měl jsem tak možnost se k ní několikrát vyjádřit.

Publikační činnost, ocenění

Student dosažené výsledky prezentoval na studentské konferenci Excel@FIT 2026.

Points proposed by supervisor: 96

Grade proposed by supervisor: A

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

Práci hodnotím jako velmi dobrou. Student splnil zadání, předvedl funkční řešení a odevzdal kvalitně zpracovaný technický i programový výstup. K výsledku mám jen dílčí výhrady k plné samostatné reprodukovatelnosti a k některým formálním detailům technické zprávy.

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

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

Zadání tématicky navazuje na předchozí aplikační výsledky vedoucího projektu a kombinuje návrh specifikačního jazyka, transformaci do C++, generování kódu a testování v síťovém prostředí. Jde o technicky mírně náročnější práci s více navazujícími vrstvami.

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

Zpráva má logickou strukturu a je dobře čitelná. Návrh i implementace jsou vysvětleny s pomocí vhodných schémat, ukázek modelů a generovaného kódu. Místy je text popisnější, než by bylo nutné (vhodnější by byla efektivní grafická podoba), ale celkově je prezentace nadprůměrná.

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

Formální úprava je na dobré úrovni. V textu se objevují jen drobné jazykové a nedostatky či překlepy, které však nesnižují srozumitelnost práce jako celku.

85
Realizační výstup

Příloha obsahuje rozsáhlé a přehledně členěné programové řešení nového nástroje Eliot včetně dokumentace, testovací infrastruktury a podpůrných backendů. Při demonstraci na studentském počítači byla funkčnost generování i následného spuštění ukázána na konkrétním příkladu. Pozitivně hodnotím také 76 automatizovaných testovacích scénářů a ukázkové vstupy i výstupy.

89
Využitelnost výsledků

Výsledek je prakticky využitelný jako generátor modelů chyb pro testování síťových aplikací. Jde o řešení, které by mělo u existujícího prototypového nástroje zvýšit použitelnost a výkonnost.

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

Evaluation level: zadání splněno

Zadání je splněno v plném rozsahu. Práce obsahuje návrh specifikačního jazyka, implementaci generátoru, vytvoření samostatně spustitelného programu i demonstrační případovou studii. Drobnou výhradu představuje to, že část integračního scénáře s NetLoiter není přímo obsažena v odevzdané příloze jako samostatně reprodukovatelný externí projekt, nicméně při demonstraci na studentském počítači byla funkcionalita úspěšně předvedena.

Rozsah technické zprávy

Evaluation level: je v obvyklém rozmezí

Technická zpráva má přiměřený rozsah a informačně pokrývá teoretické pozadí, návrh, implementaci i vyhodnocení. Kapitoly jsou obsahově vyvážené a odpovídají požadovanému rozsahu bakalářské práce.

Práce s literaturou

Student pracuje s relevantní literaturou k síťové komunikaci, fault-injection, generování kódu i k nástroji NetLoiter. Odkazy jsou v textu používány korektně a převzaté části jsou zpravidla řádně označeny.

85
Topics for thesis defence:
  1. Jak je v generátoru zajištěno, že transformace DAG modelu na konečný stavový automat zachovává sémantiku stavových uzlů?
  2. Který z implementovaných testovacích scénářů považujete za nejpřínosnější a proč?
Points proposed by reviewer: 88

Grade proposed by reviewer: B

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