VRÁBLIK, M. Reimplementace nástroje Combine [online]. Brno: Vysoké učení technické v Brně. Fakulta informačních technologií. 2024.
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.
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í |
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.
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. |
eVSKP id 162603