A tesztelés szükségessége



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

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

Szoftverminőségbiztosítás

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

Miskolci Egyetem Általános Informatikai Tanszék

A tesztelés feladata. Verifikáció

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

Szoftverminőségbiztosítás

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

Követelmény alapú minőségbiztosítás az államigazgatásban

Integráci. ciós s tesztek. ciós s tesztek (folyt.) Integration Level Testing (ILT) Ficsor Lajos. Miskolci Egyetem Általános Informatikai Tanszék

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

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

Hatékony iteratív fejlesztési módszertan a gyakorlatban a RUP fejlesztési módszertanra építve

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

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

Szoftver újrafelhasználás

Szoftverminőségbiztosítás

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

MIÉRT KELL TESZTELNI?

Szoftvertechnológia ellenőrző kérdések 2005

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

Szoftverminőségbiztosítás

Bevezetés a programozásba

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

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

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

Szoftverminőségbiztosítás

A BIZTONSÁGINTEGRITÁS ÉS A BIZTONSÁGORIENTÁLT ALKALMAZÁSI FELTÉTELEK TELJESÍTÉSE A VASÚTI BIZTOSÍTÓBERENDEZÉSEK TERVEZÉSE ÉS LÉTREHOZÁSA SORÁN

Nagy bonyolultságú rendszerek fejlesztőeszközei

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

Információs rendszerek Információsrendszer-fejlesztés

Autóipari beágyazott rendszerek Dr. Balogh, András

Digitális eszközök típusai

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

Szoftverminőségbiztosítás

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

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

Fejlesztés kockázati alapokon 2.

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

Szoftver karbantartás

Információtartalom vázlata

OO rendszerek jellemzői

Intelligens eszközök fejlesztése az ipari automatizálásban Evosoft Hungary kft., Evosoft Hungary Kft.

Szolgáltatás Orientált Architektúra a MAVIR-nál

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

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

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

Programfejlesztési Modellek

evosoft Hungary Kft.

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

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

UML (Unified Modelling Language)

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

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

30 MB INFORMATIKAI PROJEKTELLENŐR

A CRD prevalidáció informatika felügyelési vonatkozásai

Célkitűzés Megoldandó feladatok A tesztkörnyezet komponensei V&V folyamatok Eszközintegrációs szintek. Megfelelőség tanúsítása modell alapon

Rubin SPIRIT TEST. Rubin firmware-ek és hardverek tesztelése esettanulmány V1.0. Készítette: Hajnali Krisztián Jóváhagyta: Varga József

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

Projectvezetők képességei

Informatikai projekteredmények elfogadottságának tényezői

II. rész: a rendszer felülvizsgálati stratégia kidolgozását támogató funkciói. Tóth László, Lenkeyné Biró Gyöngyvér, Kuczogi László

Verziókövető rendszerek használata a szoftverfejlesztésben

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

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

Előadók: Angyal Gergely (Raiffeisen), tesztelési csoportvezető Kováts Márton (KFKI), szenior rendszermérnök

Változások folyamata

Szoftverminőségbiztosítás

Cloud Akkreditációs Szolgáltatás indítása CLAKK projekt. Kozlovszky Miklós, Németh Zsolt, Lovas Róbert 9. LPDS MTA SZTAKI Tudományos nap

A Bankok Bázel II megfelelésének informatikai validációja

Szoftverminőségbiztosítás

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.

Gara Péter, senior technikai tanácsadó. Identity Management rendszerek

DW 9. előadás DW tervezése, DW-projekt

23. Szoftver-tesztelés

IRÁNYTŰ A SZABÁLYTENGERBEN

S S A D M ELEMZÉSI ÉS TERVEZÉSI MÓDSZERTAN. Structured Systems Analysis and Design Method

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

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

Tesztelés az XP-ben Tesztelés az XP-ben. A tesztelés kulcsjellemzői:

Megbízhatóság az informatikai rendszerekben

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

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

V & V Feladatok. V & V Feladatok

TESZTELÉS A SZOFTVER ÉLETCIKLUSÁN ÁT SZOFTVERFEJLESZTÉSI MODELLEK

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

Hogyan tudom soros eszközeimet pillanatok alatt hálózatba kötni?

Modell alapú tesztelés mobil környezetben

S01-7 Komponens alapú szoftverfejlesztés 1

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

... 2)... Egy rendszerrel kapcsolatos feladatok: Folyamat: bemeneteket kimenetekké alakítja át,

Angolul: Extreme Programming, röviden: XP Agilis módszertan. Más módszertanok bevált technikáinak extrém módú (nagyon jó) használata

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

Informatikai projektellenőr szerepe/feladatai Informatika / Az informatika térhódítása Függőség az információtól / informatikától Információs

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

A cloud szolgáltatási modell a közigazgatásban

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

XXIII. MAGYAR MINŐSÉG HÉT

2. Szoftver minőségbiztosítás

Átírás:

A tesztelés szükségessége Veszélyek megjelenése Hardver téren az integráltsági fok növekedése Szoftver téren a milliós nagyságrendben lévő utasításszám A rendszerek teljesítményének növekedésével együtt járt a bonyolultság lényeges növekedése is. Megnőtt az emberi eredetű tervezési, javítási és üzemeltetési hibák előfordulásának valószínűsége. 1

Hardver és szoftver a biztonság szempontjából A két szféra közül a szoftver az, amely a legtöbb gondot, problémát okozza. Hardver több technológiai tapasztalat szabványos, kipróbált építőelemek az elterjedtségből adódóan az esetleges tervezési hibák könnyebben napfényre kerülnek Szoftver egyedi, speciális fejlesztések 2

Szoftverfejlesztési modellek Több fejlesztési fázis Életciklus modellek vízesés modell spirál modell V-modell A különböző modellek a fejlesztési projektek egyes fontosabb aspektusainak hangsúlyozásában térnek el egymástól. Mindegyikük egy új minőségbiztosításifejlesztési paradigma sajátságait hordozza magában. 3

A vízesés modell főbb fázisai Rendszerkövetelmények megadása. Szoftver-követelmények megadása. Előzetes programtervek elkészítése, elemzése. Programtervezés. Programkódolás. Tesztelés. Működtetés. 4

A spirál modell főbb fázisai A működési koncepció kialakítása. Követelmények tervezése. Életciklus tervezése. Kockázat-analízis. Szoftver-követelmények meghatározása. Szoftver-termék tervezése. A tervezés verifikálása és validálása. Integrálás és tesztelés tervezése. Részletes tervezés. Kódolás. Egységek (modulok) tesztelése. Összeintegrálás és tesztelés. Elfogadási tesztelés. Üzembe helyezés. 5

A V-modell A biztonságkritikus számítógéprendszerek esetében terjedt el. A modell jól kifejezi a tervezési folyamat fentről lefelé történő haladását (top-down megközelítés), míg a tesztelési folyamat lentről felfelé halad (bottom-up megközelítés). A gyakorlatban a különböző fázisok nem szigorúan a megadott sorrendben hajtódnak végre. 6

A V-modell 1) Követelmények Követelmények specifikálása specifikálása Rendszer Rendszer üzemeltetése üzemeltetése 11) 2) Hazárd- és Hazárd- és kozkázatanalízis kozkázatanalízis Bizonylatolás Bizonylatolás 10) 3) Specifikálás Specifikálás Rendszervalidálás Rendszervalidálás 9) 4) Architektúra- tervezés Architektúra- tervezés Rendszerverifikálás Rendszerverifikálás 8) 5) Modultervezés Modultervezés Rendszer integrálása és Rendszer integrálása és tesztelése tesztelése 7) 6) Modulok előállítása és Modulok előállítása és tesztelése tesztelése 7

V-modell életciklus állomások Követelmények specifikálása Funkcionális követelmények dokumentációja Hazárdok és kockázatok elemzése A teljes rendszer-specifikáció A funkcionális követelmények valamint a biztonsági követelmények együttese alkotja. Architekturális tervezés: A teljes informatikai rendszer architektúrája hardverből és szoftverből tevődik össze. HW-SW co-design A szoftver modulokra bontása 8

V-modell életciklus állomások A modulok elkészítése és tesztelése A tesztelési folyamatok előzetesen megtervezendők A szoftver-modulok összeintegrálása Inkrementális tesztelés big bang tesztelés A teljes rendszer verifikálása rendszer megfelel-e a specifikációjának 9

V-modell életciklus állomások A teljes rendszer validálása rendszer megfelel-e a felhasználói követelményeknek biztonságigazolás Bizonylatolás (certification) a hatósági előírások és szabványok szerinti megfelelés eldöntése Üzembe helyezés, üzemeltetés, karbantartás, elavulás, üzemeltetés megszüntetése 10

Hazárdok és kockázatok elemzése Hazárd: Olyan helyzet, amely egy valóságos vagy lehetséges veszélyt jelent az emberek vagy a környezet számára. Kockázat: Egy hazárdhoz kapcsolódó események és azok következményei, valószínűségi alapon. Azt fejezi ki, hogy milyen valószínűségű veszélyes következményei lehetnek egy hazárdnak. 11

Hazárdanalízis Hibamódok és hatásuk analízise Ebben az eljárásban komponens-hibákat tételezünk fel külön-külön, és azt vizsgáljuk, hogy a hibáknak milyen hatásuk lehet a rendszer biztonságára. Eseményfa-analízis (event-tree analysis) Események hatásának elemzése a végső kimenetelekig különböző szinteken. Hibafa-analízis (fault-tree analysis) Vészhelyzetek visszavezetése a kiindulási okokig boole-gráf segítségével. 12

A szoftver-modulok összeintegrálása Inkrementális tesztelés Integrálás egyenkénti bővítéssel és teszteléssel Minden egyes bővítés után külön teszteljük az addig összeállt komplexumot Big bang tesztelés Az összes modult egyszerre rakjuk össze, és a teljes komplexumra hajtjuk végre a tesztelést 13

14 SZOFTVER-MINŐSÉGBIZTOSÍTÁS V-modell tevékenységek Részletes tervezés Részletes tervezés Felső szintű tervezés Felső szintű tervezés Rendszerspecifikálás Rendszerspecifikálás Konstr. Kódolás Konstr. Kódolás Köv. elemzése Köv. elemzése Modulok tesztelése Modulok tesztelése Üzemeltetés/ Karbantartás Üzemeltetés/ Karbantartás Validálás Bizonylatolás Validálás Bizonylatolás Rendszer tesztelése Rendszer tesztelése Rendszer integrálása Rendszer integrálása Modulok Modulok terve Tesztelt modulok Rendszer terve Integrált rendszer Rendszerspecifikáció Verifikált rendszer Bizonylatolt rendszer Köv. Dok.

Verifikáció és validáció Verifikáció: Az a folyamat, amelyben meghatározzuk, hogy a vizsgált informatikai rendszer szoftvere teljesíti-e mindazokat a követelményeket, amelyeket egy előző fázisban specifikáltak a szoftver fejlesztési vagy előállítási folyamatában Validáció: A teljes szoftver vizsgálata és kiértékelése azzal a céllal, hogy meghatározzuk, minden szempontból megfelel-e a felhasználói követelményeknek. Egy biztonságkritikus rendszernél a következőket kell igazolni: A funkcionális megfelelőséget. A teljesítményben való megfelelőséget. A biztonsági követelmények teljesülését. 15

A fejlesztési folyamat vizsgálata A fejlesztés egyes stádiumaihoz egymástól eltérő megvalósítási reprezentációk tartoznak. A helyes végrehajtás deklarálása azt kívánja meg, hogy bizonyítsuk ezen reprezentációk közötti egyértelmű összhang teljesülését. A bizonyítási folyamat elvégzése úgy logikus, hogy az egymást követő fejlesztési fázisok közötti összhang, ekvivalencia igazolását végezzük el lépésenként. 16

A fejlesztési fázisok kapcsolata Szoftver specifikáció Módosítás 1. tervezési fázis Nem 1. fázis megfelelő Igen Módosítás 2. tervezési fázis Nem 2. fázis megfelelő Igen Módosítás Nem Utolsó fázis megfelelő Igen Szoftver-végtermék 17

V & V eljárás A verifikáció és a validáció a fejlesztési folyamat két összefüggő velejárója, a két eljárás mindig együtt kezelendő. A verifikáció végső soron arra ad választ, hogy a termék előállítása helyesen történt-e. A validáció arra ad választ, hogy a helyes terméket állítottuk-e elő. 18

A verifikáció és a validáció fázisainak tervezése Az előre való tervezés lényeges mind a költségek becslése, mind pedig minimalizálása szempontjából. A verifikálás és a validálás egyaránt a tesztelésen alapul, a tesztek megtervezése igen fontos része lesz a fejlesztési folyamatnak. A validációs terv befolyásolni tudja magának a projektnek a további menetét. A validációs szempontoknak a figyelembe vétele a tervezés egy korai szakaszában jelentős megtakarításhoz vezethet a későbbi szakaszok ráfordításában. 19

20 SZOFTVER-MINŐSÉGBIZTOSÍTÁS V-modell teszttervezéssel Részletes tervezés Részletes tervezés Felső szintű tervezés Felső szintű tervezés Rendszerspecifikálás Rendszerspecifikálás Konstrukciós tervezés Kódolás Konstrukciós tervezés Kódolás Követelmények elemzése Követelmények elemzése Modulok tesztelése Modulok tesztelése Üzemeltetés/ Karbantartás Üzemeltetés/ Karbantartás Validálás/ Bizonylatolás Validálás/ Bizonylatolás Rendszer tesztelése Rendszer tesztelése Rendszer összeintegrálása Rendszer összeintegrálása Modulok Modulok Modulok terve Tesztelt modulok Rendszer terve Összeintegrált rendszer Rendszerspecifikáció Verifikált rendszer Bizonylatolt rendszer Követelmények dokumentációja Teszttervezés Teszttervezés Teszttervezés Teszttervezés Teszttervezés Teszttervezés Teszttervezés Teszttervezés

IEC 1508 követelménylista Annak leírása, hogy a validálás mikor hajtandó végre. Annak megadása, hogy ki hajtja végre a validálást. A rendszerműködés figyelembe veendő módjainak megadása, az alábbiak szerint: A használat előkészítése Indítás Automatikus üzemeltetés Manuális üzemeltetés Félautomatikus üzemeltetés Állandósult állapotbeli működés Újraállítás (resetelés) Teljes leállítás Karbantartás Előrelátható abnormális feltételek kezelése 21

IEC 1508 követelménylista A biztonságra kiható rendszerek megadása, és azon külső kockázatcsökkentő eszközök megadása, amelyeket validálni kell mindegyik működési módban. A validálás technikai stratégiája. Intézkedések, technikák, eljárások, amelyek arra használandók, hogy mindegyik biztonsági funkcióról el legyen döntve, hogy az megfelel-e az általános biztonsági követelményeknek. Hivatkozások az általános biztonsági követelmények dokumentumaira. 22

IEC 1508 követelménylista A szükséges környezet, amelyben a validálás tevékenységet el kell végezni. Az elfogadási/elutasítási kritériumok. Irányelvek és szabályok a validációs eredmények kiértékelésére vonatkozóan. 23

Egységek, modulok tesztelése A moduláris fejlesztés lehetővé teszi a moduláris vagy egységenkénti tesztelést. Egységtesztelés jórészt white-box jellegű strukturális tesztelés tesztesetek kiegészítése a specifikáció tesztelésére szolgáló black-boksz tesztesetekkel az egység- vagy modultesztek jelentik a szoftverfejlesztés közbeni legalacsonyabb szintű tesztelést 24

Egységek, modulok tesztelése A tesztesetek nem csak egyszer használatosak a fejlesztés során a hibamentes kódolás ellenőrzésére, hanem mindannyiszor végre kell hajtani őket, ahányszor a szoftveren változtatást végzünk vagy a modult egy új, másik környezetben használjuk fel (regressziós tesztelés). A modultesztek során teszteljük az adott modul és a modult a rendszerhez csatoló interfész funkcionális működését. 25

Egységek, modulok tesztelése A modul tesztelése egy tesztkörnyezetben történik A modul a tesztkörnyezettel kombinálva alkot egy működő rendszert. modulok egymástól teljesen függetlenül kerülnek tesztelésre (izolációs tesztelés) a tesztelendő modul már korábban tesztelt modulokkal kombinálva kerül tesztelésre (inkrementális tesztelés) A tesztkörnyezetek egy tesztvégrehajtó egységből és egy kiegészítő részből állnak. 26

A modultesztelés szükségessége Az egységtesztek elvégzése a hibák nagy részét feltárja Az integrációs, vagyis az alkalmazást egészében tekintő tesztek nem alkalmasak a hibák jórészének felderítésére. A nagyobb kód integrációk sokkal komplexebbek. 27

A modultesztelés szükségessége Modulok Alkalmazás P ote nciális hibák Te szt input Modul P ote nciá lis hibák Teszt input Az egységszintű hibák felderítése integrációs tesztelés közben nehéz Az egységtesztelés jobb lefedettséget eredményez 28

A modultesztelés szükségessége Minél később kerül felderítésre egy hiba, annál magasabb a javítási költsége. Az egységtesztek létrehozása, karbantartása sokkal könnyebb és kényelmesebb, mint a későbbi fázisokban végrehajtott teszteké. Különböző típusú tesztek egymáshoz viszonyított relatív időigénye 29

Az egységtesztelés szervezése Három stratégia Izolációs tesztelés Top-down tesztelés Bottom-up tesztelés 30

Példa modul hierarchia A B C D E F G H I J 31

Izolációs tesztelés Az izolációs tesztelés során a tesztelés alatt álló modul az általa hívott és az őt hívó moduloktól elszigetelten kerül tesztelésre. Az egységek tetszőleges sorrendben tesztelhetők, mivel egyik egység tesztelése sem kívánja meg más modulok teszteltségét. Minden egyes modulhoz szükség van egy tesztvégrehajtó komponensre és az összes általa hívott egységeket helyettesítő csonkokra. 32

Izolációs modul tesztelés A Teszt végrehajtó B C D Tesztelés alatt E Csonk F Csonk G Csonk H I J 33

Az izolációs tesztelés előnyei Az izolációs tesztelés biztosítja a legkönnyebb utat a megfelelő strukturális tesztlefedettség eléréséhez. A lefedettség elérési nehézsége nem függ az adott egység hierarchiabeli helyétől A tesztvégrehajtó egységek egyszerűbbek. Tetszőleges számú egység tesztelhető párhuzamosan Az egy egységen végrehajtott módosítások csak az adott egység tesztjének a változtatását vonják maguk 34

Az izolációs tesztelés hátrányai Nem biztosítja az egységek korai integrációját. Az izolációs tesztelési megközelítés megköveteli strukturális tervezési információk rendelkezésre állását és tesztvégrehajtó modulok és csonkok írását. ezt az egységhierarchia minden szintjén el kell végezni 35

Top-down tesztelés Top-down egységteszteléskor az egyes modulok az őket hívó modulokból kerülnek tesztelésre Először a hierarchia csúcsán álló modul kerül tesztelésre, az összes hívott modult csonkok helyettesítik. Ez a folyamat addig ismétlődik, míg a legalsó szintű egységek is tesztelésre kerülnek. 36

Top-down modul tesztelés A Tesztelve B Tesztelve C Tesztelve D Tesztelés alatt E Csonk F Csonk G Csonk H I J 37

A top-down tesztelés előnyei A top-down egységtesztelés az egységek korai, szoftver integrációs fázis előtti integrációját biztosítja. Mivel a modulok részletes tervezése topdown jellegű és a top-down egységtesztelés a teszteket így a modulok tervezési sorrendjében hajtja végre Top-down egységteszteléssel azonosítható az alsóbb szintű egységekben megvalósított redundáns funkcionalitás, mert ez nem fedhető le tesztekkel. 38

A top-down tesztelés hátrányai A top-down tesztelést a csonkokkal lehet irányítani, a tesztesetek több csonkot is használhatnak egyszerre. Minden egyes tesztelt egységgel a tesztelés egyre komplikáltabb lesz. Egy egységen végrehajtott módosítás gyakran befolyásolja a hierarchiában azonos vagy az alacsonyabb szinten lévő egységek tesztelését. Az egységek tesztelésének sorrendjét az egységhierarchia határozza meg 39

Bottom-up tesztelés Bottom-up egységteszteléskor a modulok az őket hívó moduloktól elszigetelten kerülnek tesztelésre, de a valódi hívott modulokat használják saját hívásaikhoz. Először a legalsó szinten lévő modulokat kell tesztelni, majd ezeket kell használni a felsőbb szintű egységek tesztjeinél, vagyis már tesztelt hívott egységekkel kerül sor a tesztelésre. 40

Bottom-up modul tesztelés A Teszt végrehajtó B C D Tesztelés alatt E Tesztelve F Tesztelve G Tesztelve H Tesztelve I Tesztelve J Tesztelve 41

A bottom-up tesztelés előnyei Biztosítja az egységek korai, szoftverintegrációs fázis előtti integrációját A teszteseteket teljes egészében a tesztvégrehajtó egységek határozzák meg, nincs szükség csonkokra. az egységhierarchia alján álló modulok tesztelését relatív egyszerűvé teszi. Ez a tesztelési stratégia jól használható objektumok tesztelésére. 42

A bottom-up tesztelés hátrányai Ahogy a tesztelés felfelé halad az egységhierarchiában úgy válik a bottom-up egységtesztelés mind bonyolultabbá és ezért egyre nehezebben kifejleszthetővé és karbantarthatóvá. Egy egység megváltoztatása gyakran hatással van a hierarchiában felette lévő egységekre. 43

Egységtesztelési stratégiák összehasonlítása Az izolációs egységtesztelés a legjobb választás egységtesztelésre. A top-down stratégia nem jó választás egységtesztelésre, hanem inkább a már tesztelt egységek integrálásának megfelelő eszköze. A bottom-up megközelítés jó egységtesztelési stratégia lehet különösen, ha objektumokat és egység újra felhasználást tekintünk. Azonban a bottom-up megközelítés inkább a funkcionális, mint a strukturális tesztelés irányába mutat. 44

Integrációs- és rendszertesztelés A modul szintű tesztelést követően magasabb szinteken kell a tesztelést tovább folytatni. Legalacsonyabb szinten idetartoznak a modulok rendszerbeli együttműködését (integrációját) ellenőrző integrációs tesztek. A következő, ún. funkcióteszt szinten már tisztán black-box jellegű teszteket végzünk. A következő szint a rendszertesztek szintje. 45

Integrációs tesztelés Az integrációs tesztek a szoftver életciklus integrációs fázisában kerülnek végrehajtásra. A kooperáló modulokból felépített rendszerek állapotát az egyes modulok közötti interakciók is meghatározzák. Elképzelhető, hogy egy rendszer annak ellenére hibásan működik, hogy az összes alkotó komponense egyenként korrekt. Az egész rendszer szekvenciális működését moduljainak a kapcsolata is befolyásolja. 46

Integrációs tesztelés Alkalmazás Modulok Potenciális hibák Teszt input 47

Rendszertesztelés Ez a tesztelési fázis a megfogalmazott céloknak a követelmények meghatározásakor specifikációvá történő alakításánál elkövetett hibák feltárását szolgálja. A rendszerteszteket lehetőleg a fejlesztőktől független és a végfelhasználók helyzetét ismerő szervezetnek kell végeznie. 48

Rendszertesztelés Szolgáltatás tesztelés A rendszer nyújtja-e azokat a szolgáltatásokat melyeket céljai között megjelöltek. Nem a szoftverspecifikációra épül. Mennyiségi tesztelés A szoftver működését nagy mennyiségű adattal teszteljük a kapacitáskorlátok ellenőrzésére. A mennyiségi tesztelés viszonylag erőforrás igényes. 49

Rendszertesztelés Löket terheléses tesztelés (Stressz-tesztelés) Nagy mennyiségű adat rövid idő alatti feldolgozásáról van szó. A rendszer valós helyzetekbeli robosztusságának ellenőrzésére végeznek olyan stresszteszteket is, melyek a valóságban soha elő nem forduló feltételeket jelentenek. Használhatósági tesztelés A használat közbeni minőség azt jelenti, hogy egy termék egy meghatározott felhasználó által, egy meghatározott felhasználási körben használva, meghatározott célok hatékony és produktív elérésére, mennyire kielégítő és mennyire vezet megelégedésre. A tesztelés során a felhasználó teljesítményére vonatkozó kvantitatív (idők, pontosság, elvégzett feladatok száma) és a megelégedettségre, véleményre vonatkozó kvalitatív (kérdőívek, megjegyzések) adatokat gyűjtenek. 50

Rendszertesztelés Biztonsági tesztelés A biztonsági tesztelés célja, hogy felfedje az adatbiztonsággal és adatvédelemmel kapcsolatos hibákat. Tesztesetek létrehozásához előnyős lehet a hasonló rendszerek már felderített biztonsági hiányosságainak ismerete. Teljesítménytesztelés A programok egy részénél a teljesítmény vagy a hatékonyság specifikálva van különböző terheléseknél és konfigurációkra meghatározott válaszidők és feldolgozási sebességek formájában. A tesztesetek célja annak a demonstrálása, hogy a rendszer nem képes a megadott teljesítménycélok kielégítésére. 51

Rendszertesztelés Konfigurációtesztelés Bizonyos programoknak eltérő operációs környezetekben is működniük kell. Ezek a különböző környezetek jelenthetnek eltérő hardver konfigurációkat (adott esetben teljesen különböző architektúrákat), különböző operációs rendszereket ill. különböző szoftver installációkat. A konfigurációtesztelés sok esetben különböző konfigurációkban elvégzendő teljesítménytesztelést jelent. Ellenőrizni kell a kompatibilitási célok elérését vagy a konverziós eljárásokat 52

Rendszertesztelés Megbízhatósági tesztelés Általában igen nehéz a teszteléshez rendelkezésre álló idő alatt a rendkívül alacsony meghibásodási ráta követelményeknek megfelelő rendszerek tesztelése. Bizonyos megbízhatósági paraméterek érvényességére matematikai modellek alapján adhatunk becsléseket. Dokumentációtesztelés A dokumentáció ellenőrzése pontosság és világos érthetőség szempontjából. 53

Validációs tesztelés A validációs folyamatokban egyrészt a rendszer funkcionális téren elvárt működésének ellenőrzésére van szükség, másrészt pedig az ezen túlmenő, további felhasználói elvárások teljesülését is igazolni kell. Szükség van arra, hogy a rendszer olyan tulajdonságait, működési módjait is megvizsgáljuk, amelyeket a tervezési specifikáció nem definiált. 54

Valósidejű rendszerek időzítési szempontjai Az igazolási feladat megoldása két részből áll: A rendszerkövetelményekből meg kell határozni az időzítési korlátozásokat. Meg kell mutatni, hogy ezek a korlátozások ki vannak elégítve. A hardver ilyen irányú vizsgálata kidolgozott, dinamikus teszteléssel, vagy szimulációs ellenőrzéssel. A szoftver időbeli sajátságainak vizsgálata már általában sokkal bonyolultabb, a viselkedés összetettsége következtében. 55

Környezeti szimuláció A biztonságkritikus rendszerek esetében gyakran nincs arra lehetőség, hogy a rendszert teljes egészében a valós működési körülmények között vessük vizsgálat alá. Az ilyen szituációkban az elterjedten alkalmazott megoldás a rendszer valós környezetének a szimulációja. 56

Környezeti szimuláció A szimulátorok minőségének meghatározását több tényező befolyásolja, melyek közül az alábbiakban sorolunk fel néhányat: A szimulált változók: Mely környezeti változók vannak figyelembe véve, és melyek vannak elhanyagolva. Az alkalmazott modellek pontossága: Azoknak a modelleknek a pontossága, amelyek a különböző környezeti hatásokat reprezentálják. A számítások pontossága: Az egyes változók kiszámításánál alkalmazott felbontási fok és pontosság. Az időzítések figyelembevétele: A számítási sebesség hatása a szimulációra. 57

A tesztelés költsége Magától értetődik, hogy minden modulokból felépülő rendszernél növekedni fog a hibakeresés és hibajavítás költsége, ha arra az építési folyamat egy későbbi szakaszában kerül sor, ahhoz képest, hogy egy korábbi szakaszban történt volna meg ez. 58

A tesztelési költségek változása (Költség) Követelmények Kódolva Kibocsátva (Idő) 59

Tesztelési ráfordítások Tesztköltségi tényező, test cost factor TCF Tesztköltségi tényező = (Tesztelés költsége) / (Tesztelés költsége + Tervezés költsége) A gyakorlati tapasztalatok szerint a tesztköltségi tényező tipikusan a 0,25 0,75 közötti sávban mozog. 60

Bizonylatolás Annak igazolása, hogy a termék minden tekintetben megfelel a hatósági előírásoknak, szabványoknak, követelményeknek. A fejlesztőnek meg kell mutatnia, hogy minden fontosabb hazárd azonosítva lett, és gondoskodás történt az elkerülésükről, továbbá hogy a rendszer kellő védelmet kapott az illetéktelen hozzáférés és helytelen kezelés ellen. Az üzemeltetéshez előírt bizonylat kiadásához szükség van annak igazolására is, hogy az adott rendszer biztonságos. Az ehhez végrehajtandó folyamatot nevezzük biztonságigazolásnak. 61

Biztonságigazolási dokumentumok A biztonságkritikus rendszer leírása. A biztonsági tervezésben részt vevő személyzet kompetenciájának igazolása. A biztonsági követelmények specifikációja. A hazárdok és kockázatok analízisének eredményei. A kockázatok csökkentésére alkalmazott módszerek részletezése. A tervezési elemzések eredménye, amely azt mutatja meg, hogy a rendszer tervezése minden szempontból elősegíti a biztonsági célok elérését. A verifikációs és validációs stratégia. Az összes verifikációs és validációs tevékenység eredményei. A biztonsági vizsgálatok eredményei. Azon események feljegyzése, amelyek a rendszer üzemeltetése során léptek fel. A rendszeren végrehajtott változtatások feljegyzése, és annak bizonyítása, hogy a rendszer továbbra is megőrizte biztonságosságát. 62

A formális módszerek szerepe A formális módszerek matematikai alapokon álló eljárások, amelyeket az informatikai rendszerek specifikálására, tervezésére, analízisére. Egyértelmű, pontos és ellentmondásmentes specifikáció megteremtése. CASE-eszközök formalizált módszerek 63

Formális módszerek Formális nyelveken alapulnak Automatikus ellenőrzés a tervezési hibák, ellentmondások kimutatására A specifikáció és a végtermék közötti fejlesztési út több fázisból áll. Az egyes fázisok közötti átmenetet több esetben automatikus transzformáció tudja biztosítani. Az átalakítás, transzformáció során szükség van annak bizonyítására is, hogy az új reprezentáció ekvivalens az őt megelőzővel. 64

A formális módszerek alkalmazása Formális specifikáció Transzformáció és ellenőrzés 1. tervezési fázis Verifikáció Transzformáció és ellenőrzés 2. tervezési fázis Verifikáció Transzformáció és ellenőrzés Végső tervezési fázis Verifikáció 65

A hardver és szoftver tervezési és előállítási folyamata Felhasználói követelmények Specifikálás Szoftvermegvalósítás Szoftvertervezés Hardverspecifikálás Szoftverspecifikálás Hardvertervezés Hardvermegvalósítás Összeintegrált rendszer 66

A HW&SW tervezési és előállítási folyamata A hardverben például nagy jelentőségre tett szert a VHDL (Hardware Description Language). magas szintű nyelv, amely alkalmas a hardver logikai és időbeli működési módjainak definiálására. Több jól bevált silicon compiler létezik már. A szoftverben terjedőben van az UML (Unified Modeling Language, - egységes modellező nyelv) felhasználása. 67