Automatikus build végrehajtás

Tanszéki konzulens: 
A munkatárs fényképe
habilitated associate professor
Szoba: IE416
Tel.:
+36 1 463-4114
Email: sujbert (*) mit * bme * hu
Külső konzulens: 
Pintér Gergely, ThyssenKrupp Presta Hungary Kft.

A kiírás adatai

A téma státusza: 
Korábbi (jelenleg nem aktív, de látszik)
Kiírás éve: 
2016
A kiírás jellege: 
önálló labor, szakdolgozat/diplomaterv

Napjaink high-tech szoftverrendszereinek összetettsége régen túlhaladta azt a szintet, ahol a forráskódból a telepíthető, futtatható bináris előállítása, majd tesztelése egy fejlesztő munkaállomásán praktikus idő alatt elvégezhető.  Komoly projektekben egy-egy fejlesztői commit után automatizált kódgenerátorok, fordítók, minőségi metrika számító, unit-, integrációs- és regressziós tesztelést végző programok sora fut le, amelyek együttesen lehetővé teszik, hogy a team uralja a korábban példátlan komplexitást, folyamatosan konzisztens képet lásson a rendszer egészéről és a legrövidebb időn belül értesüljön az esetleg felmerülő problémákról.

Egy modern build szerver integrálódik a verziókontrolhoz, fordítóprogramokhoz, az issue kezelőhöz és a tesztelést végző szerverekhez, levéve a fejlesztők válláról a fordítás, telepítés és tesztek futtatásának feladatát.  Az így előálló continuous integration folyamat drámaian növeli a teamek hatékonyságát, javítja a termék minőségét és versenyelőnyt biztosít a vállalatnak, nem csoda, hogy a modern agilis szoftverfejlesztési módszerek egyik kulcselemévé vált.

A feladat egy több millió soros Eclipse alapú desktop Java alkalmazás build folyamatának automatizálásához kapcsolódik.  A jelenlegi (Hudson és Eclipse Buckminster alapú) megoldás képes automatikusan fordítani, integrálni és telepíthető csomaggá összeállítani az alkalmazást, majd egy grafikus teszt futtató eszközzel user interface tesztek százait végrehajtani, és statikus analízist végezni, végül elküldeni az eredményeket az érintett fejlesztőknek és letölthető formában publikálni az alkalmazást.  A munka célja a fenti toolchain build végrehajtó elemének migrációja a nemrég megjelent és ígéretes Eclipse Tycho technológiára.

A feladat megoldása során a hallgató először megismeri az érintett technológiákat, feltérképezi az új megoldás jellemzőit, megtervezi a toolchain szükséges módosításait és átalakítja a build folyamatot.  A feladat elkezdéséhez a fent említett technológiák ismerete nem követelmény, de előnyt jelenthet.  A munka során a hallgató folyamatosan segítséget kap a ThyssenKrupp Presta Hungary Kft. jelenlegi struktúrát kialakító tool fejlesztőitől, használhat egy teszt rendszert és idővel hozzáférhet az éles build szerverhez.  A feladatra többen is jelentkezhetnek.

A hallgató a következő technológiákkal ismerkedhet meg a feladat megoldása során: Hudson és Jenkins build szerverek, Apache Maven és Eclipse Tycho build végrehajtók, az automatikus grafikus felület tesztelést végző RCPTT, a statikus kódanalízis végző FindBugs és a tesztek kódfedését mérő JaCoCo engine.  A feladat megoldása során olyan keresett és piacképes tudást szerezhet, amely közvetlenül kamatoztatható minden olyan cégnél, ahol nagy szoftver rendszereket fejlesztenek (pl. távközlés, mobil és webes alkalmazások, autóipar és minden Eclipse alapú fejlesztés), illetve értékes hozzájárulást nyújthat földrajzilag elosztott csoportok által fejlesztett open source projektekhez is.

© 2010-2024 BME MIT