SAF AIS implementációk tesztelésének tapasztalatai Horváth Tamás Sulyán Tibor BME Irányítástechnika és Informatika Tanszék
SAF AIS implementációk tesztelésének tapasztalataiHorváth Tamás, Sulyán Tibor (BME IIT) Szoftvertechnológiai Fórum, / 37 Bevezetés Service Availability Forum Application Interface Specification Egységes szoftverplatform HA szolgáltatásoknak Széles támogatottság Egyre több SAF AIS implementáció Nyílt forrás: OpenAIS, OpenSAF, OpenClovis Zárt forrás: MontaVista, HP ServiceGuard... Egyre bővülő specifikáció oldal
SAF AIS implementációk tesztelésének tapasztalataiHorváth Tamás, Sulyán Tibor (BME IIT) Szoftvertechnológiai Fórum, / 37 Bevezetés Tesztelés Házon belül Nyílt eszközzel Cél: egy új tesztrendszer kialakítása Átfogóbb tesztelhetőség Bővíthetőség Ericsson Magyarország Kft. - BME IIT közös projekt Egy implementáció vizsgálata Egy tesztrendszer megtervezése és implementálása Több implementáció tesztelése az új rendszerrel
SAF AIS implementációk tesztelésének tapasztalataiHorváth Tamás, Sulyán Tibor (BME IIT) Szoftvertechnológiai Fórum, / 37 Tartalom Az AIS áttekintése Tesztelési módszerek és eszközök Egy implementáció tesztelése Az új tesztrendszer bemutatása Fejlesztési irányok
SAF AIS implementációk tesztelésének tapasztalataiHorváth Tamás, Sulyán Tibor (BME IIT) Szoftvertechnológiai Fórum, / 37 Az AIS áttekintése Tesztelési módszerek és eszközök Egy implementáció tesztelése Az új tesztrendszer bemutatása Fejlesztési irányok
SAF AIS implementációk tesztelésének tapasztalataiHorváth Tamás, Sulyán Tibor (BME IIT) Szoftvertechnológiai Fórum, / 37 AIS áttekintés HA Service Message Service Message Service Checkpoint Service Checkpoint Service Cluster Membership Service Cluster Membership Service Lock Service Lock Service Event Service Event Service Availability Management Framework Process 1 Process 2 Process 3
SAF AIS implementációk tesztelésének tapasztalataiHorváth Tamás, Sulyán Tibor (BME IIT) Szoftvertechnológiai Fórum, / 37 AIS áttekintés – komponensek
SAF AIS implementációk tesztelésének tapasztalataiHorváth Tamás, Sulyán Tibor (BME IIT) Szoftvertechnológiai Fórum, / 37 AIS áttekintés – kommunikáció dispatch loop
SAF AIS implementációk tesztelésének tapasztalataiHorváth Tamás, Sulyán Tibor (BME IIT) Szoftvertechnológiai Fórum, / 37 Az AIS áttekintése Tesztelési módszerek és eszközök Egy implementáció tesztelése Az új tesztrendszer bemutatása Fejlesztési irányok
SAF AIS implementációk tesztelésének tapasztalataiHorváth Tamás, Sulyán Tibor (BME IIT) Szoftvertechnológiai Fórum, / 37 Konformancia tesztek API konformancia Funkcionális tesztek Teljesítménytesztek A funkcionalitás minőségét mérik Robosztusság tesztek A környezet meghibásodásai hogyan hatnak a rendszerre Teszttípusok
SAF AIS implementációk tesztelésének tapasztalataiHorváth Tamás, Sulyán Tibor (BME IIT) Szoftvertechnológiai Fórum, / 37 API konformancia tesztek Cél: Függvények implementáltak Adott bemenetre megfelelő kimenetet ad Módszer: paraméterek megválasztása paraméterkombinációk tesztelése lehetséges hívási sorrendek tesztelése
SAF AIS implementációk tesztelésének tapasztalataiHorváth Tamás, Sulyán Tibor (BME IIT) Szoftvertechnológiai Fórum, / 37 SAFTest SAFTest ( AIS és HPI tesztek Tesztesetek: C programok, melyek az AIS API-t használják Teszteredmények: a programok visszatérési értékei Tesztkörnyezet: A C programokat fordító és futtató rendszer Makefile-ok Az eredményeket összegyűjtő és prezentáló shell scriptek Metaadatok
SAF AIS implementációk tesztelésének tapasztalataiHorváth Tamás, Sulyán Tibor (BME IIT) Szoftvertechnológiai Fórum, / 37 SAFTest metaadatok Call saClmSelectionObjectGet(), before saClmFinalize() is invoked, check if the returned selection object is valid. Call saClmSelectionObjectGet() after invoking saClmFinalize(), check if the returned selection object is invalid.
SAF AIS implementációk tesztelésének tapasztalataiHorváth Tamás, Sulyán Tibor (BME IIT) Szoftvertechnológiai Fórum, / 37 A SAFTest jellemzői Jó API-konformancia tesztkörnyezet Automatikus futtatás, kiértékelés Könnyen konfigurálható (lényegében Makefile paraméterezéssel) Implementáció-független Csak API-konformancia tesztek futtathatók Nem teszteli a SAF cluster-szolgáltatásait és funkcióit
SAF AIS implementációk tesztelésének tapasztalataiHorváth Tamás, Sulyán Tibor (BME IIT) Szoftvertechnológiai Fórum, / 37 Funkcionális tesztek Nem csak a funkció meglétét, hanem a megvalósítást is vizsgálják Komplexebb teszteket igényel Több node, több kliens futtatása Erre a saftest már nem képes SAFTest-NG ( Cél: funkcionális- és teljesítménytesztek futtatására is alkalmas tesztkörnyezet
SAF AIS implementációk tesztelésének tapasztalataiHorváth Tamás, Sulyán Tibor (BME IIT) Szoftvertechnológiai Fórum, / 37 SAFTest-NG Általánosabb eszköz konformancia tesztek (funkcionalitás) teljesítménytesztek Jellemzők A tesztesetek clusteren futnak Teljesen automatikus végrehajtás Több gyártó támogatása implementation hooks
SAF AIS implementációk tesztelésének tapasztalataiHorváth Tamás, Sulyán Tibor (BME IIT) Szoftvertechnológiai Fórum, / 37 A SAFTest-NG felépítése
SAF AIS implementációk tesztelésének tapasztalataiHorváth Tamás, Sulyán Tibor (BME IIT) Szoftvertechnológiai Fórum, / 37 SAFTest-NG teszteset def run() d = CLMTestDriver.getRandomLongLivedDriver(nil) resource = d.createShortLivedTestResource() d.init(resource, true, false, "SA_DISPATCH_ALL", SAFTestUtils.SA_AIS_OK) d.finalize(resource, SAFTestUtils.SA_AIS_OK) d.clusterNodeGet(resource, "SA_CLM_LOCAL_NODE_ID", "SA_TIME_MAX", false, nil, SAFTestUtils.SA_AIS_ERR_BAD_HANDLE) d.deleteTestResource(resource) passed() end
SAF AIS implementációk tesztelésének tapasztalataiHorváth Tamás, Sulyán Tibor (BME IIT) Szoftvertechnológiai Fórum, / 37 A SAFTest-NG jellemzői Jó architektúra Leállt a rendszer fejlesztése Csak a CLM és LCK területeket támogatja Költséges a bővítés Nincs megoldva a teszteredmények összegyűjtése
SAF AIS implementációk tesztelésének tapasztalataiHorváth Tamás, Sulyán Tibor (BME IIT) Szoftvertechnológiai Fórum, / 37 Az AIS áttekintése Tesztelési módszerek és eszközök Egy implementáció tesztelése Az új tesztrendszer bemutatása Fejlesztési irányok
SAF AIS implementációk tesztelésének tapasztalataiHorváth Tamás, Sulyán Tibor (BME IIT) Szoftvertechnológiai Fórum, / 37 Egy implementáció tesztelése OpenAIS AMF, EVT, CLM, CKPT Saját fejlesztésű tesztrendszer Prototípus jellegű Funkcionális tesztelés Cél Egy AIS implementáció állapotának felmérése Tapasztalatszerzés későbbi tesztrendszerek megtervezéséhez
SAF AIS implementációk tesztelésének tapasztalataiHorváth Tamás, Sulyán Tibor (BME IIT) Szoftvertechnológiai Fórum, / 37 Architektúra Vezérelt komponensek (Local Test Component) AIS API hívásokat hajtanak végre Információkat továbbít a vezérlő komponensnek Minden node-hoz legalább egy ilyen tartozik Vezérlő komponens (Test Coordinator) Tesztesetek végrehajtása Eredmények összegyűjtése Cluster-műveletek végrehajtása Tesztelést támogató könyvtár Elosztott naplózás
SAF AIS implementációk tesztelésének tapasztalataiHorváth Tamás, Sulyán Tibor (BME IIT) Szoftvertechnológiai Fórum, / 37 Architektúra
SAF AIS implementációk tesztelésének tapasztalataiHorváth Tamás, Sulyán Tibor (BME IIT) Szoftvertechnológiai Fórum, / 37 Tesztesetek specifikálása AzonosítóCKPT03 NévCheckpoint aszinkron megnyitása Tesztelés céljaA CKPT kétféle megynyitási módjának tesztelése. Specifikáció-részletCKPT Futtatási környezetG konfiguráció Tesztforgatókönyv comp1 komponensen aszinkron módon létrehozunk egy checkpointot végtelen érvényességi idővel, majd bezárjuk. comp3 komponensen töröljük a checkpointot. Lehetséges paraméterek Checkpoint típusa (szinkron vagy aszinkron) Várt eredmény A teszt sikeresen lefut. A megnyitáskor lekérdezett checkpoint státusz megegyezik a létrehozáskor megadottakkal.
SAF AIS implementációk tesztelésének tapasztalataiHorváth Tamás, Sulyán Tibor (BME IIT) Szoftvertechnológiai Fórum, / 37 Teszteredmények Több kritikus hiba az implementációban A funkcionalitás helyenként eltér a szabványban írtaktól Sok funkció még nincs implementálva A rendszer finomhangolására nincs megfelelő interfész Kevés a dokumentáció
SAF AIS implementációk tesztelésének tapasztalataiHorváth Tamás, Sulyán Tibor (BME IIT) Szoftvertechnológiai Fórum, / 37 Teszteredmények Tesztesetek száma113100% Sikeres futás53 47% Sikeres futás kisebb konformancia-hibákkal65% A funkcionalitás nem implementált31 27% Sikertelen futás2119% A teszteredmény nem megállapítható2 2%
SAF AIS implementációk tesztelésének tapasztalataiHorváth Tamás, Sulyán Tibor (BME IIT) Szoftvertechnológiai Fórum, / 37 Az AIS áttekintése Tesztelési módszerek és eszközök Egy implementáció tesztelése Az új tesztrendszer bemutatása Fejlesztési irányok
SAF AIS implementációk tesztelésének tapasztalataiHorváth Tamás, Sulyán Tibor (BME IIT) Szoftvertechnológiai Fórum, / 37 Tapasztalatok Érdemes tesztelni Az automatizáltság mértéke: SAFTestSAFTest-NG Saját rendszer konfigurálás-++ vezérlés-+/- kommunikáció-+/- kiértékelés+-+/-
SAF AIS implementációk tesztelésének tapasztalataiHorváth Tamás, Sulyán Tibor (BME IIT) Szoftvertechnológiai Fórum, / 37 Az új rendszer jellemzői TTCN-3 alapú rendszer szabványos leírás vezérlés, kiértékelés Átfogó tesztelés Többféle teszttípus támogatása konformancia teljesítmény robosztusság Gyors alkalmazkodás Új szolgáltatási területek Új verziók
SAF AIS implementációk tesztelésének tapasztalataiHorváth Tamás, Sulyán Tibor (BME IIT) Szoftvertechnológiai Fórum, / 37 Az új rendszer architektúrája
SAF AIS implementációk tesztelésének tapasztalataiHorváth Tamás, Sulyán Tibor (BME IIT) Szoftvertechnológiai Fórum, / 37 Az új rendszer komponensei Area-Specific Port Függvények megvalósítása Decoding and encoding Dispatcher Session kezelés Dispatch loop végrehajtása Local Controller Konfigurációs műveletek Komponensek tesztesetek végrehajtása
SAF AIS implementációk tesztelésének tapasztalataiHorváth Tamás, Sulyán Tibor (BME IIT) Szoftvertechnológiai Fórum, / 37 Megoldandó problémák Több gyártó implementációinak tesztelése SAFTest-NG-hez hasonló rendszer A szabvány követése Új területek Új verziók Tesztesetek Módosítás vagy új tesztesetek írása SUT Adapterek Generálás
SAF AIS implementációk tesztelésének tapasztalataiHorváth Tamás, Sulyán Tibor (BME IIT) Szoftvertechnológiai Fórum, / 37 SUT Adapterek generálása Területenként generálható Azonos programozási modell Különböző API Két lépés C → TTCN kézzel (egyelőre) TTCN → SUT Adapter generálás
SAF AIS implementációk tesztelésének tapasztalataiHorváth Tamás, Sulyán Tibor (BME IIT) Szoftvertechnológiai Fórum, / 37 Az AIS áttekintése Tesztelési módszerek és eszközök Egy implementáció tesztelése Az új tesztrendszer bemutatása Fejlesztési irányok
SAF AIS implementációk tesztelésének tapasztalataiHorváth Tamás, Sulyán Tibor (BME IIT) Szoftvertechnológiai Fórum, / 37 Kitekintés Közeli célok A prototípus rendszer elkészítése A korábbi tesztesetek implementálása Összevetés a korábbi eredményekkel A prototípus rendszer továbbfejlesztése Több implementáció letesztelése A teszt port generátor továbbfejlesztése
SAF AIS implementációk tesztelésének tapasztalataiHorváth Tamás, Sulyán Tibor (BME IIT) Szoftvertechnológiai Fórum, / 37 Kitekintés Távoli célok Funkcionális teszt-specifikáció HPI Compilance Test Suite, Átfogó teszteset-készlet implementálása TTCN-3 nyelven IPv6, SIP tesztrendszerek,
Köszönöm a figyelmet!