Modellek ellenőrzése és tesztelése

Hasonló dokumentumok
5. gyakorlat Modellek ellenőrzése és tesztelése Megoldások

Programkonstrukciók A programkonstrukciók programfüggvényei Levezetési szabályok. 6. előadás. Programozás-elmélet. Programozás-elmélet 6.

Modell alapú tesztelés mobil környezetben

Szoftverminőségbiztosítás

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

3. gyakorlat Folyamatmodellek, kooperáló viselkedésmodellek Megoldások

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

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

Algoritmizálás, adatmodellezés tanítása 6. előadás

Feladatgyűjtemény. 4. Modellek ellenőrzése Folyamat statikus analízise Dinamikus analízis teszteléssel... 7

3. gyakorlat Folyamatmodellek, kooperáló viselkedésmodellek Megoldások

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)

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

5. előadás. Programozás-elmélet. Programozás-elmélet 5. előadás

3. gyakorlat Folyamatmodellek, kooperáló viselkedésmodellek Megoldások

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

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

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

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

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

1. Ábrázolja az f(x)= x-4 függvényt a [ 2;10 ] intervallumon! (2 pont) 2. Írja fel az alábbi lineáris függvény grafikonjának egyenletét!

Szoftverminőségbiztosítás

Diszkrét matematika 2.C szakirány

Java programozási nyelv

Komplex számok. A komplex számok algebrai alakja

Szoftver karbantartás

Algoritmuselmélet 12. előadás

Szoftverminőségbiztosítás

Folyamatmodellezés. Budapesti Műszaki és Gazdaságtudományi Egyetem. Hibatűrő Rendszerek Kutatócsoport. Budapesti Műszaki és Gazdaságtudományi Egyetem

9. előadás. Programozás-elmélet. Programozási tételek Elemi prog. Sorozatszámítás Eldöntés Kiválasztás Lin. keresés Megszámolás Maximum.

Programtervezés. Dr. Iványi Péter

Számításelmélet. Második előadás

2) Írja fel az alábbi lineáris függvény grafikonjának egyenletét! (3pont)

Sorozatok, sorok, függvények határértéke és folytonossága Leindler Schipp - Analízis I. könyve + jegyzetek, kidolgozások alapján

Szoftver értékelés és karbantartás

Unit Teszt. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Unit Teszt / 22

Algoritmuselmélet. Bonyolultságelmélet. Katona Gyula Y.

Való szí nű sé gi va ltózó, sű rű sé gfű ggvé ny, élószla sfű ggvé ny

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

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

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

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

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

Analízis II. Analízis II. Beugrók. Készítette: Szánthó József. kiezafiu kukac gmail.com. 2009/ félév

Az informatika elméleti alapjai 2 elővizsga december 19.

ALAPFOGALMAK 1. A reláció az program programfüggvénye, ha. Azt mondjuk, hogy az feladat szigorúbb, mint az feladat, ha

Szoftver tesztelés a gyakorlatban 2

Sorozatok határértéke SOROZAT FOGALMA, MEGADÁSA, ÁBRÁZOLÁSA; KORLÁTOS ÉS MONOTON SOROZATOK

1/1. Házi feladat. 1. Legyen p és q igaz vagy hamis matematikai kifejezés. Mutassuk meg, hogy

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

Modellek ellenőrzése

Szkriptelési feladat megoldása

Matematika A1a Analízis

Digitális technika (VIMIAA02) Laboratórium 1

Szerző Lővei Péter LOPSAAI.ELTE IP-08PAEG/25 Daiki Tennó

Digitális technika (VIMIAA01) Laboratórium 4

Digitális technika (VIMIAA02) Laboratórium 1

Diszkrét matematika I.

definiálunk. Legyen egy konfiguráció, ahol és. A következő három esetet különböztetjük meg. 1. Ha, akkor 2. Ha, akkor, ahol, ha, és egyébként.

Folyamatmodellezés. Rendszermodellezés Budapesti Műszaki és Gazdaságtudományi Egyetem. Hibatűrő Rendszerek Kutatócsoport

Algoritmizálás és adatmodellezés tanítása beadandó feladat: Algtan1 tanári beadandó /99 1

HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport

Szoftverminőségbiztosítás

Modellek fejlesztése

Digitális technika (VIMIAA02) Laboratórium 3

Modellek fejlesztése

Digitális technika (VIMIAA02) Laboratórium 4

Digitális technika (VIMIAA02) Laboratórium 3

Informatikai rendszertervezés

Rendszermodellezés 1. ZH, A csoport, nagyfeladatok

Algoritmusok. Hogyan csináljam?

Szoftverminőségbiztosítás

PROGRAMOZÁS tantárgy. Gregorics Tibor egyetemi docens ELTE Informatikai Kar

Előfeltétel: legalább elégséges jegy Diszkrét matematika II. (GEMAK122B) tárgyból

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

Digitális technika (VIMIAA02) Laboratórium 4

Informatikai rendszertervezés

Diszkrét matematika 2. estis képzés

Algoritmusok helyességének bizonyítása. A Floyd-módszer

The modular mitmót system. DPY kijelző kártya C API

Metrikus terek, többváltozós függvények

Ipari mintavételes PID szabályozóstruktúra megvalósítása

1. Kombinációs hálózatok mérési gyakorlatai

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK KÖZÉP SZINT Függvények

függvény grafikonja milyen transzformációkkal származtatható az f0 : R R, f0(

Dr. Schuster György február / 32

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

Véges állapotú gépek (FSM) tervezése

Diszkrét matematika 2. estis képzés

Kriptográfia 0. A biztonság alapja. Számítás-komplexitási kérdések

Alapszintű formalizmusok

PROGRAMOZÁS MÓDSZERTANI ALAPJAI I. TÉTELEK ÉS DEFINÍCIÓK

Elérhetőségi analízis Petri hálók dinamikus tulajdonságai

Ellenőrző kérdések. 36. Ha t szintű indexet használunk, mennyi a keresési költség blokkműveletek számában mérve? (1 pont) log 2 (B(I (t) )) + t

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

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

Osztott jáva programok automatikus tesztelése. Matkó Imre BBTE, Kolozsvár Informatika szak, IV. Év 2007 január

2. Rekurzió. = 2P2(n,n) 2 < 2P2(n,n) 1

Folyamatmodellezés. Budapesti Műszaki és Gazdaságtudományi Egyetem. Hibatűrő Rendszerek Kutatócsoport. Budapesti Műszaki és Gazdaságtudományi Egyetem

Optimalizálási eljárások GYAKORLAT, MSc hallgatók számára. Analízis R d -ben

Átírás:

Modellek ellenőrzése és tesztelése Rendszermodellezés imsc gyakorlat Budapesti Műszaki és Gazdaságtudományi Egyetem Hibatűrő Rendszerek Kutatócsoport Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék 1

1. Folyamat statikus analízise Ellenőrizzük az alábbi folyamatmodellt. a) Milyen feltételek mellett teljesen specifikált a folyamat? b) Milyen feltételek mellett determinisztikus is a folyamat? c) Milyen feltételek mellett holtpontmentes is a folyamat? d) Milyen további feltételek mellett termináló a folyamat? e) Jólstrukturált-e a folyamat? Ha nem, hogyan lehetne azzá tenni? Segít-e ez a problémákon? 2

Temporális logika P X P F P G P P U Q P P P P P P P P P P P P Q https://en.wikipedia.org/wiki/linear_temporal_logic 3

Az f() függvénnyel szemben a következő követelményeink vannak: R1 R2 R3 Az f() függvénynek minden végrehajtása során legalább egyszer outputot kell kiadnia. Az f() függvénynek tetszőleges inputsorozat esetén terminálnia kell. Az f() függvény végrehajtása során kiadott legutolsó output 4

5

a) Ábrázoljuk folyamatmodellként f() vezérlési folyamát! b) Miért lehetünk biztosak az R1 teljesülésében? 6

c) Miért lehetünk biztosak az R2 teljesülésében? 7

Terminálás bizonyítása Általános séma: 2x+y > 0 Keressünk egy függvényt o A ciklus őrfeltételében szereplő változók felett A következő feltételekkel I. A ciklus minden végrehajtásában szig. mon. csökken 2x+y II. Diszkrét értékkészlete x = x - 1van y = y + 1 III. Alulról korlátos 2x +y = 2(x-1)+y+1 = 2x+y-1 2x+y x = x y = y - 1 2x +y = 2x+(y-1) Jól megalapozott halmaz (well-founded set) 8

Megállási probléma Adott program esetén az a kérdés, hogy tetszőleges bemenet hatására garantáltan terminálódik-e, eldönthetetlen. Praktikusan: o Léteznek programok, amikre bizonyítható, hogy leáll/nem áll le o Léteznek olyanok is, amikre nem lehet bizonyítást adni A fenti tétel bizonyítása vázlatosan: Tfh. Létezik a halts(p) függvény, ami minden programra el tudja dönteni a megállási problémát Ekkor a következő program ellentmondásra vezet: void g() { } if (halts(g)) loop_forever(); 9 https://en.wikipedia.org/wiki/halting_problem

Megállási probléma - példa #loops Nem létezik bizonyítás a következő program terminálására (bár minden eddig vizsgált bemenetre terminált): 10 input https://en.wikipedia.org/wiki/collatz_conjecture

Megállási probléma - példa #loops Nem létezik bizonyítás a következő program terminálására (bár minden eddig vizsgált bemenetre terminált): 11 input https://en.wikipedia.org/wiki/collatz_conjecture

d) (Kiegészítő feladat.) Építsünk olyan állapotgépet, amely az f() függvénnyel ekvivalens módon működik. Modellezzük a readinput() hívásokat input csatornaként, valamint a writeoutput() hívást output csatornaként. Az f() függvény terminálását modellezzük úgy, hogy az automata ad egy speciális outputot, és átmegy egy nyelő (kimenő átmenet nélküli) állapotba. 12

e) Az R3 követelményt teszteléssel ellenőrizzük. A t1 = 2, 3, 5, 7, 11, 13,... input szekvencia a tesztesetünk. Detektálunk-e hibát? 13

f) Számítsunk utasításszintű tesztfedést a programkódon, vagyis hogy az utasítások mekkora hányadát járja be a tesztelt függvény a teszteset végrehajtása során! Hogy jelenik meg ez a mérőszám a vezérlési folyamon? 14

g) Az R3 követelményhez a t2 = h1, 2, 4, 1, 2, 4,... input szekvencia a második tesztesetünk. Detektál-e hibát ez a teszteset? Mekkora a két tesztből álló tesztkészlet együttes utasításfedése? 15

h) (Kiegészítő feladat.) Milyen tesztfedettségi metrika számítható a korábban megépített állapotgép alapján? 16

i) Készítsünk olyan tesztorákulum állapotgépet, amely f() input és output szekvenciái és terminálása alapján el tudja dönteni, hogy az adott lefutás során az R3 követelmény sérült-e! Hogy viselkedik az orákulum a fenti tesztinputra? 17

j) Adjunk meg egy tesztesetet, amely kimutat egy hibát a programban! Milyen elv alapján sejthettük volna meg, hogy a korábban összeállított tesztkészletünk kiegészítésre szorul? 18

k) (Kiegészítő feladat.) Vegyük hozzá a tesztkészlethez a t3 = 0, 1, 2, 3, 4, 5,... és t4 = 1, 2, 3, 4, 5, 6,... input szekvenciákat mint további teszteseteket! Detektálunk-e hibát? Hogyan változnak a tesztfedési számok? 19

l) (Kiegészíto feladat.) Határozzuk meg, hogy pontosan milyen input szekvenciák esetén sérül R3, és javasoljunk hibajavítást! 20