A modellellenőrzés érdekes alkalmazása: Tesztgenerálás modellellenőrzővel



Hasonló dokumentumok
A modellellenőrzés érdekes alkalmazása: Tesztgenerálás modellellenőrzővel

Automatikus tesztgenerálás modell ellenőrző segítségével

Modell alapú tesztelés

Modell alapú tesztelés

Modell alapú tesztelés

Modell alapú tesztelés

Alapszintű formalizmusok

Korlátos modellellenőrzés. dr. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék

Hatékony technikák modellellenőrzéshez: Korlátos modellellenőrzés. dr. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék

Részletes tervek ellenőrzése

Rendszermodellezés. Modellellenőrzés. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

Az UPPAAL egyes modellezési lehetőségeinek összefoglalása. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék

Modell alapú tesztelés mobil környezetben

Részletes szoftver tervek ellenőrzése

Modellellenőrzés. dr. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék

Szoftver-modellellenőrzés absztrakciós módszerekkel

Modellellenőrzés. dr. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék

Gyakorló feladatok: Formális modellek, temporális logikák, modellellenőrzés. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék

Formális verifikáció Modellezés és modellellenőrzés

Modell alapú tesztelés: célok és lehetőségek

Felhasználói felületek tesztelése

Felhasználói felületek tesztelése

Forráskód generálás formális modellek alapján

Formális modellezés és verifikáció

Modellellenőrzés a vasút automatikai rendszerek fejlesztésében. XIX. Közlekedésfejlesztési és beruházási konferencia Bükfürdő

Valószínűségi modellellenőrzés Markov döntési folyamatokkal

Specifikáció alapú teszttervezési módszerek

Specifikáció alapú teszttervezési módszerek

Automatikus kódgenerálás helyességének ellenőrzése

Szoftverminőségbiztosítás

Hatékony technikák modellellenőrzéshez: Szimbolikus technikák (ROBDD)

Hatékony technikák modellellenőrzéshez: Szimbolikus technikák (ROBDD)

Alapszintű formalizmusok

Alapszintű formalizmusok

A formális módszerek szerepe

Követelmények formalizálása: Temporális logikák. dr. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék

Zárthelyi mintapéldák. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék

Rendszermodellezés: házi feladat bemutatás

Intervenciós röntgen berendezés teljesítményszabályozójának automatizált tesztelése

MODELL ALAPÚ AUTOMATIKUS

Mesterséges intelligencia alapú regressziós tesztelés

Hardver és szoftver rendszerek verifikációja Röviden megválaszolható kérdések

Magasabb szintű formalizmus: Állapottérképek (statecharts) dr. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék

Formális módszerek GM_IN003_1 Program verifikálás, formalizmusok

R3-COP. Resilient Reasoning Robotic Co-operating Systems. Autonóm rendszerek tesztelése egy EU-s projektben

Modellek ellenőrzése és tesztelése

Bevezetés az informatikába

Informatikai rendszertervezés

A formális módszerek szerepe

Időzített átmeneti rendszerek

Struktúra alapú teszttervezési módszerek

Szoftver modul/unit tesztelés

A szoftver-folyamat. Szoftver életciklus modellek. Szoftver-technológia I. Irodalom

Autóipari beágyazott rendszerek. Komponens és rendszer integráció

Informatikai rendszertervezés

Formális módszerek. A formális modellezés és a formális verifikáció alapjai. dr. Bartha Tamás BME Közlekedés- és Járműirányítási Tanszék

Elosztott adatbázis-kezelő formális elemzése

Szoftverminőségbiztosítás

Hardver és szoftver rendszerek verifikációja Röviden megválaszolható kérdések

2. gyakorlat: Részletes tervek és forráskód ellenőrzése

Modellező eszközök, kódgenerálás

A formális módszerek szerepe

Futásidőbeli verifikáció

Teszttervezés. Majzik István, Micskei Zoltán. Integrációs és ellenőrzési technikák (VIMIA04) Méréstechnika és Információs Rendszerek Tanszék

JUnit. JUnit használata. IDE támogatás. Parancssori használat. Teszt készítése. Teszt készítése

Struktúra alapú teszttervezési módszerek

Formális módszerek. A formális modellezés és a formális verifikáció alapjai. dr. Bartha Tamás BME Közlekedés- és Járműirányítási Tanszék

Modellezési alapismeretek

Megoldások a mintavizsga kérdések a VIMIAC04 tárgy ellenőrzési technikák részéhez kapcsolódóan (2017. május)

Sztochasztikus temporális logikák

A formális módszerek szerepe a rendszerek biztonságának növelésében

Magasabb szintű formalizmus: Állapottérképek (statecharts) dr. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék

Modellinformációk szabványos cseréje. Papp Ágnes, Debreceni Egyetem EFK

Mesterséges Intelligencia MI

Miskolci Egyetem Alkalmazott Informatikai Intézeti Tanszék A minőségbiztosítás informatikája. Készítette: Urbán Norbert

Programfejlesztési Modellek

A szoftver-folyamat. Szoftver életciklus modellek. Szoftver-technológia I. Irodalom

Teszttervezés. Majzik István, Micskei Zoltán. Integrációs és ellenőrzési technikák (VIMIA04) Méréstechnika és Információs Rendszerek Tanszék

Formális módszerek GM_IN003_1 Bevezetés

Modellek ellenőrzése

2.előadás. alapfogalmak, formális definíció

Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT

Digitális technika VIMIAA01 9. hét

Folyamatmodellezés (BPMN), adatfolyamhálók

Időt kezelő modellek és temporális logikák

Szoftver karbantartási lépések ellenőrzése

Összefoglaló. Modell alapú automatikus tesztgenerálás

Modellezési alapismeretek

Követelmények formalizálása: Temporális logikák. dr. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék

Elosztott biztonságkritikus rendszerek modellvezérelt fejlesztése

A programozás alapjai előadás. Amiről szólesz: A tárgy címe: A programozás alapjai

Elérhetőségi probléma egyszerűsítése: Állapottér és struktúra redukció Petri-háló alosztályok

Tartalom Platform-független modellezés Alkalmazás-modellezés A DECOS hardver platform Platform modellezés Hardver-szoftver integráció Implementáció 2

Az előadás vázlata. A SPIN modellellenőrző rendszer. Motivációk. (,,Ha a Microsoft autókat gyártana )

Nagy bonyolultságú rendszerek fejlesztőeszközei

Verifikáció és validáció Általános bevezető

A szoftverellenőrzés szerepe

A modell-ellenőrzés gyakorlata UPPAAL

Szoftverminőségbiztosítás

OpenCL alapú eszközök verifikációja és validációja a gyakorlatban

Átírás:

A modellellenőrzés érdekes alkalmazása: Tesztgenerálás modellellenőrzővel Majzik István Micskei Zoltán BME Méréstechnika és Információs Rendszerek Tanszék 1

Modell alapú fejlesztési folyamat (részlet) Formális verifikáció (modellellenőrzés) Automatikus kódgenerálás Formális rendszermodell (forráskód specifikációja) Kézi kódolás Implementáció (forráskód) Tesztgenerálás Futtatható tesztkészlet Specifikációnak megfelelő tesztek 2

Használati esetek Kézi kódolás esetén: Konformancia ellenőrzés Modell tesztgenerálás Absztrakt tesztesetek kézi kódolás Implementáció (automatikus) tesztelés leképzés Konkrét tesztesetek Automatikus kódgenerálás esetén: Validáció kódgenerálás Modell Implementáció tesztgenerálás kézi validálás Absztrakt tesztesetek leképzés Konkrét tesztesetek 3

Előfeltételek Állapot alapú, eseményvezérelt működés KS, LTS, KTS az alapszintű formalizmusok Fedési kritériumok szerinti tesztelés Állapotfedés: A tesztekkel járjunk be minden állapotot Átmenetfedés: A tesztekkel járjunk be minden átmenetet Alapötlet: Egy teszt: Egy megfelelő állapottér bejárási szekvencia Cél: A modellellenőrző járja be az állapotteret! Irányítsuk úgy, hogy a modellellenőrző által generált ellenpélda legyen a teszteset Teszt elfogadhatósági kritérium Modell mint referencia alapján származtatható 4

Hogyan használható a modell ellenőrző? keyon LineOk keyrdy PowerOff Error Ready keyoff LineWeak keyack Kritérium megadása: A LineWeak állapotot soha sem lehet elérni: EF LineWeak 6

Hogyan használható a modell ellenőrző? Az eszköz ezzel az ellenpéldával demonstrálja, hogy a követelmény nem teljesül, az állapot elérhető. keyon LineOk keyrdy PowerOff Error Ready keyoff LineWeak keyack Ez viszont pontosan egy, a LineWeak állapotot lefedő teszteset! 8

Automatikus tesztgenerálás Mérnöki modell Matematikai modell Modellellenőrző Teszteset Tesztelési kritérium TL formulák 9

Egy megvalósítás UML állapottérkép UPPAAL modell Modellellenőrző XML teszteset Fedési kritérium CTL formulák 14

Vezérlés alapú fedettségi kritériumok Minden állapot és átmenet egyértelműen azonosítva: Egyedi L(s) címke illetve (a) akció Állapot fedés: KS vagy KTS modellen Minden s állapotra: EF L(s) vagy EF (L(s) EF start) start egy kezdőállapot címkéje, a következő teszt indításához Átmenet fedés: LTS vagy KTS modellen Minden t átmenetre, ahol (s,a,s ) : EF (a) 15

Korlátozások Modellellenőrző: Csak egy ellenpéldát generál Célja a hatékony állapottér bejárás: Nem feltétlenül a legrövidebb tesztesetet kapjuk! Sok modellellenőrző konfigurálható: Szélességi bejárás kérhető Mélységi bejáráshoz mélységkorlát megadható Rövidebb ellenpélda iteratívan kereshető Legrövidebb illetve legkisebb tesztkészlet kiválasztása: NP-teljes probléma! Absztrakt és konkrét tesztesetek közt leképezés kell Absztrakt teszt eset: A modell bejárása (ellenpélda) Konkrét teszt eset: Hívási szekvencia adott teszt környezetben Nemdeterminisztikus modellek esetén nehézségek 16

Példa: Tesztgenerálási eredmények (állapotfedés) Options (compile or run-time) Time required for test generation Length of the test sequences Longest test sequence -i 22m 32.46s 17 3 -dbfs 11m 48.83s 17 3 -i -m1000 4m 47.23s 17 3 -I 2m 48.78s 25 6 default 2m 04.86s 385 94 -I -m1000 1m 46.64s 22 4 -m1000+ 1m 25.48s 97 16 -m200 -w24 46.7s 17 3 Paraméterek a SPIN modellellenőrzőhöz: -i iteratív, -I közelítő iteratív -dbfs: szélességi keresés -m mélységi keresés korlátja -w hash tábla korlátja Mobiltelefon vezérlését leíró modell 10 állapot, 21 átmenet 17

Példa: Szinkronizációs protokoll tesztelése Bitek szinkronizálása egy elosztott rendszerben 5 objektum, 31 állapot, 174 átmenet 2e+08 bejárandó állapot Más technikák is kellenek: Mélységkorlát bevezetése Szűkítések a modellben: FIFO kommunikációs csatorna méretének korlátozása Korábban lefedett kritériumok kihagyása További heurisztikák alkalmazása: Mélyen fekvő állapotok lefedése előbb Állapottér levágása 18

Példa: Teljes állapotfedésű tesztek Szinkronizációs protokoll 19

Kiterjesztés valósidejű rendszerekre Óra változók: Időfüggő viselkedést modellezhetünk Időzített automaták használata Modellellenőrző: UPPAAL 20

Példa: Generált tesztek State: ( input.sending mobile.poweron mobile1.lineok mobile2.callwait ) t=0 inputevent=28 outputevent=14 in_poweron=1 #depth=5 Delay: 6 A teszt időzítési viszonyok is szerepelnek a generált tesztesetben State: ( input.sending mobile.poweron mobile1.lineok mobile2.callwait ) t=6 inputevent=28 outputevent=14 in_poweron=1 #depth=5 Transitions: input.sending->input.sendinput { 1, inputchannel!, 1 } mobile2.callwait->mobile2.voicemail { inputevent == evkeyyes && t > 5 && in_poweron, inputchannel?, 1 } 21

Tesztgenerálás SAT alapú modellellenőrzővel Logikai függvény konstruálása: Állapottér kibontása k lépésben a kezdőállapotból Teszt kritérium megadása: TG formula, pl.: Adott állapot elérése Adott állapotátmenet végrehajtása Adott modellrészlet bejárása, FQL nyelv teszt célokhoz (FSHELL): in /code.c/ cover @line(6),@call(f1) passing @file(c1.c) \ @call(f2) 0 0 1 k SAT ( ) path (, s,..., ) I s s s TG Kezdőállapot Állapottér kibontása Teszt cél Ha található behelyettesítés, akkor az egy tesztet ad: A teszt teljesíti a TG kritériumot A legrövidebb teszt 0-ról induló iteráció során található meg 22

Összefoglalás Tesztgenerálás fedési kritériumokhoz Állapotok fedése Átmenetek fedése Klasszikus modellellenőrzők használata Fedési kritériumhoz temporális logikai kifejezéskészlet Ellenpéldák adják a teszt eseteket A modellellenőrző konfigurálása fontos SAT alapú (korlátos) modellellenőrző használata Fedési kritérium (teszt cél) mint predikátum SAT eredménye (behelyettesítés) adja a teszt esetet 23