Git Product home page Git Product logo

ibt's Introduction

IBT

Dokumentace k práci i zdrojovým kódům.

Technická zpráva

Obecné informace

Ú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

Zadání

  1. 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).
  2. 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.
  3. Na základě poznatků z bodu 2 navrhněte vlastní řešení zpracování testovacích
    výsledků.
  4. Navržené řešení implementujte za použití relační databáze a ověřte
    testovacími daty.
  5. Zhodnoťte dosažené výsledky.

Implementace řešení - zdrojové kódy

Prerekvizity

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.

Popis skriptů a jejich výstupu

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 heslem 12test5user,
  • 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.

Spuštění

  1. Přesuňte se do složky source_codes.
  2. 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.
  3. 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 soubor run.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.
  4. Následné spuštění výchozího skriptu provedete příkazem: ./run.sh.

Výstup

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.

ibt's People

Contributors

richardklem avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.