A szoftver tesztelés célja

Hasonló dokumentumok
Szoftverminőségbiztosítás

Szoftverminőségbiztosítás

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

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

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

Formális módszerek GM_IN003_1 Bevezetés

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

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

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

Rendszer-modellezés, modellezési technikák

Autóipari beágyazott rendszerek. Kockázatelemzés

Szoftver újrafelhasználás

Szoftverminőségbiztosítás

Szoftverminőségbiztosítás

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

Szoftverminőségbiztosítás

Szoftverminőségbiztosítás

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

Szoftverminőségbiztosítás

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

OO rendszerek jellemzői

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

1. Melyik szabvány foglalkozik dokumentumok tulajdonságainak megfogalmazásával? a. RDFS b. FOAF c. Dublin Core d. DBPedia

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

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

Rendszer-modellezés, modellezési technikák

A szoftverfejlesztés eszközei

IRÁNYÍTÓ RENDSZER IRÁNYÍTANDÓ FOLYAMAT. Biztonsági funkciók Biztonsági integritás. Normál működés. Hibák elleni védettség Saját (belső) biztonság

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

Programozási nyelvek II. JAVA

Szoftver architektúra, Architektúrális tervezés

TESZTMENEDZSMENT TESZTELŐ SZERVEZET TESZTTERVEZÉS ÉS BECSLÉS

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

Fejlesztés kockázati alapokon 2.

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

Szoftver követelmények meghatározása

Szoftver-technológia I.

ESZKÖZTÁMOGATÁS A TESZTELÉSBEN

Hibadetektáló rendszer légtechnikai berendezések számára

Teszt terv Új funkció implementációja meglévı alkalmazásba

Miskolci Egyetem Általános Informatikai Tanszék

A tesztelés feladata. Verifikáció

Szoftver tesztelés a gyakorlatban 2

Programrendszerek tanúsítása szoftverminőség mérése

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

Modell alapú tesztelés mobil környezetben

Laborgyakorlat 3 A modul ellenőrzése szimulációval. Dr. Oniga István

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

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

Szoftver követelmények meghatározása

MIÉRT KELL TESZTELNI?

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

Részletes szoftver tervek ellenőrzése

Szoftverminőségbiztosítás

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

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

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

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

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

ORVOSTECHNIKAI ESZKÖZÖK GYÁRTMÁNYFEJLESZTÉSE AKTÍV ORVOSI ESZKÖZÖK FEJLESZTÉSE - PEMS V&V

Vizsgáló berendezések elektromos átviteli és elosztó hálózatokhoz

Részletes tervek ellenőrzése

Bevezetés a programozásba

Funkciópont elemzés: elmélet és gyakorlat

A szoftverfejlesztés 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

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

Orvostechnikai eszközök gyártmányfejlesztése Aktív orvosi eszközök fejlesztése PEMS V&V. Nagy Katinka

A szoftver tesztelés alapjai

8.3. AZ ASIC TESZTELÉSE

Biztosítóberendezések biztonságának értékelése

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

Programozási technológia II 7. előadás. Verifikáció és validáció Giachetta Roberto

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

Rendszermodellezés: házi feladat bemutatás

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

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

Tesztelési szintek Tesztautomatizálás

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

Modellek ellenőrzése és tesztelése

(Teszt)automatizálás. Bevezető

Számítógép-rendszerek fontos jellemzői (Hardver és Szoftver):

Kompetens szoftvertesztelés a gyakorlatban II. zárthelyi dolgozat

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

Autóipari beágyazott rendszerek. Funkcionális biztonságossági koncepció

A formális módszerek szerepe

Tartalom. Konfiguráció menedzsment bevezetési tapasztalatok. Bevezetés. Tipikus konfigurációs adatbázis kialakítási projekt. Adatbázis szerkezet

1. Alapfogalmak Algoritmus Számítási probléma Specifikáció Algoritmusok futási ideje

Kód átvizsgálás. Irodalom. (Code review) code review,smart Bear Inc., ! Jason Cohen: Best kept secrets of peer

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

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

Alkalmazások biztonsága

Programozási nyelvek II. JAVA

Bevezetés. Adatvédelmi célok

Szerző. Varga Péter ETR azonosító: VAPQAAI.ELTE cím: Név: Kurzuskód:

Rendszer szekvencia diagram

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

Szoftver tesztelés a gyakorlatban 3

Statikus technikák: A szoftver átvizsgálása. Statikus technikák: A szoftver átvizsgálása

Átírás:

Szoftver tesztelés Bevezetés 2 A szoftver tesztelés célja! Szoftver-min!ség biztosítása, javítása! Szoftver hibák lokalizálása! V & V támogatása! verifikáció! fázis transzformációs lépései helyesek! követelményeknek való megfelelés! validálás! termék megfelel a felhasználó elvárásainak! Életciklus (SW folyamat) sajátosságok! folyamatosan az életciklusban! managementbeli függetlenség

3 A tesztelés szintjei! alacsony - modul szint"! magas - rendszer szint"! szolgáltatás! mennyiségi! löket terhelés! használhatóság! teljesítmény! konfiguráció! dokumentáció 4 A tesztelési probléma Szoftver Specifikáció? Eredmény Tesztesetek

5 Szoftverhibák megjelenése! SW mint input-output leképezés Input Hibás kimenetet okozó bementet SW Output Hibás kimenet Hiba helyének azonosítása 6 Megismerési problémák! sokszor nem lehetséges a kimerít! tesztelés! meger!sítési tévedés (pozitív tesztesetek)! Megfelel! szemlélet" megközelítés! A tesztelés a hibák kimutatására való és nem a jelenlétük hiányának demonstrálására Input Hibás kimenetet okozó bementet SW Output Hibás kimenet

7 A tesztelés költsége Tesztelési költség Követelmény spec. Kódolás Kész szoftver 8 Tesztelés típusai! Tesztelés végrehajtással! m"ködésközben manifesztálódó hibák kisz"rése! Tesztelés végrehajtás nélkül! kód, konfiguráció, dokumentáció stb. átvizsgálása, ellen!rzése

9 Átvizsgálás! kevésbé formális! 4-6 f!s csoportok! specikáló! elemz! (tervez!)! megbízó! következ! fázis képvisel!je! min!ség biztosítási csoport! lista szerinti átvizsgálás! kb. 2 óra! detektálás (nem javítás)! teljesítmény becslések Részletes vizsgálatok, szemlék 10! 5 formális lépés! áttekintés! el!készítés! hiba statisztikák! potenciális hibahelyek! szemle, vizsgálat! hibák megtalálása, dokumentálása! megoldások kidolgozása! ellen!rzés! újra szemlézés

11 Hiba statisztikák! Hiba típus és súlyosság szerint rögzített el!fordulási gyakoriságok! Korábbi fejlesztések statisztikái! Nem tipikus hibaszám eloszlás kezelése! Veszélyes területek azonosítása! Adott fázis hibastatisztikáinak figyelembevétele a következ! fázisban 12 Átvizsgálások eredményei! Átvizsgálások hibadetektáló képessége! összes detektált hiba 82% (IBM, 1976)! összes detektált hiba 70% (IBM, 1978)! összes detektált hiba 93% (IBM, 1986)! Hibadetektálás költségének 90%-os csökkentése (Kapcsolórendszer, 1986)! Hibaszám exponeciálisan csökken átvizsgálási fázisról-fázisra (JPL, 1992)

13 Átvizsgálási metrikák! Hibas"r"ség (hiba /KLOC)! Hibadetektálási ráta (megtalált hiba / óra)! Metrikák hibasúlyosság szerint! Milyen következtetést lehet levonni a megtalált hibák számából? Átvizsgálás statikus kódelemzéssel 14! sgi ProDev

15 Tesztelés után maradó hibák További hibák létezésének valószín!sége Megtalált hibák száma 16 Tesztelés végrehajtással! Viselkedés vizsgálata megválasztott bemenetekkel, rögzített környezetben! Hibamodellek! hibák el!fordulása és jellege?! fejlesztési- és tesztelési technológia függ!

17 Tesztelési megközelítések! Funkcionális tesztelés (black box)! specifikáció alapján! Struktúrális tesztelés (white box)! m"ködési logika alapján Végrehajtásos tesztelés problémái 18! Nem teljes mértékben kézbentartható környezet! Tesztesetek meghatározása! Szoftver hiba modellek hiánya! Tesztesetek végrehajtása! real-time környezet! kliens-szerver rendszerek! még nem létez! rendszerelemek! kimenet, bemenet viselkedés definiálása! GUI tesztelés! több-szálú programok

19 GUI tesztelési problémák! komplex állapotterek Regisztráció Jelszó1 **** Jelszó2 **** Kilépés OK OK disabled [pwd1=""] Pwd 1 [pwd1!=""] Main OK enabled [pwd2=""] [pwd1!=pwd2] Different [pwd2=""] start All clear [pwd1=pwd2] [pwd2!=pwd1] [pwd2!=""] [pwd1=pwd2] [pwd2=""] Pwd 2 [pwd2=pwd1] Same [pwd1=""] [pwd1!=pwd2] OK clicked Exit clicked OK clicked OK2 clicked Success feedback OK3 clicked exit Password missmatch Végrehajtásos tesztelés kivitelezése 20 Szoftver Tesztelhet! sw Specifikáció Tesztrendszer Futtató körny. Tesztesetek Tesztleírás Eredmény

21 Tesztkörnyezetek! dinamikus tesztek végrehajtása! teszt végrehajtó (test driver) Tesztesetek Teszt konfiguráció mngt automatizálás Eredmények Lefedettségi mértékek! teszt automatizáló és konfiguráló komponens! bem"szerez! komponens (instrumentation) Teszt végrehajtó Mûszerezés Tesztelt egység Csonkok! szimuláló csonkok (stub) Tesztkörnyezetek szolgáltatásai 22! teszt konfiguráció management! automatizált tesztelés! debugger! teljesítmény tesztek (profiler)! statikus analízis! teszt eredmény dokumentáció, megjelenítés

23 Tesztkörnyezetek (pl.)! sgi Tester! teszt paraméterek beállítása 24 Tesztkörnyezetek (pl.)! lefedettségi adatok

GUI tesztel! robot (event recorder) 25! WDTest T 512 860 753 47843 "Saj tgèp-cabinetwclass-717-653-0-0-" T 512 861 753 47869 "Saj tgèp-cabinetwclass-718-653-0-0-" T 512 863 753 47964 "Saj tgèp-cabinetwclass-720-653-0-0-" T 512 864 753 47990 "Saj tgèp-cabinetwclass-721-653-0-0-" T 512 864 752 48016 "Saj tgèp-cabinetwclass-721-652-0-0-" T 512 866 752 48065 "Saj tgèp-cabinetwclass-723-652-0-0-" T 512 867 752 48114 "Saj tgèp-cabinetwclass-724-652-0-0-" T 516 867 752 48277 "-Shell_TrayWnd-865-8-0-0--TrayNotifyWnd-8-7-0-0-" T 517 867 752 48371 "-Shell_TrayWnd-865-8-0-0--TrayNotifyWnd-8-7-0-0-" T 512 867 752 48471 "WinVNC Tray Icon-WinVNC Tray Icon-819-685-0-0-" T 512 867 752 48573 "WinVNC Tray Icon-WinVNC Tray Icon-819-685-0-0-" T 512 869 750 48878 "WinVNC Tray Icon-WinVNC Tray Icon-821-683-0-0-" T 512 885 742 48904 "WinVNC Tray Icon-WinVNC Tray Icon-837-675-0-0-" T 512 897 740 48936 "WinVNC Tray Icon-WinVNC Tray Icon-849-673-0-0-" T 512 903 739 48976 "WinVNC Tray Icon-WinVNC Tray Icon-855-672-0-0-" Teszt script (macro) részlet 26 Magasszint" tesztelési célok! Hasznosság tesztelése! használhatóság! teljesítmény! költséghatékonyság! Megbízhatóság! Robusztusság! Teljesítmény

27 Min!ségi jellemz!k tesztelése! Min!ség tesztelési scenáriók! Metrikák Stimulus Tárgy Válasz Stimulus forrás Környezet Mértékek 28 Tesztelési alapelvek! Teszteredményeknek összevethet!nek kell lennie a követelményekkel! A tesztelésnek tervezetten kell történnie! A szoftver tesztelésre igaz a 80/20 elv: a tesztelés során feltárt hibák 80%-a a programkomponensek 20%-ára vezethet! vissza! A teszteléssel a kicsit!l kell a nagy felétartani

29 Tesztelhet!ség! Tesztelhet!ség mint tervezési szempont! biztonságkritikus rendszerek! M"ködtethet!ség! Megfigyelhet!ség! Szabályozhatóság! Szétbonthatóság! Egyszer"ség! Érthet!ség 30 Programhelyesség! Programhelyesség! A program megfelel a kimenetspecifikációjának a megengedett feltételek és kívánt er!források mellett! specifikáció függ!!

31 Program helyesség bizonyítás! Matematikai technika! A technika elemei! input specifikáció! output specifikáció! állítások (kijelentések)! vezérlési folyam invariáns! bizonyítási technikák! teljes indukció 32 A specifikáció helyessége

Programhelyesség bizonyítás (pl.) 33 Programhelyesség bizonyítás (pl.) 34

Programhelyesség bizonyítás (pl.) 35! Java assertion void foo() { for (...) { if (...) return; } assert false; // Execution should //never reach this point! } public class Foo { public void m1( int value ) { assert 0<=value; System.out.println( "OK" ); } public static void main( String[] args ) { Foo foo = new Foo(); System.out.print( "foo.m1( 1 ): " ); foo.m1( 1 ); System.out.print( "foo.m1( -1 ): " ); foo.m1( -1 ); } } 36 Formális módszerek! szoftverrendszerek növekv! mérete és funkcionalitása -> növekv! komplexitás! komoly következményekkel járó hibák nagyobb valószín"sége! formális módszerek! szigorú specifikációs és verifikációs megoldások! matematikai (formális) nyelvek! technikák! eszközök! inkonzisztencia, nem teljesség, többértelm"ség felfedezése! megértés növelése

37 Formális specifikáció! eldönthet! szintaxis! formális szemantika! automatikus analízis! gyenge és er!s formális módszerek! különböz! nézetek integrálása 38 Formális verifikáció! modell ellen!rzés! állapottér mérete (state space explosion)! 100-200 állapot változó, 10100 állapot! valószin"ségi becslés! hardver és protokoll ellen!rzés! temporal model checking, automata! tétel bizonyítás! végtelen állapotterek! axiómák, levezetési szabályok! heurisztikák használata! algoritmusok ellen!rzése

Formális módszerek sikeres alkalmazása 39! Modell ellen!rzés! IEEE Futurebus cache koherencia protokoll! Bell Labs HDL Controller transmitter! Tételbizonyítás! IBM PowerPC ekvivalencia ellen!rzés különböz! terverzési szinteken! Motorola 68020 compiler generálta bináris kód ellen!rzése! AMD5K86 mikrokód Formális módszerek alkalmazási problémái 40! méretezési problémák! számítási komplexitás (NP-teljes problémák)! tesztelési elemek a specifikáción kívül (bizt. kritikus rendszerek)! felhasználói képzettség