Tesztelés autóipari szoftverekben

A feladatok kidolgozása során be lehet kapcsolódni autóipari szoftverek tesztelésébe és teszt környezetének fejlesztésébe a következő, lentebb részletezett témákban (ennek megfelelően több hallgató jelentkezése lehetséges):

Autóipari kommunikációs szoftver konfigurációja és integrációs tesztelése

Egy modern gépjármű biztonsági és komfort funkcióit számos beágyazott vezérlőegység (ECU) támogatja.  Az ezen számítógépeken futó szoftver komplexitása gyakran összemérhető a desktop szoftverekével, pl. egy elektronikus kormányrendszer kb. 150 szoftverkomponensből, több ezer kapcsolatból és félmillió kódsorból áll. Annak érdekében, hogy ez a nagyfokú komplexitás verifikációs szempontból kézbentartható legyen, a tesztelést több lépésben, a szoftver hierarchia különböző szintjein, különböző módszerekkel kell elvégezni. Az integrációs tesztelés alapvetően két célt szolgál: verifikálja (i) a System Under Test (SUT) moduljainak egymás között használt interfészeit és az azokon keresztül zajló interakciókat, valamint (ii) a SUT és a rendszer többi modulja, illetve komponense közötti interfészeket és az azokon keresztül zajló interakciókat.

Az AUTOSAR konzorcium által specifikált szoftver architektúrában a Basic Software (BSW) részét képező kommunikációs stack moduljai teszik lehetővé, hogy az alkalmazás réteg komponensei által a Runtime Environmenten (RTE) keresztül küldött információ eljusson a mikrokontroller perifériáihoz. A kommunikációs stack számos modulból áll, melyek elsődleges feladata, hogy a hardver és a kommunikációs busz sajátosságait elfedve egységes szolgáltatás struktúrát biztosítson az alkalmazás réteg számára. A stack integrációs tesztelése során a verifikáció alapjául szolgáló teszt esetek leírását a konzorcium szintén specifikálja.

A hallgató feladata a jelenleg rendelkezésre álló teszt keretrendszerre építkezve (i) a kommunikációs stack konfigurációja, (ii) a keretrendszer kiegészítése néhány magas szintű funkcióval, (iii) az említett szabvány által specifikált teszt esetek implementálása, azok futtatása CAN, illetve FlexRay kommunikáció esetén, valamint (iv) a SUT működésének verifikációja és erőforrás-felhasználásának mérése.

A feladat megoldása során a hallgató megismeri egy tipikus autóipari kommunikációs szoftverrel szemben támasztott követelményeket, megszerzi a szükséges rendszer szintű ismereteket, jártasságot szerez az AUTOSAR szoftver modulok integrációjában, valamint felkonfigurálásában és kialakít egy olyan teszt rendszert, amely lehetővé teszi a kommunikációs stack működésének verifikációját. A feladat megoldásához C és Java programozási ismeretek szükségesek, amelyeket a hallgató a munka során tovább mélyíthet, megismerheti a ThyssenKrupp Presta Hungary Kft. által fejlesztett AUTOSAR modellező eszköz használatát, valamint értékes rendszer integrációs és tesztelési ismereteket szerezhet. A munka során a hallgató folyamatosan segítséget kap a ThyssenKrupp Presta Hungary Kft. munkatársaitól, akik a kommunikációs stack moduljait, illetve a konfiguráció során használt modellező eszközt fejlesztik.

A feladat megoldása során olyan keresett és piacképes tudás szerezhető, amely közvetlenül kamatoztatható komplex beágyazott szoftvereket fejlesztő, illetve Eclipse alapú fejlesztéseket végző cégeknél és természetesen a hazánkban dinamikusan bővülő autóipari szoftverfejlesztésben.

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

Felhasználói felület autóipari vezérlőegységek teszteléséhez

A korszerű járművek összetett funkcióit egymással kommunikációs kapcsolatban álló vezérlőegységek (ECU) valósítják meg.  A vezérlőegységek fejlesztése során a tesztelés elengedhetetlen része ezen kommunikáció megfigyelése, valamint a vezérlőegység környezetének szimulálása.  A fejlesztés alatt álló ECU és a tesztelő környezetet futtató PC közötti kommunikációt egy házon belül fejlesztett Gateway hardver teszi lehetővé.

A Gateway beágyazott (C nyelven implementált) szoftvere által megvalósított szolgáltatásoknak a PC oldaláról való eléréséhez egy Java nyelven írt driver nyújt segítséget.  A hallgató feladata egy a Java API alacsony szintű szolgáltatásaira épülő felhasználói felület létrehozása Eclipse technológiákra építve (Standard Widget Toolkit, JFace) a magas szintű funkciók támogatásához.  A felületen keresztül lehetőséget kell biztosítani a felhasználó számára a teszt futás közbeni befolyásolására, a tesztparaméterek megváltoztatására.  Ennek megfelelően a felületnek alkalmazkodnia kell az aktuális tesztkonfigurációhoz, melyet az Eclipse Modeling Framework segítségével létrehozott adatmodellekben tárolunk.

A feladat megoldása során a hallgató először megismeri az említett technológiákat, elsajátítja az Eclipse Modeling Frameworkben történő modellezés alapjait, megtervezi a megoldást, majd megvalósítja Java nyelven.  A feladat elkezdéséhez az 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. munkatársaitól, akik az említett eszközt is fejlesztik.  A feladat egyéni érdeklődésnek megfelelően testre szabható.

A feladat megoldása során olyan keresett és piacképes tudás szerezhető, amely közvetlenül kamatoztatható Eclipse alapú fejlesztéseket végző cégeknél és természetesen a hazánkban dinamikusan bővülő autóipari szoftverfejlesztésben.

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

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.

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.

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

Jelleg: 
Elméleti és gyakorlati
Advisor: 
Gergely Pintér
Advisor: 
István Majzik
TDK lehetőség: 
TDK lehetőség
Megismerhető technológiák: 
Lásd a részletes témakiírásban.
Állapot: 
Folyamatban