Teszteléses szorgalmi házi feladat (Cucumber)

Idén a szorgalmi feladat részét képezi a Rendszermodellezés versenynek, a szorgalmi feladatra kapott pontszám beleszámít a verseny során elérhető pontszámba (részletek a kiírásban).

Ahogy az előadáson is elhangzott, a szorgalmi feladat a kötelező házi feladat során elkészített saját sakkóra automata funkcionális tesztelése.

A kötelező házi feladat folytatásaként lehetőség van egy Extra / IMSc / verseny feladat elkészítésére. Kezdetben érdemes a feladathoz készült segédletet elolvasni. Figyelem, ez a segédlet nem azonos a kötelező házi feladat segédletével! A szorgalmi feladat teljes kiírása (összesen 28 megválaszolandó kérdés formájában) a HF portálon olvasható. Itt lentebb összefoglaljuk a fontosabb tudnivalókat.

Feladat: A feladathoz tartozó kiinduló projekt az alábbi linken érhető el: itt. A feladat a korábban elkészített kötelező házi feladat további, funkcionális tesztelése.
A teszteseteket a sakkóra interfészén beadott inputokból (gombnyomások), adott idejű várakozásokból, és kimenetek (kijelzők, sípjel) ellenőrzéséből felépített szekvenciákként (teszteset, scenario) kell specifikálni. Minden ilyen teszteset végén (és ahol jelentősége van, akár közben is) kötelező kimenetet vizsgálni. A teszteknek természetesen sikeresen le kell futniuk.
A teszkészlet tervezésekor erősen ajánlott a saját állapotgép szerkezetét figyelembe venni, minél nagyobb tesztfedettségre törekedni. Az állapotátmenet szintű fedettséget (némi pontatlansággal) a Yakindu állapotgépből generált forráskódot feldolgozó automatizált fedettségmérő eszközökkel (EclEmma) ki kell mutatni. Teljes pontszámot az a megoldás érdemelhet, amelyik teljes átmenetfedést ad és a HF portálra feltöltött dokumentációban (azaz a kérdésekre adott válaszokban) bemutatásra kerül a tesztek megtervezésének módszere is (érdemes lehet kitérni a használt bejárásra, érdemes áttekinteni, hogy miért ennyi teszttel került a feladat megoldásra, ez miért jobb, mintha több/kevesebb/hosszabb/rövidebb teszteket használtunk volna). Megfelelő minőségű dokumentáció nélkül nem tudjuk a feladatot elfogadni.
(A feladat során a generált kód minél nagyobb százalékú fedését érjük el, pontosabban a ChessClockStatemachine.java állomány, ezen belül az állapotátmeneteket megvalósító check_, react_, effect_ ill. az állapotok be- ill. kilépésekor végrehajtott enterSequence_, exitSequence_ kezdetű függvények teljes fedése a cél.)

Beadás: A házi feladat beadása és a megfelelő fájlok feltöltése a HF portálon keresztül történik. A portálon az Extra / IMSc feladat (Tesztelés) pontnál szereplő kérdések megválaszolásával és a tesztelés dokumentálásával teljesíthető a feladat. A beadási határidő a HF portálon a feltöltési határidő.
 
Pontozás: Mivel a feladat a kötelező házi feladat folytatása, a feladat csak akkor értékelhető, ha a hallgatónak a leadás pillanatában van elfogadott kötelező házi feladata. A feladatra 10 bónusz pontot lehet kapni, aminek a jeles ponthatára fölé eső része IMSc pontra váltható, továbbá az 5 pont fölötti része a feladatnak beleszámít a Rendszermodellezés versenyeredménybe. A pont megszerzésének feltétele egy, a pótlási héten tartandó szóbeli (Teams) védésen való megjelenés. A feladat értékelésének alapja a tesztelt modell helyessége, az elért kódfedettség, a HF portálon megválaszolandó kérdésekre adott válaszok, azaz a dokumentáció minősége, továbbá a védésen nyújtott szóbeli teljesítmény. A nem, vagy hiányosan, vagy kirívóan igénytelenül dokumentált megoldás 0 pontot ér. Figyelem: A bónusz pontok csak az elégséges elérése után számítanak bele a jegybe.

Védés: A pont megszerzésének feltétele egy, a pótlási héten tartandó szóbeli védésen való megjelenés. Az erre való jelentkezésről később adunk tájékoztatást.

Pótlás: A feladat szorgalmi feladat, ezért késedelmes, vagy utólagos leadásra nincsen lehetőség.

Feltételek:

  • Leadási határidő a 14. hét vége pótlási hét kedd 05.26. éjfél, a HF portálon keresztül
  • Beadás a HF portálon keresztül az ott szereplő kérdések megválaszolásával.
  • Szóbeli védés a pótlási héten.
  • A kötelező számonkérések teljesítése esetén jegyjavításra (ill. jeles szint felett IMSc pont szerzésére) maximálisan elérhető 10 pont. A Rendszermodellezés versenybe a kapott pontszám 5 pont feletti része számít be (tehát 5 pontot ér a tökéletes, dokumentált megoldás a versenyben).