Automatikus build végrehajtás

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.

További információ: Pintér Gergely (gergely.pinter@thyssenkrupp.com)

Témacsoport: 
Ellenőrzés és tesztelés
Jelleg: 
Gyakorlati
Konzulens: 
Majzik István
TDK lehetőség: 
Nem
Megismerhető technológiák: 
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.
Állapot: 
Korábbi