Rozšíření využití distribuované virtuální laboratoře počítačových sítí ve výuce

Z VirtlabWiki

Přejít na: navigace, hledání

Rozsireni moznosti pro hodnoceni uloh pedagogem, automatizace testovani topologii a poloautomatizace pro podporu manualniho hodnoceni

Obsah

Specifikace požadavků

subsystému automatizace kontroly a hodnocení úloh pro Virtuální laboratoř

Cíl projektu

Připravovaný projekt částečné automatizace kontroly a hodnocení má snížit časové nároky na kontrolu řešení jednotlivých úloh Virtuální laboratoře, umožnit zvýšení počtů paralelně vypracovávaných úloh a také snížení počtů studentů pracujících na jedné úloze. Systém podle specifikovaných kritérií zkontroluje konfiguraci vytvořenou studentem, umožní mu upravit své řešení a následně jej vyhodnotí a výsledky nabídne vyučujícímu. Kritéria kontroly jsou definována při tvorbě úlohy.

Specifikace požadavků

Tvorba úlohy

Obecný náhled

Soubor:Tvorba ulohy.PNG
Diagram 1: Tvorba úlohy

V nynější verzi Virtuální laboratoře je úloha specifikována textovým a grafickým zadáním pro pochopení studentem a dále pak specifikací požadavků na dynamicky vyhledávaná laboratorní zařízení a informací, jak daná zařízení spojit (pro fyzického zapojení). Pro potřeby testování konfigurace je nutné ke tvorbě úloh přidat definování pravidel testování a pro potřeby variability zadání pro využití ve výuce také parametrizace jednotlivých zadání. Pravidla testování říkají, které prvky mají interakci s jinými a jakou – funkčnost této interakce bude ověřena při testování. Parametrizace zadání znamená vložení parametrů umožňující diferenciaci dané úlohy na základě např. IP adresování, výběr směrovacích protokolů apod. Tyto parametry nemají vliv na topologii, avšak ovlivňují výsledek testování.

Pravidla testování mohou a nemusejí být definována a vztahují k jedné úloze. Pokud nejsou definována pravidla testování, nedefinují se ani parametrizace úlohy (z hlediska testování, dále jen parametrizace). Pro každou úlohu je jedna skupina pravidel testování a několik parametrizací.

Ke každé úloze, ke které jsou definována pravidla testování, musí být minimálně jedna výchozí parametrizace, která bude použita, je-li úloha řešena uživatelem nespadajícího do výuky nebo studentem, který není součástí instance úlohy.

Proměnné

Při vytváření pravidel testování se používají proměnné. Parametrizace je skupina proměnných (použitých v definici testovacích pravidel) s hodnotami. Každá parametrizace je unikátní jednotka. Při testování konfigurace jsou použity nedefinovaná pravidla testovaní dané úlohy a proměnné jsou nahrazeny hodnotami z použité parametrizace.

Proměnné jsou dvou typů:
a) proměnné používané v testovacích pravidlech – hodnota definována v parametrizaci
b) proměnné používané v testovacích pravidlech – hodnotu vyplní student do formuláře

Proměnná se skládá z identifikátoru (používané systémem), názvu proměnné, popisu proměnné a typu.

Parametrizace se skládá z hodnot proměnných použitých v testovacích pravidlech a ze slovního zadání, které podrobněji specifikuje zadání úlohy (popis jaké hodnoty mají být použity v závislosti na hodnotách proměnných dané parametrizace apod.)

Tvorba pravidel testování

Pravidla testování jsou buďto základní předdefinovaná (např. ping) nebo lze zadat vlastní kousek skriptu, který má být proveden, a regulární řetězec, který bude aplikován na výsledek skriptu a rozhodne o úspěšnosti provedeného testu.

Soubor:Tvorba pravidel.PNG
Diagram 2: Tvorba pravidel testování

Tvůrce pravidel si zvolí PC (počítač topologie, možno i router a další prvky, dále jen PC) pro které bude definovat pravidla testování. Zobrazí se mu formulář, na kterém může:

a) spravovat proměnné, které používá pro tvorbu pravidel (přidávat, editovat, mazat), v této fázi nemají proměnné hodnoty, hodnoty se jim přiřazují při tvorbě parametrizací

b) vybrat si ze seznamu základních testovacích pravidel, která jsou již v systému nadefinována jako např. ping a v závislosti na pravidle k němu dodat potřebný počet svých vytvořených proměnných – pro pin bude např. potřeba jen jedna.

c) vytvořit „vlastní testovací pravidlo“ - vložení části skriptu který se má provést, lze používat proměnných a dále je pak nutné uvést regulární řetězec, který bude aplikován na výsledek provedeného skriptu. Nastane-li shoda, je výsledek testu započítán jako správný.

Tvorba parametrizací

Jakmile jsou vytvořena pravidla testování, je potřeba vytvořit minimálně jednu základní výchozí parametrizaci. A dále je pak možno podle potřeby vytvořit další parametrizace. Při tvorbě jedné parametrizace jsou proměnným používaným v pravidlech testování přiřazeny hodnoty. Dále pak každá parametrizace obsahuje detailnější rozšíření stávajícího zadání úlohy. Je potřeba říci studentům hodnoty proměnných, které budou potřebovat pro splnění úlohy (např. IP adresy interface jsou odlišné pro různé parametrizace).


Otevření úlohy (vytvoření instance)

Soubor:Otevreni ulohy.PNG
Diagram 3: Vytvoření instance úlohy

Učitel si přeje zadat úlohu studentům, proto vytvoří instanci úlohy. Instance znamená, že vyučující vybere jednu úlohu ze seznamu úloh, vybere jednu parametrizaci, podle které se bude řešení testovat, zvolí testy, které se mají provést, a vybere studenty, kteří mají danou instanci řešit. Instance úlohy je tvořena na základě vybrané úlohy, zvolené parametrizace a na základě studentů řešících tuto úlohu.

Vyučující si může po zvolení úlohy a parametrizace vybrat, které testy mají být provedeny, pokud si nepřeje standardně všechny. Vybrané testy budou aplikovány na vypracovanou úlohu odevzdávajícími studenty (tito budou s těmi to testy obeznámeni pro další úpravu) a také budou aplikovány při konečném odevzdání a výsledky uloženy pro další zpracování.

Po aktivaci úlohy je úloha přístupná k rezervaci a k řešení pouze vybraným studentům. Instance úlohy slouží hlavně ke školním účelům.


Rezervace a vypracování úlohy

Soubor:Rezervace vypracovani.PNG
Diagram 4: Rezervace a vypracování úlohy

Rezervace úlohy probíhá dvěma způsoby. Pokud není uživatel (student) zapsán na žádnou instanci úlohy, může si vybrat jakoukoli úlohu, rezervovat si ji a vypracovat. Jestliže jsou v úloze definovány pravidla testování, může si uživatel zvolit, zda si nechá řešení otestovat. V tomto případě musí při řešení postupovat v souladu s výchozí parametrizací. Pokud si nepřeje řešení testovat, může úlohu řešit libovolným způsobem.

Pokud je student součástí nějaké instance, může si úlohu této instance zarezervovat. Poté úlohu řeší podle příslušné parametrizace. Po vypracování úlohy je potřeba zadat do připraveného formuláře relevantní data pro otestování konfigurace a také data vyžádaná vyučujícím pro hodnocení úlohy (výpis směrovací tabulky apod). Část formuláře pro zadávání dat pro testování je generován dynamicky na základě vybraných pravidel testování. Po vyplnění a odeslání formuláře je student seznámen s výsledky dílčích testů. Student má možnost upravit řešení. Po odevzdání úlohy jsou výsledky testování a data vyplněná do formuláře uložena v databázi a následně nabídnuta vyučujícímu.

Analýza a návrh

Způsob připojení na testované zařízení

Testování probíhá pomocí BASH skriptů. Skripty budou dynamicky generované PHP skripty na řídícím serveru a budou se pomocí konzolového rozhraní připojovat na prvky topologie a testovat funkčnost.

Soubor:Topologie.jpeg
Obrázek 1: Způsob připojení na testovaná zařízení

Server na kterém běží WWW rozhraní subsystému automatické kontroly a hodnocení úloh generuje pomocí PHP skriptů BASH skript. Vygenerovaný skript je po vytvoření spuštěn, pomocí konzolového rozhraní se připojí na vzdálené prvky vytvořené topologie a provede testy nakonfigurované pro daný stroj. Výsledky testů ukládá do databáze. Po skončení pokračuje původní PHP dále nebo je informován jiný PHP skript o ukončení testování.

Práce SW/HW komponent

Soubor:Prace komponent.PNG
Diagram 5: Spolupráce komponent


Slovníček pojmů


parametrizace - jedna parametrizace představuje jedinečné naplnění proměnných používaných v testovacích pravidlech


instance úlohy – představuje jednu úlohu s vybranou jednou parametrizací a skupinou studentů tuto úlohu vypracovávajíce. Vyučující otevírá úlohu studentům a těmto vybere jednu parametrizaci, podle které budou úlohu vypracovávat a podle které se úloha automaticky zkontroluje. Student si může zarezervovat → vypracovat pouze instanci, ke které přísluší.

Otázky a poznámky

Ve které fázi definuje učitel, jaká další data mají být odevzdána? V odevzdávacím formuláři budou požadována data podle použitých proměnných, avšak dále může učitel říct, co dalšího chce vědět. Možnosti: V obecném zadání úlohy nebo při vytváření testovacích pravidel nebo při vytváření jednotlivých parametrizací?



Úloha má jednu topologii, jeden obrázek, zadání v několika jazycích, jednu sadu testovacích pravidel a několik parametrizací. Pokud jsou definována testovací pravidla, musí být vytvořena minimálně jedna výchozí parametrizace, aby šla testovací pravidla použít.



Návrh - úvahy

  • Testovaci skripty - kam ? Do VSECH (a JENOM) Linuxovych stanic, nebo dalsi stanice pripojitelne "nekam" do topologie ? Nebo navic jeste modul Tunserveru ?
  • Jak kopirovat skripty do FS XENovych Linuxu - pres konzoli ? Pri startu instance mountovat jeste cast FS, kde budou predtim nakopirovane testovaci skripty ?
Osobní nástroje