Regisztráció és bejelentkezés

Általános regressziós tesztelő módszer modellalapú fejlesztéshez

A regressziós tesztelés célja, hogy meggyőződjünk arról, hogy a korábban működő funkciók az elvégzett módosítások mellett is működőképesek maradnak. Ezt általában a meglévő tesztkészlet ismételt futtatásával érjük el. A rendszer méretétől és a tesztektől függően ez sok időt vehet igénybe, valamint olyan részeit is ellenőrizheti a rendszernek, ami nem is módosult.

Ennek optimalizálására már léteznek módszerek, ilyen például a tesztkészlet minimalizálás, a tesztkiválasztás, illetve a teszt prioririzálás. Továbbá léteznek eszközök is, melyek ezt elvégzik, bár általában ezek egy programnyelvre működnek.

Modellalapú szoftverfejlesztés esetén azonban a rendszerrel kapcsolatos információt modellekben tároljuk, amikből előállítható forráskód, tesztkód, sőt akár a dokumentáció is. Mivel a modell, mint központi elem jelenik meg a fejlesztés során, így a regressziós tesztelés is elsősorban a modellen végzendő el.

Példaképp tekintsünk egy olyan esetet, amikor modellek alapján generálunk teszteseteket a fejlesztendő rendszerhez. Ilyenkor a rendszerrel kapcsolatos változások a modellekben jelenik meg. Regressziós tesztelés során e változások alapján el kell tudnunk dönteni minden tesztesetről, hogy érdemes-e újrafuttatni. Bár a probléma hasonló a klasszikus, forráskód alapú regressziós teszteléshez, modellalapú rendszerrel kapcsolatban lényegesen kevesebb kutatás található az irodalomban. Ezért a célom egy olyan általános regressziós tesztelő módszer megalkotása, amely többféle bemeneti modellel is működik.

A fenti követelmények és problémák kezelésére:

1. definiáltam egy általános modellt, amely leírja a tesztkiválasztás (RTS) problémáját,

2. bemutattam, hogy a már meglévő optimalizálási algoritmusok módosításával a modellekhez tartozó tesztesetek csoportosíthatóak (újrafuttatandóság szempontjából) egy-egy módosításhoz,

3. kidolgoztam egy módszert, amelyben a rendszer- és a tesztmodellek megfeleltethetőek ennek az általános optimalizációs modellnek.

A módszer kiértékelése érdekében implementáltam azt egy Eclipse alapú prototípusban. Az eszköz képes a változtatások alapján kategorizálni a teszteseteket, illetve kiválasztani közülük néhányat, melyekkel elérhető a maximális tesztfedettség.

Továbbá alkalmaztam a módszert egy esettanulmányban, amelyben a bemeneti modellt a mobil robotok fejlesztése során használt kontextus és konfigurációs modellek jelentik.

A modellbemenetek mellett, a módszer általánosságát hangsúlyozandó, elkészítettem egy kódfedési jelentés (code coverage report) és az optimalizációs modell közötti leképezést is.

szerző

  • Molnár Gábor
    Mérnök informatikus szak, mesterképzés
    mesterképzés (MA/MSc)

konzulens

  • Dr. Micskei Zoltán
    egyetemi docens, Méréstechnika és Információs Rendszerek Tanszék

helyezés

Morgan Stanley II. helyezett