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. Během řešení projektu byl aktivní.

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.
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í Implementační část byla dokončena v dostatečném předstihu. Technická zpráva by si však zasloužila více pozornosti. K vyjádření ke konečné podobě nebo k zapracování připomínek nebylo dostatek času.
Publikační činnost, ocenění
Navrhovaná známka
C
Body
75

Posudek oponenta

Rogalewicz, Adam

Jedná se o práci, která má rozumný realizační výstup, ale textová zpráva je velmi špatná jak po odborné, tak i jazykové stránce. Proto navrhuji hodnotit práci jako nevyhovující. S ohledem na realizační výstup doporučují studentovi umožnit práci dokončit a obhájit na srpnovém termínu SZZ.

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 Práce má 33 vysázených stran. Pokud vezmeme v úvahu, že obrázky 2.1,2.2,2.3 a 2.4 jsou převzaté, stejně tak jako všechny gramatiky a popisy terminálů v kapitole 4, tak množství vlastního textu studenta je cca 27 vysázených stran.
Prezentační úroveň technické zprávy 25 Prezentační úroveň práce je na velmi špatné úrovni. Práce by měla být samonosná a veškeré používané termíny by měli být přesně definovány v úvodních kapitolách. Po přečtení úvodních kapitol nemá čtenář vůbec ponětí, co je to kombinační testování. Pojmy jako t-násobná kombinace, T-násobná (je to to stejné?), T-Wise (je to to stejné?), blok, síla, test se žolíkem, délka testu, číslo "n", atd nejsou vůbec definovány a jsou používány nesystematicky. kapitola 2: chybí definice kombinačního testování a algoritmu IPO strana 4: nevysvětleno t-násobné, párové testování, strana 5: strategie je deterministická -- IPO, nebo IPOG? Nedefinovány pojmy ps parametry a n parametry. 2.2, poslední odstavec: sada constraintů je UNSAT. Je to správně? Proč je takto vytvořena? strana 9: co jsou to bloky, T-Wise covering array? strana 9: 10 parametrů o 10 blocích a síle 3 -- jiná terminologie než v předchozí části, zmatečné. strana 11: "test se žolíkem" -- nedefinováno kapitola 3: Chybí popisy formátu vstupu a výstupu nástroje. strana 14: jak indexy, tak konkrétní hodnoty -- nejasné kapitola 4.1: "aplikace přijímá zmiňovaný JSON formát" -- formát není v práci definován. kapitola 4.2: Co jsou to ty bloky (kusy kódu, ...)? tabulka 5.3: C++ implementace běží déle, může být klidně overhead spojený s opakovaným zbytečným startem solveru (viz realizační výstup). Tabulka 5.3: není jasné, nad jakým SMT solverem běží původní implementace a kolik času se tráví v solveru. Tabulka 5.2: je otázka, jestli dává smysl uvádět "\delta n". Závěr je asi takový: Na vstupech, které budou hodně za hranicí možností obou nástrojů bude možná paměťová složitost mého nástroje lepší.
Formální úprava technické zprávy 25 Po formální stránce je práce plna překlepů a hovorových výrazů. strana 1: zrealizování, strana 8: "tahle" strana 9: je rozdíl mezi t-násobným a T-násobným testováním? strana 26: "SAT solvr" strana 27, 2. řádek odspodu: chybí mezera strana 28: "paměťoví nárok", "rovaného počtu", "jenom o chlup", strana 30: "parsru"
Práce s literaturou 50 Student uvedl většinu zdrojů ze kterých vycházel. Nicméně některé nástroje a některé techniky jsou pouze zmíněny v textu bez odkazu na literaturu/web stránku: strana 4: IPO strana 5: AETG, techniky heuristického vyhledávání, nástroje ACTS a Jenny. Z3 SMT solver
Realizační výstup 75 Realizační výstup je to nejlepší, co na této práci můžeme najít. Jedná se o kód v C++, který je relativně přehledný. Kód využívá SMT solver Z3 prostřednictvím C API. Problémem je, že student neuvažuje variantu, že solver může někdy vrátit také výsledek unknown a například funkce is_valid vrací v případě unknown chybný výsledek -- tedy, že formule je pravdivá. Realizační výstup obsahuje výkonnostní chybu: Solver se opakovaně volá v rámci for cyklu, kde se pro všechny dotazy používá stejná množina omezení, ale pro každý dotaz je vytvořena nová instance solveru. Použití solveru je tak neefektivní, neboť pro každý dotaz vytváří nový solver a tím se pokaždé zahazuje vše, co předchozí instance solveru vyřešily a uložily do své cache.
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. Pro generování testů s constrainty by bylo vhodné zefektivnit práci s SMT solverem.
Navrhovaná známka
F
Body
40

eVSKP id 155684