Dokumentace k práci i zdrojovým kódům.
Ústav: Ústav informačních systémů (UIFS)
Akademický rok: 2020/2021
Číslo zadání: 24133
Název česky: Automatizované velkoobjemové zpracování testovacích výsledků
Název anglicky: Automatic Largescale Processing of Testing Results
Kategorie: Analýza a testování softwaru
Student: Richard Klem (xklemr00)
Vedoucí práce: Hruška Tomáš, prof. Ing., CSc.
Konzultant: Dolíhal Luděk, Ing., CODASIP
Vedoucí ústavu: Kolář Dušan, doc. Dr. Ing.
Datum zadání: 1. listopadu 2020
Datum odevzdání: 12. května 2021
Datum schválení: 24. října 2020
- Seznamte se s formáty výstupů z běžných testovacích nástrojů (JUnit, Jest, Go
testing, Pytest, apod.) a s aktuálními možnostmi jejich zpracování a
vizualizace (raw data nebo BI vizualizace). - Pro vybrané nástroje z bodu 1 prostudujte již existující aplikační řešení a
tato řešení porovnejte a vyhodnoťte jejich vlastnosti. - Na základě poznatků z bodu 2 navrhněte vlastní řešení zpracování testovacích
výsledků. - Navržené řešení implementujte za použití relační databáze a ověřte
testovacími daty. - Zhodnoťte dosažené výsledky.
Pro spuštění skriptů a testování je nutné mít nainstalovaný a plně funkční
MySQL verze 5.7.x. Řešení bylo testováno na verzi 5.7.34. Pro spuštění skriptů
je nutné pouštět skripty jako takový užovatel, který má právo na vytváření
uživatelů, přidělování práv apod. Je možné, že bude nunté použít uživatele root.
Dále je potřeba mít nainstalovaný unixový nástroj bash
a mít správně nastavné
proměnné prostředí. Spuštění v jiném programu typu Shell je pravděpodobně možné,
ale nebylo testováno. Předpokládá se, že se nacházíte v kořenovém adresáři
odevzdaného projektu.
Protože implementace řešení je v jazyce MySQL, odpovídá tomu i struktura
a formát zdrojových textů. Jedná se o sadu SQL skriptů a jednoho skriptu
v jazyce Shell. Shell skript provede jednoduché nastavení proměnných prostředí
a spustí SQL skripty ve specifickém pořadí. Výstupem tohoto procesu je pak:
- vytvoření testovácího uživatele
test_user
s heslem12test5user
, - kompletní vytvoření dvojice schémat pro původní referenční řešení i řešení nové,
- naplnění databází ukázkovými daty,
- transformace datového modelu,
- aktualizace dat po úpravě nového modelu,
- provedení indexace sloupců tabulek v obou schématech,
- vytvoření materializovaných pohledů,
- vytvoření uložených procedur pro aktualizace dat v materializovaných pohledech,
- spuštění výkonového testu a
- zobrazení statistiky výkonového testu ve schématu.
Se schématy i skripty lze dále pracovat pomocí užvatele test_user
a výše
zmíněného hesla.
Celý proces je plně zautomatizován. Jako výchozí skript slouží skript run.sh
umístěný ve složce source_codes
.
- Přesuňte se do složky
source_codes
. - Pokud nemá soubor
run.sh
správně nastavená práva pro spuštění, je potřeba
tato práva udělit, např. příkazem:chmod +x run.sh
. - V základním nastavení se databáze naplní daty o objemu jedné tisíciny
testovacího datasetu. V případě, že máte zájem naplnit data o objemu jedné
setiny, otevřete souborrun.sh
a upravte řádek 41 a 42 a zvolte požadovanou
verzi datasetu. Testovací dataset poskytnutý firmou Codasip není
z kapacitních důvodů k dispozici. - Následné spuštění výchozího skriptu provedete příkazem:
./run.sh
.
V průběhu vykonávání je uživatel informován o průbehu vytváření databázových
objektů, manipulace s daty, spouštění testování apod.
Po doběhutí všech skriptů se zobrazí výsledek statistik. Ten má však omezenou
vypovídající hodnotu, protože řešení je navrženo pro velké objemy dat a pro malé
objemy nemusí generovat prezentované výsledky. Dostupné datasety slouží spíše
k ověření funkčnosti implementace.