Bachelor's Thesis

Automated Testing and Integration of Generated Types into the Voting System of Representative Bodies

Final Thesis 2.44 MB

Author of thesis: Bc. Aleš Urbánek

Acad. year: 2025/2026

Supervisor: Ing. Kristýna Zaklová

Reviewer: doc. Ing. Radek Burget, Ph.D.

Abstract:

This bachelor thesis focuses on ensuring the quality and sustainability of the client-side of a web application designed for visualizing voting data of representative bodies. The main objective is the design and implementation of systematic end-to-end (E2E) testing and the integration of automated data type generation from the OpenAPI specification into the development process. The theoretical part analyzes the domain context of local government data, the legislative framework for its publication, and the principles of automated testing for modern user interfaces. The practical part includes an analysis of the existing solution and the subsequent design of a testing architecture using the Cypress tool, focusing on critical user flows, responsiveness, and application state persistence in the URL. The implementation involves creating an integration pipeline to synchronize the frontend implementation with the backend contract using the Orval tool, eliminating the risk of data structure inconsistencies. The contribution of the proposed solution is demonstrated by evaluating a real run of the test suite, which identified specific deficiencies in navigation, filter processing, and application robustness under unexpected inputs. The result is a reliable testing layer fully integrated into continuous integration processes and facilitating further system development.

Keywords:

automated testing, E2E testing, Cypress, OpenAPI, TypeScript, web applications, representative bodies, software quality, Orval, data integration

Date of defence

15.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. 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ým způsobem jste dospěl k volbě testovacích případů, tedy jaké vlastnosti a chování pokrýt testy?
  2. Před generováním vlastního API klienta provádíte některé ad-hoc úpravy zdrojové definice OpenAPI. Co je důvodem a jaké by bylo správné systematické řešení této situace?

Language of thesis

Czech

Faculty

Department

Study programme

Information Technology (BIT)

Composition of Committee

doc. Dr. Ing. Dušan Kolář (předseda)
doc. Dr. Ing. Otto Fučík (místopředseda)
RNDr. Marek Rychlý, Ph.D. (člen)
Ing. František Grézl, Ph.D. (člen)
Ing. Tomáš Goldmann, Ph.D. (člen)

Supervisor’s report
Ing. Kristýna Zaklová

Student splnil cíle zadání a vytvořil funkční rozšíření systému zaměřené na automatizované testování a integraci generovaných typů do frontendové části aplikace. Výstupy již byly integrovány do existujícího systému a nasazeny do produkčního prostředí. Přestože student vytvořenými testy odhalil dosud neznámé nedostatky systému, v rámci práce nebyly vyřešeny. Vytvořené testy pokrývají spíše typické případy použití a mohly být komplexnější, na druhou stranu vytvářejí dobrý základ, který bude dále rozšiřován. Z pohledu integrace generovaných typů a abstraktní vrstvy pro využívání aplikačního rozhraní student odvedl dobrou práci. S ohledem na výše uvedené navrhuji hodnocení stupněm B.

Evaluation criteria Verbal classification
Informace k zadání

Zadání vzniklo jako rozšíření aplikace pro zpracování, analýzu a vizualizaci dat ze zasedání zastupitelských orgánů, která demonstruje výstupy vznikající v rámci mé disertační práce [1]. Student se seznámil s problematikou hlasování zastupitelských orgánů a daty, která jednotlivé orgány produkují. Dále se zabýval problematikou automatizovaného testování uživatelských rozhraní webových aplikací a možnostmi formální specifikace aplikačních rozhraní. V praktické části analyzoval současný stav aplikace, identifikoval nedostatky a navrhl rozšíření zaměřená na automatizované testování klientské části systému a integraci generovaných typů využívajících specifikaci OpenAPI v3. Součástí práce bylo také testování funkčnosti a použitelnosti implementovaných úprav. Kombinace obou přístupů má potenciál omezit chyby ve vizualizaci vládních dat, což je kritické pro důvěryhodnost vytvářených výstupů. Zadání hodnotím jako průměrně obtížné a považuji jej za splněné.


[1] Zaklová, K. (2025). Formal Models of Open Data. Pojednání k tématu disertační práce. Vysoké učení technické v Brně, Fakulta informačních technologií.

Práce s literaturou

Student nastudoval doporučenou literaturu a aktivně vyhledával další relevantní zdroje.

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

Konzultace se studentem probíhaly průběžně a na mé zprávy reagoval vždy obratem. Jednotlivé implementované změny byly průběžně konzultovány. Student také zapracovával náměty na nové testy od ostatních studentů pracujících na souvisejících částech systému.

Aktivita při dokončování

Technická zpráva byla dokončována těsně před termínem odevzdání. Student měl při dopisování technické zprávy obtíže zejména s obsahovou stránkou textu, zapracoval ale většinu mých námětů a připomínek. 

Publikační činnost, ocenění

Points proposed by supervisor: 84

Grade proposed by supervisor: B

Reviewer’s report
doc. Ing. Radek Burget, Ph.D.

Pan Urbánek se důkladně seznámil s problematikou testování a souvisejícími postupy a nástroji, analyzoval existující aplikaci a navrhl a implementoval technické řešení, které významně zvyšuje kvalitu její implementace a potenciálně i spolehlivost. K technické zprávě mám mnohé, výše uvedené výhrady, celkově však hodnotím práci jako nadprůměrnou a navrhuji hodnotit stupněm B.

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

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

Zadání je zaměřeno na refaktorizaci klientské části existující aplikace a specifikuje dva dílčí cíle: Převod na jednotného API klienta generovaného z formální specifikace a zavedení testů uživatelského rozhraní. Jedná se o celkem běžné činnosti, které jsou pracné a náročné na pečlivost, nicméně po technické stránce vyřešené a zadání proto považuji za průměrně obtížné.

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

Technická zpráva pokrývá jak analýzu výchozího stavu refaktorované aplikace a relevantních technologií a nástrojů, tak i vlastní technické řešení. Tyto části jsou však poněkud nevyvážené: Zatímco část věnovaná analýze je pojata dlouze, nepříliš strukturovaně a místy až rozvláčně (např. výběr vhodného nástroje pro generování API klienta je rozprostřen hned do několika kapitol a mnoha stran textu), vlastní řešení je dokumentováno spíše ve formě ukázek kódu. V obou případech bych uvítal poněkud systematičtější přístup. Na druhou stranu ale oceňuji důkladně zpracovanou problematiku testování webových aplikací, která je klíčová a kde se autor opírá o aktuální publikované teoretické poznatky.

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

Po jazykové i typografické stránce je práce na velmi dobré úrovni. Výhradu mám ke schématům, které používají stále stejnou grafickou notaci (např. Obr. 4.1, Obr. 5.2), přičemž ale význam jednotlivých symbolů je nejasný a zřejmě i proměnlivý (např. obdélník reprezentuje někdy blok systému, někdy data, někdy zřejmě krok řešení).

78
Realizační výstup

Výstupem práce je refaktorovaná aplikace, kde generování API klienta i testování různých aspektů klientské aplikace jsou zahrnuty přímo do automatizovaného řetězce nasazení (CI/CD). Celá testovací infrastruktura je plně funkční a dobře použitelná. Rozsah vytvořených testů je značný a student zde odvedl velký kus práce. Výhradu mám k tomu, kód testů není téměř vůbec komentovaný, což negativně ovlivňuje jejich dlouhodobou udržovatelnost. Některé testy "dopočítaných hodnot" mají spíše charakter jednotkových testů a bylo by patrně vhodnější je testovat jiným způsobem, než přes uživatelské rozhraní.

85
Využitelnost výsledků

Výsledné řešení výrazně zvyšuje kvalitu implementace předmětné aplikace a jistě usnadní její další vývoj.

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

Evaluation level: zadání splněno

Zadání považuji za splněné ve všech bodech.

Rozsah technické zprávy

Evaluation level: je v obvyklém rozmezí

Technická zpráva je svým rozsahem v rozmezí obvyklém pro bakalářskou práci. Kapitolu 2 nepovažuji za relevantní k tématu práce, nemá vliv na výsledné řešení, nicméně byla požadována v zadání. Některé další části pak považuji za informačně poněkud řídké, jak uvádím níže.

Práce s literaturou

Seznam použité literatury je rozsáhlý a kromě zdrojů legislativních, které nemají na řešení vliv, pokrývá velmi dobře problematiku testování obecně i související konkrétní nástroje a řešení. Zdroje jsou v práci řádně citovány.

92
Topics for thesis defence:
  1. Jakým způsobem jste dospěl k volbě testovacích případů, tedy jaké vlastnosti a chování pokrýt testy?
  2. Před generováním vlastního API klienta provádíte některé ad-hoc úpravy zdrojové definice OpenAPI. Co je důvodem a jaké by bylo správné systematické řešení této situace?
Points proposed by reviewer: 80

Grade proposed by reviewer: B

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