Bachelor's Thesis

Device and file test double

Final Thesis 999.92 kB

Author of thesis: Bc. Daniel Záležák

Acad. year: 2024/2025

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

Reviewer: Dr. Ing. Petr Peringer

Abstract:

This work addresses the issue of software testing. In some cases, it is not possible to create a~suitable environment for testing the given software. The goal of this work is to create a test double that can simulate an appropriate environment. The main focus of this test double is working with special and common files. The chosen problem is solved by creating a custom shared library and the LD_PRELOAD mechanism, which allows overriding GNU~C library calls on GNU/Linux systems. The test double is designed for testing the diagnostic software sos from Red Hat, but it can also be used for testing other applications.

Keywords:

Test double, LD_PRELOAD, shared library, software testing, special files

Date of defence

18.06.2025

Result of the defence

Defended (thesis was successfully defended)

znamkaDznamka

Grading

D

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

Topics for thesis defence

  1. Lze vaší metodou testovat SUID programy?
  2. Jak byste řešil přemapování více souborů?
  3. Nebylo by lepší pro přemapování použít nějaký konfigurační soubor?

Language of thesis

Slovak

Faculty

Department

Study programme

Information Technology (BIT)

Composition of Committee

doc. Ing. František Zbořil, CSc. (předseda)
Ing. Aleš Smrčka, Ph.D. (člen)
Ing. Jan Pluskal, Ph.D. (člen)
doc. Ing. Michal Španěl, Ph.D. (člen)
Ing. Josef Strnadel, Ph.D. (člen)

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

Daniel Záležák splnil všechna očekávání, řešil a konzultoval průběžně a dosáhl použitelného výsledku.

Evaluation criteria Verbal classification
Informace k zadání

Zadání bakalářské práce vzniklo na základě požadavků firmy Red Hat Czech za účelem zjednodušení testování diagnostického softwaru sos. Cíl se podařilo splnit, přičemž nástroj implementovaný v rámci bakalářské práce je použitelný nad rámec požadavků firmy Red Hat.

Práce s literaturou

Studentovi byla doporučena literatura a dokumentace k použité technologii. Další literární prameny si vybral sám.

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

Student konzultoval průběžně, dodržoval dohodnuté termíny a úkoly a řídil se dle daných rad. V průběhu řešení nebylo potřeba zasahovat.

Aktivita při dokončování

Programová část byla dokončena v dostatečném předstihu, technická zpráva by si však zasloužila více času. Měl jsem však možnost ovlivnit její finální podobu a student zapracoval mé hlavní připomínky.

Publikační činnost, ocenění
Points proposed by supervisor: 79

Grade proposed by supervisor: C

Reviewer’s report
Dr. Ing. Petr Peringer

Student vytvořil malou sdílenou knihovnu pro zachycení některých systémových volání v knihovně glibc a několik základních testovacích příkladů. Výsledek je funkční, ale obsahuje řadu programátorských chyb. Zpracování textu práce je také podprůměrné. Proto navrhuji celkové hodnocení stupněm D.

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

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

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

Struktura a rozsah textu jsou vyhovující. Seznamy obrázků a tabulek na str. 2 a 3 jsou zbytečné. V obr 2.6 na str. 14 chybí vrstva knihoven. Vysvětlení některých pojmů je nepřesné (např. str. 15 nahoře: má být SW přerušení) nebo zcela chybné (str. 18 - pevné odkazy nevytváří kopii původního souboru).  Na obr 3.3 (a dalších) je chybně přehozen popis u vstupních a výstupních hran bloku PLT. Zvolená "testovací" metoda pro analýzu v kapitole 4.1. není nejlepší -- statická analýza zdrojových textů nebo analýza obsahu PLT tabulek by byla úplnější. Použití 2 proměnných prostředí nepovažuji za vhodné.

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

Typografie je na dobré úrovni s několika výhradami: autor systematicky používá zcela nevhodné tučné zvýrazňování textu, některé obrázky jsou příliš velké (viz str. 11 a 14). V textu jsou také nevhodné jednořádkové odstavce (např. str 14 dole). Tabulka 4.1 na str. 30 nedává smysl. Jazykovou stránku slovenského textu nehodnotím.

75
Realizační výstup

Zdrojové kódy mají přes 700 řádků, což není mnoho. Kód knihovny je dobře komentovaný ale nemá odpovídající kvalitu -- autor používá strdup() ale neuvolňuje takto dynamicky alokovanou paměť (chyba typu memory leak při každém volání funkce). Navíc je stejný kód pro zpracování proměnných prostředí zcela zbytečně duplikován v každé funkci.

55
Využitelnost výsledků

Výsledek této práce by se po opravě chyb a doplnění dalších potřebných funkcí mohl uplatnit v praxi.

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

Evaluation level: zadání splněno

Rozsah technické zprávy

Evaluation level: je v obvyklém rozmezí

Text práce má cca 40 vysazených stran, což je vyhovující.

Práce s literaturou

V textu jsou zcela nesmyslně umístěné citace (za odstavcem), navíc autor cituje stejnou literaturu zbytečně často (viz např. str 7). V seznamu literatury je několik zbytečných položek: [27] a [28] je stejná kniha, minimálně 4 položky ohledně typů souborů v UNIXu je možné zredukovat na jednu, atd.

65
Topics for thesis defence:
  1. Lze vaší metodou testovat SUID programy?
  2. Jak byste řešil přemapování více souborů?
Points proposed by reviewer: 65

Grade proposed by reviewer: D

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