VRÁBLIK, M. Reimplementace nástroje Combine [online]. Brno: Vysoké učení technické v Brně. Fakulta informačních technologií. 2024.

Posudky

Posudek vedoucího

Smrčka, Aleš

Student nastudoval současnou problematiku a implementaci prototypového nástroje. Software se mu podařilo zefektivnit a je možné na nový nástroj navázat dalšími projekty.

Dílčí hodnocení
Kritérium Známka Body Slovní hodnocení
Informace k zadání Cílem práce bylo reimplementovat nástroj Combine s cílem zefektivnění jeho výpočtu. Původní prototypová implementace je v jazyce Python, reimplemtace v C++. Cíl se podařilo splnit, nový nástroj provádí výpočet efektivněji. Zdrojové kódy by si však zasloužily lepší úpravu a dokumentaci.
Práce s literaturou Hlavní studijní prameny byly studentovi doporučeny - odborné články zabývající se kombinatorickým testováním a algoritmem IPOG a předchozí dvě absolventské práce zabývající se nástrojem Combine. Další literaturu si student vybíral sám.
Aktivita během řešení, konzultace, komunikace Student konzultoval nepravidelně, ovšem bylo znát, že se projektu věnoval dostatečně. Hlavní usílí věnoval programové části, ve které měl těžší počátky v efektivní implementaci.
Aktivita při dokončování Majoritní část zdrojových kódů byla dokončena v dostatečném předstihu. Technická zpráva by si však zasloužila více pozornosti. Ke konečné podobě technické zprávy ani k implementační části jsem neměl možnost se vyjádřit. Výsledný kód však splňuje všechny funkční požadavky.
Publikační činnost, ocenění
Navrhovaná známka
C
Body
75

Posudek oponenta

Rogalewicz, Adam

Textová zpráva této práce je podprůměrná jak po technické, tak i formální stránce. Na druhou stranu má práce rozumný realizační výstup, který umožňuje snadno replikovat testy popsané v textu. Proto navrhuji hodnotit tuto práci stupněm D.

Dílčí hodnocení
Kritérium Známka Body Slovní hodnocení
Náročnost zadání
Rozsah splnění požadavků zadání
Rozsah technické zprávy
Prezentační úroveň technické zprávy 59 Technická zpráva se skládá z 6 kapitol, které na sebe logicky navazují. Co se týká technické úrovně, tak některé pojmy jsou špatně, nebo vágně definované, což celkově ztěžuje čitelnost práce. 3: no není zcela deterministická -- nevysvětleno 4: blok hodnot = jeden z bloků -- definice kruhem. Řádná definice bloku v textu chybí. 6: Část o kritériích pokrytí je dost mlhavá a nejasná. Čtenář bez znalosti detailů ji nemá šanci pochopit. 7: párové testování -- chybí zmínka, že párové je totéž co 2-násobné. 8: pro n větší než t -> pro n menší než t 32: Pro řešení jenom omezení by nám stačil SAT solver. Toto pravděpodobně není pravda. Student pravděpodobně chtěl vysvětlit rozdíl mezi "check SAT" a "get model". Používá však vždy SMT, protože hodnoty jsou obecné. 36, tabulka 5.3: není jasné co znamenají sloupečky testy a co udává \delta% v popisku tabulky?
Formální úprava technické zprávy 55 Technická zpráva je psána česky s velkým množstvím  překlepů, gramatických chyb a hovorových výrazů. 3: nástroje byli vytvořeny -> byly vytvořeny 5: Kombinatorické x Kombinační testování -- autor používá obě varianty, nejednoté 5: dost dobrý orákulum 8: Takto zadané omezení je ale zkontrolovat -- chybí sloveso 30: Přetože multithreding má nevýhody používáme ho v nové implementaci ... -- trochu zvláštní formulace 31: než si to implementovat 31: ..., avšak nepatrně natolik se používá ... 33: výslední sady -> výsledné sady 33+35: python -> Python 35: sade -> sadě
Práce s literaturou 90 Všechny použité zdroje jsou uvedeny.
Realizační výstup 75 Realizačním výstupem práce je kód v C++, který je relativně přehledný. Kód využívá SMT solver Z3 prostřednictvím C API. Po instalaci nutných knihoven lze nástroj dle návodu přeložit a spustit replikaci testů diskutovaných v kapitole 5. S ohledem na časovou náročnost jsem zkoušel replikovat jen část testů a výsledky odpovídají výsledkům uvedeným v tabulce 5.1. Funkce is_valid obsahuje nesmyslnou konstrukci: static bool first_run = true; if (first_run) { Proměnná first_run měla být pravděpodobně parametrem funkce. a nastavena na true při prvním volání is_valid z nadřazené funkce.
Využitelnost výsledků Reimplementovaný nástroj může bez problému použit pro generování kombinačních testů a splňuje požadavky na realizační výstup BP.
Navrhovaná známka
D
Body
60

Otázky

eVSKP id 162603