Bachelor's Thesis

API Testing on Smart City Platform

Final Thesis 2.25 MB

Author of thesis: Bc. Martin Kovalski

Acad. year: 2022/2023

Supervisor: Ing. Jiří Hynek, Ph.D.

Reviewer: Ing. Petr John

Abstract:

The IoT environment involves a large number of sensors that produce vast amounts of data. This data needs to be processed and displayed to users. Various clients (web or mobile applications) are created for this purpose. In order to get the data to these clients, application interfaces are needed. The aim of this work is to test an existing REST-like application interface that allows data transfer from the cloud to client applications and to provide endpoint developers of this API with a tool that will allow them to test emerging endpoints in the future. To this end, an application has been created to facilitate the management and creation of tests. These tests are then run using the Codeception testing framework. The resulting application allows you to test a REST API that has an OpenAPI specification created and that uses a PostgreSQL database to run.

Keywords:

testing, application interface, REST, smart cities, Internet of Things, Nette, PostgreSQL, API, Codeception, OpenAPI specification, endpoints, tests

Date of defence

14.06.2023

Result of the defence

Defended (thesis was successfully defended)

znamkaAznamka

Grading

A

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 A.

Topics for thesis defence

  1. Jaké výhody má Vaše řešení oproti řešením založených přímo na node.js (například s použitím nástroje supertest)?

Language of thesis

Czech

Faculty

Department

Study programme

Information Technology (BIT)

Composition of Committee

doc. Dr. Ing. Dušan Kolář (předseda)
doc. Ing. Peter Chudý, Ph.D., MBA (člen)
RNDr. Marek Rychlý, Ph.D. (člen)
Ing. Vojtěch Mrázek, Ph.D. (člen)
Ing. Ondřej Lengál, Ph.D. (člen)

Supervisor’s report
Ing. Jiří Hynek, Ph.D.

Student ke své práci přistupoval svědomitě, dokázal pracovat samostatně a vytvořil použitelné řešení, díky kterému přispěl k zvýšení robustnosti API v systému firmy Logimic. Navrhuji hodnocení stupněm A.

Evaluation criteria Verbal classification
Informace k zadání

Zadání vzniklo ve spolupráci s firmou Logimic. Cílem bylo implementovat testovací prostředí pro aplikační rozhraní mezi klientskou a serverovou částí platformy firmy Logimic. Mimo jiné bylo úkolem analyzovat současné koncové body rozhraní a navrhnout vhodnou sadu testů. Student prostudoval dostupná řešení (rámec Codeception) pro automatizované testování rozhraní na základě specifikace OpenAPI a tvorbu webového prostředí pro spouštění testů (PHP/Nette/PostreSQL).  Zadání hodnotím jako průměrně obtížné. Bylo splněno ve všech jeho bodech.

Práce s literaturou

Student prostudoval doporučenou literaturu a aktivně si vyhledával další zdroje týkající se zejména oblasti automatizovaného testování a  použitých technologií.

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

Student komunikoval během celého akademického roku. Konzultace probíhaly online s vedoucím práce a Ing. Františkem Mikulů z firmy Logimic. Student řádně plnil zadané úkoly, nicméně v některých případech práce postupovala pomaleji.

Aktivita při dokončování

Praktická část práce byla dokončena včas a mohla být demonstrována ve firmě Logimic. Poslední kapitoly technické zprávy byly dokončovány na poslední chvíli, nicméně byly konzultovány.

Publikační činnost, ocenění

Výsledky budou využity v rámci vývojových nástrojů firmy Logimic.

Points proposed by supervisor: 90
Display more

Grade proposed by supervisor: A

Reviewer’s report
Ing. Petr John

Pan Kovalski podrobně nastudoval problematiku od chytrých měst a chytrých zařízení přes různé typy aplikačních rozhraní až po jejich testování a implementoval řešení schopné testovat REST aplikační rozhraní popsané pomocí OpenAPI v3. Navrhuji hodnocení stupněm A.

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

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

Cílem práce vytvořit nástroj pro testování aplikačního rozhraní konkrétní platformy. Pro tento účel musel student nastudovat řadu témat, jako je například internet věcí, chytrých měst nebo problematiku automatizovaného testování aplikačních rozhraní. Také bylo potřeba se zorientovat v existujícím systému firmy Logimic. Zadání odpovídá náročnosti pro bakalářskou práci.

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

Evaluation level: zadání splněno

Zadání bylo splněno ve všech ohledech.

Rozsah technické zprávy

Evaluation level: je v obvyklém rozmezí

Technická zpráva je v obvyklém rozmezí pro bakalářskou práci.

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

Prezentační úroveň technické zprávy je na dobré úrovni, student nejdříve představuje problematiku internetu věcí a chytrých měst, používanou architekturu a popisuje data, která se v IoT a chytrých městech vyskytují a časté problémy existujících řešení. Dále popisuje přístupy jak k obecnému testování, tak testování zaměřené na aplikační rozhraní a popisuje různé typy aplikačních rozhraní, popisuje specifikaci OpenAPI v3 a nástroje, které je možné použít k automatickému testování rozhraní typu REST. Nakonec popisuje návrh, vlastní implementaci, testování a doporučení na úpravu testovaného API. Všechny části jsou jasně strukturované a srozumitelné, návaznost kapitol je také v pořádku.

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

Typografická i jazyková stránka práce je velmi dobrá.

90
Práce s literaturou

Seznam použité literatury je rozsáhlý, student cituje celkem 56 zdrojů, vhodně kombinuje online zdroje s knihami a tištěnými zdroji. Zdroje jsou relevantní a pokrývají řešenou problematiku.

90
Realizační výstup

Realizační výstup působí dobrým dojmem, celkově se jedná o jednu aplikaci, kterou je možné ovládat buď pomocí příkazové řádky, nebo pomocí webového rozhraní. Aplikace je zaměřena na testování API pomocí OpenAPI v3 specifikace. Řešení je technicky pěkné a využívá moderní technologie. Pro zjednodušení nasazení aplikace je řešení rozšířeno o podporu virtualizačního nástroje docker. Přínosnou možností je i využití nástroje z příkazové řádky. Webová aplikace obsahuje menší problémy - pole pro výběr souboru nezobrazují cestu ke zvolenému souboru, testové sady není možné přejmenovat.

90
Využitelnost výsledků

Technická zpráva zmiňuje nasazení pro testování reálné aplikace, které ještě nebylo provedeno.

Topics for thesis defence:
  1. Jaké výhody má Vaše řešení oproti řešením založených přímo na node.js (například s použitím nástroje supertest)?
Points proposed by reviewer: 90
Display more

Grade proposed by reviewer: A