Agilis fejlesztés támogatása automatikus tesztgenerálással
Az agilis fejlesztés napjainkban széleskörben alkalmazott módszertan. Ez többek között a nagy fejlesztési feladat kisebb, ám a megrendelő számára is még érthető részekre bontását is magával vonja. Ezek az úgynevezett user storyk, amelyek természetes nyelven írnak le egy-egy konkrét funkciót az elkészítendő rendszerben. A Behavior-Driven Development egy olyan agiilis megközelítés, ahol ezen storykat valamelyest strukturált módon (Given-When-Then) írják le az adott környezeti domain kulcsszavainak felhasználásával. A fejlesztők és a tesztelők a leírás elkészülését követően ebből dolgoznak a tesztek és a funkciók megvalósításához.
A BDD alapú fejlesztéshez számos támogató eszköz áll rendelkezésre a Given-When-Then jellegű leírások és szcenáriók elkészítéséhez. Egyik ilyen a SpecFlow, ami .NET-es környezethez biztosítja ezt a leírást a Gherkin nyelv segítségével. A SpecFlow továbbá képes arra, hogy ezeket a funkcióleírásokat egyfajta tesztesetekként kezelje.
A Microsoft IntelliTest ([1], [2]) ezzel szemben egy olyan eszköz, ami képes pusztán a forráskód elemzésével teszteseteket előállítani a specifikáció hiányában is. Természetesen ezek a tesztesetek kiegészíthetők funkcionalitást vizsgáló elvárásokkal is, így összekapcsolva a funkcionális és strukturális tesztelést.
A hallgató feladata a SpecFlow és az IntelliTest összekapcsolási lehetőségeinek vizsgálata és megvalósítása. A cél egy olyan kiegészítés elkészítése a SpecFlow-hoz, amely képes a Given-When-Then leírásokat transzformálni olyan formába, amelyet az IntelliTest már fel tud használni a tesztgenerálási folyamat során. A feladat elkészítésében a SpecFlow fejlesztői a segítségüket nyújtják.