Zadáno

Bakalářská práce č. 1 - 2015/2016

Zadání pro studijní obor: Informační systémy

Název: Srovnání možností statických analyzátorů zdrojového kódu

Motivace: V současné době existuje několik nástrojů pro statickou analýzu zdrojového kódu v Javě. Tyto nástroje jsou většinou široce konfigurovatelné a existují i jako pluginy do používaných vývojových prostředí. Dále se mohou odlišovat možnostmi spuštění, rozsahem jejich API, frekvencí aktualizací atp.

Cílem práce je připravit podmínky multikriteriálního hodnocení a pomocí něj porovnat alespoň tři z dostupných nástrojů.

Kriterium pro výběr nástrojů, jenž postoupí srovnávání, je jejich aktuálnost, dále musí být v kategorii freeware nebo public domain softwaru a pak též možnost spuštění jako samostatný program či task v Ant/Maven.

Závěrem práce bude doporučení, jaký z těchto nástrojů je vhodné použít zejména ve výuce v bakalářském stupni studia.

Zadání:

  1. Seznamte se s problematikou statické analýzy kódu a minimálně se třemi nástroji, které tuto analýzu provádějí.
  2. Ze zdrojových kódů dodaných školitelem vyberte vhodnou testovací podmnožinu tak, aby zahrnovala co nejvíce potenciálně analyzovatelných problémů.
  3. Testovací množinu prověřte zvolenými nástroji a výsledky přehledně zobrazte.
  4. Připravte multikriteriální hodnocení, jaké problémy jsou nejčastější a/nebo nejzávažnější, a následně doporučení, jakým nástrojem by měly být prověřovány.

Cílový operační systém: není podstatný, zdrojové kódy v testovací množině budou napsány v Javě

Jazyk a technologie: Java

Charakter práce: Experimentální. Práci je možné zpracovávat na domácím PC.

Vhodné pro: Student, který je schopen experimentální práce.

Bakalář: Matěj Rajtr


Zadáno

Bakalářská práce č. 2 - 2015/2016

Zadání pro studijní obor: Informatika

Název: Analýzy automaticky vyhodnocovaných studentských projektů

Motivace: V předmětech KIV/PPA1, KIV/OOP, KIV/OKS a dalších odevzdávají studenti na Portál řadu semestrálních projektů. Tyto projekty jsou automaticky validovány. Tento postup probíhá již řadu let a tak jsou k dispozici cenné údaje, které mohou pomoci při zvyšování kvality výuky těchto předmětů v příštích letech.

Cílem práce je provést analýzu dat, která jsou na validátoru uložena a a po dohodě s vedoucím práce vytvořit nástroj, pro snadné získání zajímavých dat a jejich přehledného zpracování nejlépe formou agregovaných grafů.

Speciální pozornost bude kladena na vyhodnocování úloh týkajících se UML diagramu. V roce 2015 byl totiž v rámci jiného studentského projektu vytvořen rozsáhlý systém, který umožňuje velmi detailní testování odevzdaných UML diagramů. Pomocí těchto testů lze získat časovou řadu chyb jednotlivých úloh.

Zadání:

  1. Seznamte se charakterem výstupních souborů validačního serveru. Dále se seznamte s možnostmi nástroje UML-test a zejména se způsobem konstrukce a vyhodnocení jednotlivých testů.
  2. Na základě znalosti výstupních dat validátoru navrhněte množinu agregovaných grafů, které budou vhodně charakterizovat stavy odevzdávání studentských projektů. Dále navrhněte aplikaci, která bude navržené grafy vytvářet.
  3. Analyzujte data získaná nástrojem UML-test a navrhněte způsob jejich vhodné interpretace. Navrhněte aplikaci, která zpracuje tento typ dat.
  4. Zrealizujte obě navržené aplikace. Důraz klaďte na robustnost kódu, tj. testovatelnost, programátorskou dokumentaci apod.
  5. Obě aplikace otestujte na množině dat nejméně z jednoho celého semestru. Připravte scénáře funkčního testování a podrobnou uživatelskou příručku.

Cílový operační systém: není podstatný, zdrojové kódy budou napsány v Javě

Jazyk a technologie: Java

Charakter práce: Analytická a vývojová. Práci je možné zpracovávat na domácím PC.

Vhodné pro: Studentku, která je schopna vytvořit použitelnou uživatelsky přívětivou aplikaci. Vyžaduje se pečlivost.

Bakalářka: Jitka Fürbacherová


Zadáno

Bakalářská práce č. 3 - 2015/2016

Zadání pro studijní obor: Informatika

Název: Rozšíření funkčnosti validačního serveru a jeho testování

Motivace: Validační server, který je již více než 8 let intenzivně používán pro automatizované vyhodnocování studentských projektů, prošel poměrně značným vývojem. Na jeho vývoji se podílelo minimálně 6 programátorek a programátorů. Postupem času vznikaly další a další požadavky na jeho funkčnost a to zejména na rozšíření funkčnosti tzv. vlastních akcí, což jsou de facto plug-in moduly validátoru. Mimo těchto rozšíření a vylepšení samotný validátor již dvakrát migroval na výkonnější server a několikrát na jinou (vyšší) verzi Javy.

V současné době jsou validátorem standardně vyhodnocovány studentské projekty ze 6 předmětů vyučovaných na FAV a FEL.

Cíle práce jsou dva:
  1. rozšíření funkčnosti a implementace dalších modulů validátoru, zejména podle požadavků, které jsou postupně zaznamenávány v manažerském systému Redmine.
  2. příprava komplexních regresních testů, které by měly prokázat funkčnost validátoru při čtyřech typických akcích:
    1. změna platformy, tj. hardware a verze OS Linux
    2. změna software, nejčastěji verze Javy
    3. úprava vlastní akce
    4. vytvoření nové vlastní akce
Poznámka: Zkušenost ukazuje, že přidání (ubrání) validační domény nemá vliv na funkčnost ostatních domén.

Zadání:

  1. Seznamte se s vnitřní adresářovou strukturou validátoru a popište i případné rozdíly mezi jeho testovací a ostrou verzí. Dále se seznamte s technologií (postupem) vytváření či úpravy vlastních akcí. Seznamte se i se způsobem řízení celého projektu pomocí Redmine.
  2. Podle námětů z Redmine vytvořte nejméně jednu novou vlastní akci a proveďte nutné úpravy již stávajících vlastních akcí. Průběžně doplňujte již existující on-line dokumentaci.
  3. Navrhněte systém regresních automatických testů validátoru. Navržené testy by měly být použitelné i jako smoke testy, tj. pro rychlé ověření základní funkčnosti.Navržené testy musí být jak splněním, tak i selháním.
  4. Zrealizujte sadu navržených regresních testů tak, aby splňovala minimálně požadavek smoke testů.
  5. Celý systém testů důkladně zdokumentujte a připravte i základní funkční scénáře.

Cílový operační systém: Linux

Jazyk a technologie: Java, XML

Charakter práce: Vývojářský. Pro práci je nutný přístup na školní servery.

Vhodné pro: Studentku, se zvýšeným smyslem pro detail a pečlivost.

Bakalářka: Anežka Jáchymová


Zadáno

Bakalářská práce č. 4 - 2015/2016

Zadání pro studijní obor: Informatika

Název: Využití softwarových nástrojů pro přípravu testů grafického uživatelského rozhraní

Motivace: V současné době existuje množství SW nástrojů pro testování GUI aplikace. Toto široké spektrum nástrojů je dáno mj. tím, že aplikace jsou vytvářeny různými technologiemi, případně frameworky (např. Java aplikace může mít GUI pomocí Swing nebo pomocí JavaFX, naprosto klíčové jsou dnes webové aplikace, kde na pozadí GUI je HTML). Pomocí zmíněných nástrojů se mimo jiné vytvářejí tzv. monkey testy, což jsou pseudonáhodné testy zejména grafického uživatelského rozhraní.

Cílem práce je provést kvalifikovaný průzkum těchto nástrojů a vybrat jeden z nich. Kriteria výběru budou též, zda je nástroj typu freeware nebo open-source a vhodnost nástroje pro účely předmětu KIV/OKS.

Ve zvoleném nástroji pak budou připraveny sady ukázkových testů svojí filosofií zapadající do předmětu KIV/OKS (tedy nebudou to testy převzaté z manuálů zvoleného nástroje).

Zajímavou a užitečnou možností bude též průzkum, případně využití tzv. semi-smart nebo smart testů, což jsou monkey testy s částečným nebo úplným vyhodnocením a jejich využití v různých fázích celkového testování SW. Tato možnost by měla být jedním z dalších kriterií výběru nástroje.

Zadání:

  1. Seznamte se minimálně se třemi nástroji umožňujícími testování grafického uživatelského rozhraní.
  2. Navrhněte multikriteriální hodnocení vybraných nástrojů, přičemž jedním z důležitých kriterií bude použitelnost tohoto nástroje v předmětu KIV/OKS. Na základě výsledků hodnocení vyberte jeden z nástrojů, který podrobně popište.
  3. Ve zvoleném nástroji připravte nad danou cvičnou aplikací sadu ukázkových testů, které budou demonstrovat možnosti nástroje a způsob testování pomocí tzv. monkey testů.
  4. Všechny vytvořené testy důkladně zdokumentujete a připravte k nim i podrobné funkční scénáře.

Cílový operační systém: není podstatný, zvolený nástroj musí umožňovat minimálně testy GUI v Javě a HTML

Jazyk a technologie: Java, HTML a další

Charakter práce: Experimentální. Práci je možné zpracovávat na domácím PC.

Vhodné pro: Student, který je schopen experimentální práce.

Bakalář: Jaroslav Klaus


Zadáno

Bakalářská práce č. 5 - 2015/2016

Zadání pro studijní obor: Informatika

Název: Sada ukázkových testovacích příkladů pro framework JUnit

Motivace: Framework JUnit je sice průběžně vyvíjen, ale uživatelská dokumentace, respektive manuály pro jeho použití nejsou v optimálním stavu. Například téměř zcela chybí návody pro začínající uživatele.

Cílem práce je získat co nejvíce informací o tom, jak by měl vypadat oficiální manuál k JUnit (formáty, vyznačování, nástroje, ...). S využitím těchto znalostí a mnoha různých zdrojů (zejména však přednášek z KIV/OKS) vytvořit manuál v jednotném stylu (teorie, praktické příklady, vzájemná provázanost, ...).

Součástí práce bude i oslovení vývojového týmu JUnit s nabídkou pomoci s dokumentací/tutoriály. Ideální cíl práce by byl, pokud by se manuál stal částí oficiální distribuce JUnit.

Zadání:

  1. Seznamte se s testovacím frameworkem JUnit, se způsoby jeho vývoje a uživatelské podpory. Dále se seznamte se způsoby, nástroji a dokumentačními standardy, kterými je vytvářena oficiální dokumentace k tomuto systému. Prostudujte také dostupné materiály z předmětu KIV/OKS z této oblasti.
  2. Ve spolupráci s vedoucím práce navrhněte koncepci vzorových příkladů, které budou vysvětlovat použití jednotlivých aspektů JUnit. Při návrhu klaďte důraz na jednoduchost příkladů a jejich návaznost a provázanost.
  3. Naprogramujte všechny navržené příklady. Důsledně dodržujte v JUnit používané kódovací standardy a dbejte na konzistentní dokumentační komentáře.
  4. Ve struktuře a formátu dané existující dokumentací JUnit připravte pro všechny vytvořené příklady i vysvětlující texty. Celá práce bude v anglickém jazyce.

Cílový operační systém: není podstatný, zdrojové kódy v testovací množině budou napsány v Javě

Jazyk a technologie: Java

Charakter práce: Výuková a dokumentační. Práci je možné zpracovávat na domácím PC.

Vhodné pro: Student, který je schopen vidět širší souvislosti, umí vysvětlit problémy, ovládá perfektně anglický jazyk.

Bakalářka: Tereza Senjuková


Poslední změna: 15. 10. 2015
Pavel Herout