Robusztusság tesztelés

Hasonló dokumentumok
Modell alapú tesztelés mobil környezetben

Speciális tesztelési feladatok

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

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

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

Hibatűrés. Majzik István Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

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

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

A hibakezelés tesztelése: Hibainjektálás

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

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

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

Informatikai technológiák szakirány Rendszertervezés ágazat

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

Szoftverminőségbiztosítás

Mintapélda: Rendszertesztelés a SAFEDMI projektben

A szoftver tesztelés alapjai

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

Tesztelési szintek Tesztautomatizálás

A fejlesztési szabványok szerepe a szoftverellenőrzésben

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

Biztonságkritikus rendszerek Gyakorlat: Architektúrák

Gyakorlat és házi feladat tájékoztató

Digitális technika (VIMIAA02) Laboratórium 1

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

Digitális technika (VIMIAA02) Laboratórium 1

Komponens alapú programozás Bevezetés

Szoftver-technológia II. Szoftver újrafelhasználás. (Software reuse) Irodalom

Szoftver újrafelhasználás

MŰSZAKI TESZTTERVEZÉSI TECHNIKÁK STRUKTÚRA ALAPÚ, VAGY FEHÉRDOBOZ TECHNIKÁK TAPASZTALAT ALAPÚ TECHNIKÁK

Univerzális munkafolyamat szimulátor

Információ-architektúra

Komplex terheléses tesztmegoldások a Mobil PS és CS gerinchálózaton

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

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

A TESZTELÉS ALAPJAI MIÉRT SZÜKSÉGES A TESZTELÉS? MI A TESZTELÉS? ÁLTALÁNOS TESZTELÉSI ALAPELVEK

Rendszermodellezés: házi feladat bemutatás

A J2EE fejlesztési si platform (application. model) 1.4 platform. Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem

Komponens alapú fejlesztés

Szolgáltatásintegráció (VIMIM234) tárgy bevezető

Struktúra alapú teszttervezési módszerek

V & V Feladatok. V & V Feladatok

DCOM Áttekintés. Miskolci Egyetem Általános Informatikai Tanszék. Ficsor Lajos DCOM /1

MŰSZAKI TESZTTERVEZÉSI TECHNIKÁK A TESZT FEJLESZTÉSI FOLYAMATA A TESZTTERVEZÉSI TECHNIKÁK KATEGÓRIÁI

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

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

Szolgáltatásintegráció (VIMIM234) tárgy bevezető

Elosztott rendszer architektúrák

(appended picture) hát azért, mert a rendszerek sosem

A Java EE 5 plattform

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

Encom EDS800/EDS1000 frekvenciaváltó alapparaméterei

Szoftver-mérés. Szoftver metrikák. Szoftver mérés

Digitális technika (VIMIAA02) Laboratórium 3

V. Félév Információs rendszerek tervezése Komplex információs rendszerek tervezése dr. Illyés László - adjunktus

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

Szoftverminőségbiztosítás

Digitális technika (VIMIAA02) Laboratórium 3

Struktúra alapú teszttervezési módszerek

KÖFOP VEKOP A jó kormányzást megalapozó közszolgálat-fejlesztés

BMEVIHIM134 Hálózati architektúrák NGN menedzsment vonatkozások: II. Üzemeltetés-támogatás és üzemeltetési folyamatok

A KUTATÁS EREDMÉNYEI ZÁRÓJELENTÉS

Osztott Objektumarchitektúrák

Nagy bonyolultságú rendszerek fejlesztőeszközei

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

OO rendszerek jellemzői

Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem

Szoftverminőségbiztosítás

Név: Neptun kód: Pontszám:

Szoftverminőségbiztosítás

A szolgáltatásbiztonság alapfogalmai

Folyamatmodellezés és eszközei. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

Rendszertervezés ágazat

WebService tesztelés. SOAPui Pro, GreenPepper és Confluence használatával. Verhás & Verhás Szoftver Manufaktúra KNOW-HOW

8.3. AZ ASIC TESZTELÉSE

Felhasználói felületek tesztelése

TSIMMIS egy lekérdezés centrikus megközelítés. TSIMMIS célok, technikák, megoldások TSIMMIS korlátai További lehetségek

Rőczei Gábor Szeged, Networkshop

TANÚSÍTVÁNY. tanúsítja, hogy az. InfoScope Kft. által kifejlesztett. Attribútum tanúsítványok érvényességét ellenőrző SDK InfoSigno AC SDK v1.0.0.

Osztott alkalmazások fejlesztési technológiái Áttekintés

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

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

A szoftverfejlesztés eszközei

Kihívások és trendek mesterséges intelligencia alapú rendszerek tesztelésében

Biztonsági folyamatirányító. rendszerek szoftvere

Fogalomtár Etikus hackelés tárgyban Azonosító: S2_Fogalomtar_v1 Silent Signal Kft. Web:

TANÚSÍTVÁNY. tanúsítja, hogy a E-Group Magyarország Rt. által kifejlesztett és forgalmazott. Signed Document expert (SDX) Professional 1.

Több platform egy kódbázis Tanulságok a Tresorittól. Budai Péter, vezető fejlesztő

Bokor Péter. DECOS Nemzeti Nap október 15. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

Miért is transzformáljunk modelleket? Varró Dániel

Folyamatmodellezés és eszközei. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

ISA szimulátor objektum-orientált modell (C++)

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

Szoftverminőségbiztosítás

Hadházi Dániel.

Szoftver modul/unit tesztelés

Felhők teljesítményelemzése felhő alapokon

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

Norway Grants. Az akkumulátor mikromenedzsment szabályozás - BMMR - fejlesztés technológiai és műszaki újdonságai. Kakuk Zoltán, Vision 95 Kft.

S01-8 Komponens alapú szoftverfejlesztés 2

Átírás:

Szoftverellenőrzési technikák (vimim148) Robusztusság tesztelés Majzik István és Micskei Zoltán Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék http://www.inf.mit.bme.hu/ 1

Tartalomjegyzék Definíciók Robusztusság Robusztusság tesztek Teszt bemenetek Teszt eredmények értékelése Jellegzetes teszt eszközök Ballista JCrasher Mintapélda SA Forum AIS API robusztusság tesztelése 2

Definíciók Robusztusság (IEEE Std 24765:2010): The degree to which a system or component can function correctly in the presence invalid inputs or stressful environmental conditions Annak jellemzője, mennyire helyesen működik a rendszer rendkívüli bemenetek vagy nagy igénybevételt jelentő környezeti feltételek mellett. Robusztusság hiba: Helytelen (nem elvárt) működés rendkívüli bemenetek és környezeti feltételek esetén Robusztusság tesztelés: A robusztusság hibák aktiválása a tesztelés során 3

Robusztusság tesztelés Funkcionális tesztelés Specifikációnak megfelelő működés vizsgálata Érvényes bemenet / elvárt kimenet Robusztusság tesztelés Specifikációtól eltérő működés (képtelenség) vizsgálata Extrém vagy hibás bemenet / elvárt kezelés, hibajelzés 4

Tartalomjegyzék Definíciók Robusztusság Robusztusság tesztek Teszt bemenetek Teszt eredmények értékelése Jellegzetes teszt eszközök Ballista JCrasher Mintapélda SA Forum AIS API robusztusság tesztelése 5

Bemenetek robusztusság teszteléshez Véletlen bemenetek Van esélye robusztusság hiba aktiválásának Egyszerű teszt adat generálás, de kis hatékonyság Típus-specifikus bemenetek Típustól függően előre kijelölt extrém értékek Komplex kombinációk lehetségesek Objektumok mint bemenetek NULL értékek használhatók extrém értékként Konstruktor hívása szükséges a létrehozáshoz Scenario mutációval generált bemenetek Az extrém bemenetek állapottól függően adhatók ki Sorrendi, kihagyási, időzítési hibák is definiálhatók 6

Bemenetek generálása típus-specifikus szabályokkal 7

Munkaterhelés (workload) a tesztelés során Valódi terhelés Pl. regisztrált scenariok visszajátszása Generált realisztikus terhelés Jellegzetes scenariok generálása Jobban hordozható, kézbentartható Szintetikus terhelés Jellemző használat: Tervezett, névleges terhelés Túlterhelés 8

Robusztusság teszt kimenetek értékelése Specifikációtól eltérő működés Sokszor nincs előírt érték Elvárt eredmények egyszerűsített kezelése szükséges Klasszikus kategóriák: CRASH Catastrophic: A teljes rendszer összeomlik / újraindul Restart: Az adott alkalmazás újraindulása Abort: Az adott alkalmazás leáll Silent: Hibajelzés nélküli érvénytelen művelet Hindering: Érvénytelen hibakód Nem robusztusság hiba: Érvényes hibakód visszaadása 9

Tartalomjegyzék Definíciók Robusztusság Robusztusság tesztek Teszt bemenetek Teszt eredmények értékelése Jellegzetes teszt eszközök Típus-specifikus tesztek: Ballista Objektumok teszteléshez: JCrasher Mintapélda SA Forum AIS API robusztusság tesztelése 10

Jellegzetes eszközök Hardver hibainjektáló eszközök Közvetett robusztusság tesztelés: Környezet komponenseibe injektált hibák hatása vizsgálható a tesztelt komponensre Belső hibák injektálása nem robusztusság tesztelés! Kombinatorikus robusztusság tesztelő eszközök: Fuzz: Véletlenszerű bemenetek konzolos alkalmazásokhoz Ballista: Típus-specifikus tesztelés POSIX, CORBA hívásokhoz JCrasher: Extrém objektumok Java alkalmazásokhoz Forráskód mutációs eszközök Funkcionális teszt szekvenciák mutálhatók Szekvencia vagy hívási paraméter megváltoztatása Benchmark eszközök Benchmark: Reprezentatív, megismételhető vizsgálat DBench: Szolgáltatásbiztonság benchmarkok 11

Típus-specifikus tesztelés: Ballista alapelvek API tesztelés: Forrás: http://www.ece.cmu.edu/~koopman/ballista/index.html 12

Típus-specifikus tesztelés: Ballista bemenetek Szélső és extrém értékek kijelölése: 13

Típus-specifikus tesztelés: Ballista kombinációk 14

Típus-specifikus tesztelés: Ballista eredmények 15

OO programok tesztelése: JCrasher példa Forrás: http://www.cc.gatech.edu/jcrasher/ 16

OO programok tesztelése: JCrasher paraméterek Adott típusú objektum létrehozása: 17

Összefoglalás: Az eszközök fejlődése Véletlen bemenetek Érvénytelen bemenetek Típus-specifikus tesztek Mutációs technikák OO tesztek Behatolás tesztelése idő 18

Tartalomjegyzék Definíciók Robusztusság Robusztusság tesztek Teszt bemenetek Teszt eredmények értékelése Jellegzetes teszt eszközök Ballista JCrasher Mintapélda SA Forum AIS API robusztusság tesztelése 19

Mintapélda: HA köztesréteg tesztelése HA köztesréteg: Nagy rendelkezésreállás biztosítása Komponens hibadetektálás, helyreállítás, újraindítás, failover Szabványos operációs rendszerek felett Elosztott alkalmazások Service Availability Forum: HA köztesréteg specifikáció AIS: Redundancia menedzselési funkciók (AMF) Szabványos interfészek (C nyelvű) Miért kritikus a robusztusság hiba? Futtatott komponensek hibáira kell felkészülni Egy hibás komponens a köztesréteg robusztusság hibájának aktiválásával az egész rendszer működését befolyásolhatja! Robusztusság tesztelés Közös interfész alapján összehasonlítható implementációk Nagyszámú hibaforrás és hibamód automatikus tesztelés 20

Robusztusság tesztek: Elsődleges források 21

Robusztusság tesztek: Másodlagos források 22

Az elkészült teszt eszközök TBTS-TG (típus spec.) MBST-TG ( mutáció) Munkaterhelés HA Middleware OS hívás wrapper Operációs rendszer Hardver 23

Az elkészült teszt eszközök TBTS-TG (típus spec.) MBST-TG ( mutáció) Munkaterhelés Cél: Teljes interfész HA Middleware tesztelése, minél több robusztussági hiba megtalálása Teszt bemenetek a típusokhoz definiálhatók Egyes függvényekre: Teszt sablon kitöltése Paraméterek hibás és érvényes értékei kombinációinak generálása Kihívás: Állapot alapú hívások OS hívás wrapper Operációs rendszer Hardver 24

Az elkészült teszt eszközök TBTS-TG (típus spec.) MBST-TG ( mutáció) Munkaterhelés Cél: Sok függvényt használó, HA Middleware komplex szekvenciák tesztelése Meglévő funkcionális tesztek módosítása Forráskód szintaktikai elemzése Mutáció tipikus hibáknak megfelelően Kihagyás Felcserélés Tévesztés Típus-specifikus tesztelés adott Hardverhívási szekvencia után OS hívás wrapper Operációs rendszer 25

Az elkészült teszt eszközök TBTS-TG (típus spec.) MBST-TG ( mutáció) Munkaterhelés HA Middleware OS hívás wrapper Cél: Környezeti Operációs hatások rendszer tesztelése Munkaterhelés biztosítása A köztesréteg rendszerhívásokat használ Rendszerhívások eltérítése Várakoztatás Hardver Visszatérési érték megváltoztatása 26

Robusztusság tesztelési eredmények Három köztesréteg vizsgálata Openais 0.80.1 Openais trunk verzió Fujitsu Siemens SAFE4TRY Teszt futtató keretrendszer Eredmények: A szabványtól való eltérések detektálása Gyakori hiba: Abortált teszt program Kritikus hiba: Köztes réteg összeomlása 27

Eredmények áttekintése SAFE4TRY robusztusabb Típus specifikus openais-0.80.1 openais-trunk SAFE4TRY Hibátlan lefutás 24568 26019 29663 Segmentation fault 1100 1468 0 Timeout 467 2178 2 Mutáció Hibás / összes 30 / 92 28 / 92 1 / 92 OS wrapper Nem volt hiba 6 5 5 Alkalmazás hiba 0 2 1 Köztesréteg hiba 3 2 3 Rendszerhívások hibájára mindegyik érzékeny 28

További információ Philip Koopman, Kobey Devale, John Devale. Chapter 11. Interface Robustness Testing: Experience and Lessons Learned from the Ballista Project. In: Dependability Benchmarking for Computer Systems. 2008. DOI: 10.1002/9780470370506.ch11 Ali Shahrokni, Robert Feldt. A systematic review of software robustness, Information and Software Technology, Volume 55, Issue 1, January 2013, pp. 1-17, DOI: 10.1016/j.infsof.2012.06.002. Z. Micskei, H. Madeira, A. Avritzer, I. Majzik, M. Vieira, and N. Antunes. Robustness Testing Techniques and Tools. In: Resilience Assessment and Evaluation of Computing Systems. Springer, 2012, pp. 323 339. DOI: 10.1007/978-3-642-29032-9_16 29

Tartalomjegyzék Definíciók Robusztusság Robusztusság tesztek Teszt bemenetek Teszt eredmények értékelése Jellegzetes teszt eszközök Ballista JCrasher Mintapélda SA Forum AIS API robusztusság tesztelése 30