Szoftver verifikáció és validáció. Bevezető áttekintés



Hasonló dokumentumok
A szoftverellenőrzés szerepe

Biztonságkritikus rendszerek

A szoftverellenőrzés szerepe Alapfogalmak

Project Management

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

SW process Feladatok. SW process Feladatok

Megbízhatósági modellezés és analízis: Mire jó ez egyáltalán?

A szoftver tesztelés alapjai

A pedagógus-előmeneteli rendszer informatikai támogató rendszerének fejlesztése Fűrész Edit Budapest, október 27.

Alapszintű tesztelői tanfolyam Boda Béla CTO, Neuron Software

Minőségbiztosítás a Méliusz Könyvtárban május 9. Dr. Csontosné Skara Ilona skara.ilona@meliusz.hu

VÁLTOZIK AZ ISO 9001-ES SZABVÁNY. KINEK JÓ EZ?

NOBO, DEBO ÚJ SZEREPLŐ A VASÚTI TANÚSÍTÁS TERÜLETÉN

Az MSZ EN ISO 19011:2012 szabvány változásai. Támpontok az auditorok értékeléséhez Előadó: Turi Tibor, az MSZT/MCS 901 szakértője

Junior Szoftvertesztelő mérnök

ITIL alapú szolgáltatás menedzsement megvalósítása a KELER Zrt-ben

Képzés leírása. Képzés megnevezése: DFMEA - PFMEA Jelentkezés

Vállalkozásfinanszírozás

EPER E-KATA integráció

Egy SLA kialakításának gyakorlata fókuszban a nehézségek megoldása. Előadó: Oroszi Norbert. KÜRT Rt. Információ Menedzsment KÜRT Rt.

evosoft Hungary Kft.

Kockázatkezelés és biztosítás

Füzesabony Város Polgármesteri Hivatalának szervezetfejlesztése (ÁROP-1.A.2/A )

Digitális technika (VIMIAA01) Laboratórium 1

KOMPLEX TERVEZÉS TERVEZÉSI SZAKIRÁNY TARTÓSZERKEZETI FELADATRÉSZ 1. félév

TANÚSÍTVÁNY. tanúsítja, hogy a. Mezőgazdasági és Vidékfejlesztési Hivatal (MVH). által üzemeltetett

programozástechnika Kezdetek Fı célja 1. Kommunikáció Kezdetek - Adaptivitás

ingatlan-gazdaságtani előadások projekt menedzsment módszerek

Közbeszerzési Értesítő száma: 2016/75. Eljárás fajtája: Közzététel dátuma: Iktatószám: 7466/2016 CPV Kód:

Szusza Ferenc labdarúgó sportlétesítmény fejlesztése

A KÖZOP projekt rövid bemutatása

Pénzmosás és fellépés a terrorizmus ellen (változó szabályok) Dr. Király Júlia MNB Budapest, november 12.

Tájékoztató az önkéntes nyugdíjpénztárak számára a 2012-től érvényes felügyeleti adatszolgáltatási változásokról

Többfelhasználós adatbázis környezetek, tranzakciók, internetes megoldások

EURÓPAI UNIÓ AZ EURÓPAI PARLAMENT 2006/0287 (COD) PE-CONS 3648/2/07 REV 2

AZ EURÓPAI UNIÓ TANÁCSA. Brüsszel, július 19. (19.07) (OR. en) 13081/11 AVIATION 193

Számítógép hálózatok gyakorlat

AZ ÖNÉRTÉKELÉS SZEREPE ÉS FOLYAMATA AZ INTÉZMÉNYFEJLESZTÉSBEN M&S Consulting Kft.

Gyakorlatok. VITMMA09 Okos város MSc mellékspecializáció

A TŰZVÉDELMI TERVEZÉS FOLYAMATA. Dr. Takács Lajos Gábor okl. építészmérnök BME Építészmérnöki Kar Épületszerkezettani Tanszék

D ÉS TSA. BT. Kereskedelmi iroda és raktár: 2600 Vác, Magyarország Szent László út 23/6.

AZ EURÓPAI KÖZÖSSÉGEK BIZOTTSÁGA. Tervezet A BIZOTTSÁG.../.../EU RENDELETE

Szállodai innováció, fejlesztés, felújítás hét alapérve Versenyképesség fenntartása

Dr. Schuster György február 21. Real-time operációs rendszerek RTOS

MOBIL CROWDSENSING ÉS BIG DATA TÁVKÖZLÉSI ÉS MÉDIAINFORMATIKAI TANSZÉK BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM

Programozás. A programkészítés lépései. Program = egy feladat megoldására szolgáló, a számítógép számára értelmezhető utasítássorozat.

Typotex Kiadó. Térinformatika. Detrekői Ákos jogutóda, Szabó György

Az MPM hálótechnika (I. előadás)

TANTÁRGYI ÚTMUTATÓ. Logisztika. tanulmányokhoz

HÁLÓZATSEMLEGESSÉG - EGYSÉGES INTERNET SZOLGÁLTATÁS-LEÍRÓ TÁBLÁZAT

TANTÁRGYI ÚTMUTATÓ. Pénzügyi-számviteli informatika 2. tanulmányokhoz

INFORMÁCIÓS MEMORANDUM

Open Trusted Computing avagy mitől lesz bizalomra méltó a számítástechnika? Hornák Zoltán OpenTC tanszéki ismertető 2007 november 28

A TÁMOP KIEMELT PROJEKT KERETÉBEN KIALAKÍTOTT INFORMATIKAI RENDSZER

Vasúti információs rendszerek gyakorlat

Összefoglaló jelentés a évi belső ellenőrzési terv végrehajtásáról

A tételek. Szóbeli tételsor. Minden hallgató egy A és egy B tételt húz.

Az informatika helyzete Magyarországon Dr. Fehér Péter

1. A BELSŐ ELLENŐRZÉS ÁLTAL VÉGZETT TEVÉKENYSÉG BEMUTATÁSA

Fábián Zoltán Hálózatok elmélet

Keretszerződés költöztetési, szállítási feladatok ellátására a Pécsi Tudományegyetemen-2- AF módosítás

A közbeszerzési eljárások egyszerősítése - a lengyel tapasztalatok

Ö S S Z E G E Z É S A Z A J Á N L A T O K E L B Í R Á L Á S Á R Ó L

Az éves statisztikai összegezés. Statisztikai összegezés az éves közbeszerzésekről a Kbt. IV. és VI. fejezete szerinti ajánlatkérők vonatkozásában

Virtuális magánhálózat, erőforrás kapacitásbérlés és üzemeltetési szolgáltatása DAKK Zrt-nél.

Dr. Kulcsár Gyula. Virtuális vállalat félév. Projektütemezés. Virtuális vállalat félév 5. gyakorlat Dr.

Autóipari beágyazott rendszerek. Fedélzeti elektromos rendszer

Alapszintű tesztelői tanfolyam Bodrogközi László CEO, Neuron Software

IEC Basic Engineering -től a Leszerelésig

Software Engineering

Tantárgyi program. 9. A tantárgy hallgatásának előfeltétele, előképzettségi szint: 10. A tantárgy tartalma:

Együttműködő intelligens rendszerek az EU FOTsis projektje, USA, Ausztrália

Tel.: (06) ; Fax: (06) SZERVEZETFEJLESZTÉS EREDMÉNYTERMÉKEK ÚTMUTATÓJA

Fejlesztı neve: LÉNÁRT ANETT. Tanóra / modul címe: CÉGES REKLÁMBANNER KÉSZÍTÉSE PROJEKTMÓDSZERREL

Témák 2013/14/2. Dr. Ruszinkó Endre, egyetemi docens

Tartalom. Újrafelhasználás alapú tervezés. Újrafelhasználás alapú tervezés Komponens alapú fejlesztés. Példák. Szoftvertechnológia előadás

Egy csónakban evezünk

Mentési rendszer bővítése és műszaki korszerűsítése

ELŐTERJESZTÉS a Képviselő-testület április 30-i ülésére

Véleményezési határidő: november 26. Véleményezési cím:

TÁMOP-6.1.4/12/


JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ. Egészségügyi kártevőirtó szakmunkás szakképesítés Kártevőirtás modul. 1. vizsgafeladat december 10.

Felkészülés a mesterpedagógus, kutatópedagógus fokozat elérésére

A szoftver tesztelés alapjai

Az éves statisztikai összegezés STATISZTIKAI ÖSSZEGEZÉS AZ ÉVES KÖZBESZERZÉSEKRŐL A KLASSZIKUS AJÁNLATKÉRŐK VONATKOZÁSÁBAN

Óravázlat. A szakmai karrierépítés feltételei és lehetőségei. Milyen vagyok én? Én és te. heterogén csoportmunka

NIIF VoIP projekt aktualitások

Szolgáltatásmarketing

Ipari és vasúti szénkefék

Marketing I. X. előadás. Beszerzési magatartás és ipari marketing. Dr. Bíró-Szigeti Szilvia egyetemi adjunktus BME-MVT

Kapcsolt vállalkozások évzáráshoz kapcsolódó egyéb feladatai. Transzferár dokumentálás Szokásos piaci ár levezetés

N Y Í R E G Y H Á Z A M E G Y E I J O G Ú V Á R O S T e l e p ü l é s r e n d e z é s i e s z k ö z e i n e k m ó d o s í t á s a


Beszerzések, közbeszerzési eljárások; Összeférhetetlenség, szabálytalanság. Előadó: dr. Keszler Gábor NFFKÜ Zrt.

Munkavédelmi technikus Munkavédelmi technikus

A Budavár Tours ajándékutalvány megvételének szabályzata

Az éves statisztikai összegezés STATISZTIKAI ÖSSZEGEZÉS AZ ÉVES KÖZBESZERZÉSEKRŐL A KLASSZIKUS AJÁNLATKÉRŐK VONATKOZÁSÁBAN

AF módosítás 2. - Egy gondozási egységes bölcsőde kialakítása meglévő, egykori óvodaépület átalakításával

Felsőoktatási és Ipari Együttműködés új lehetőségei

Átírás:

Szoftver verifikáció és validáció Bevezető áttekintés Majzik István Méréstechnika és Információs ek Tanszék majzik@mit.bme.hu Motiváció Tartalomjegyzék Milyen minőségi igények vannak a szoftverrel szemben, és mit tud ma a szoftveripar? Miért olyan nagy a szoftver ellenőrzési technikák jelentősége? A verifikáció és validáció technikái (áttekintés) Milyen tipikus technikák vannak? Fejlesztési életciklus modellek Milyen szerepet kapnak a tipikus technikák az egyes fejlesztési folyamatokban? Fejlesztési szabványok szerepe Hogyan valósul meg a szisztematikus ellenőrzés?

Elvárások: Szoftverek és rendszerek hibamentessége Szolgáltatási szint szerződések (SLA) Telekom: Öt kilences : 99,999% (5 perc/év kiesés) Biztonságkritikus rendszerek: Szabvány előírások a hibák gyakoriságára Biztonságintegritási szintek (SIL) szerint Ha 15 év az élettartam, akkor ez alatt kb. 750 berendezésből 1-ben lesz hiba SIL 1 2 3 4 Biztonságkritikus funkció hibája / óra 10-6 THR < 10-5 10-7 THR < 10-6 10-8 THR < 10-7 10-9 THR < 10-8 Hiba nélküli működés kb. 11.000 év??? Hibák az alkalmazás életciklusban Fejlesztési folyamat Működő termék Specifikációs hibák Tervezési hibák Implementációs hibák Verifikáció és és validáció a során Hardver hibák Konfigurációs hibák Kezelői hibák Hibatűrés működés közben

Kliens-szerver rendszerek meghibásodása Az IEEE Computer felmérése kliens-szerver rendszerekben: Hardver hiba: 10% Szoftver hiba: 40% (szerver 30%, kliens 5%, hálózati 5%) Emberi hiba: 15% Környezeti hatás: 5% Tervezett leállás: 30% Egy másik elemzés (beágyazott alkalmazások): Szoftverek minőségi problémái Jelentések több szektorból (Forrester): Defibtech issues a worldwide recall of two of its defibrillator products due to faulty self-test software that may clear a previously detected low battery condition. The issue affects approximately 42,000 units worldwide. (February 2007) Cricket Communications recalls about 285,000 of its cell phones due to a software glitch that causes audio problems when a caller connects to an emergency 911 call. (May 2008) Toyota recalls 160,000 cars with hybrid engines due to a failure of its engine control software. (October 2005) Nissan recalls 16,365 Murano and Infiniti EX 35 vehicles in February 2008 due to a software problem causing airbag failure. In May 2008, Chrysler recalls about 25,000 Jeep Commanders to repair transmission control software that allows the engine to stall at high speeds and about 50,600 vehicles in February 2007 to reprogram antilock brake software.

Nemzetközi statisztikák szoftver projektekre Tipikus kódméret: 10 kloc 1000 kloc Fejlesztési idő: 0,1-0,5 mérnökév / kloc (nagyméretű szoftver) 5-10 mérnökév / kloc (kritikus szoftver) Hiba eltávolítás (ellenőrzés, tesztelés, javítás): 45-75% ráfordítás Hibasűrűség változása: 10-200 hiba / kloc jön létre a fejlesztés során Ellenőrzési technikák 0,1-10 hiba / kloc maradhat az üzembe helyezésig Milyen szoftver hibagyakoriság a tipikus? Forrás: K-R. Hase, Deutsche Bahn AG: Open Proof in Railway Safety Software, FORMS/FORMAT Conference, December 2-3, 2010, Braunschweig, Germany

Egy magyarországi felmérés Hibák száma 1 kloc-ra (beágyazott szoftver): Jó kézi fejlesztés és tesztelés: <10 hiba marad Automatizált fejlesztés: ~1-2 hiba marad Formális módszerek használata: <1 hiba marad Hibák száma (hiba/ezer kódsor) 15 10 5 0 11 6 2.5 0.25 Hagyományos Traditional UML UML alapú MDA MDA Formális +f ormal Implementáció Implementation Tervezés Design Követelmények Requirements Implementation Implementáció 4,2 2,55 0 0 Tervezés Design 4,4 2,2 1,6 0,1 Követelmény Requirements 2,2 1,3 1 0,1 Költségvonzat Korai verifikáció csökkenti a költségeket Validációs tesztelésnél korábban detektálni kellene a hibákat

Verifikáció és validáció Verifikáció (igazolás) Jól tervezem-e a rendszert? Összhang ellenőrzése a fejlesztési fázisokban, illetve ezek között Fejlesztési lépések során használt tervek (modellek) és specifikációjuk közötti megfelelés ellenőrzése Objektív folyamat; formalizálható, automatizálható Hibamodell: Tervezési, s hibák Nincs rá szükség, ha automatikus a leképzés követelmény és között Validáció (érvényesítés) Jó rendszert készítettem-e? A fejlesztés eredményének ellenőrzése A kész rendszer és a felhasználói elvárások közötti megfelelés ellenőrzése Szubjektív elvárások lehetnek; elfogadhatósági ellenőrzés Hibamodell: Követelmények hiányosságai is Nincs rá szükség, ha a specifikáció tökéletes (elég egyszerű) Példa: Repülőgép fedélzeti szoftverek fejlesztése

Motiváció Tartalomjegyzék Milyen minőségi igények vannak a szoftverrel szemben, és mit tud ma a szoftveripar? Miért olyan nagy a szoftver ellenőrzési technikák jelentősége? A verifikáció és validáció technikái (áttekintés) Milyen tipikus technikák vannak? Fejlesztési életciklus modellek Milyen szerepet kapnak a tipikus technikák az egyes fejlesztési folyamatokban? Fejlesztési szabványok szerepe Hogyan valósul meg a szisztematikus ellenőrzés? Fejlesztési folyamatok tipikus lépései Követelmény elemzés System engineer Ütemezés, sorrendezés az életciklus modelltől függ! átadás Architect Designer, coder Test engineer

A tipikus ellenőrzési technikák Követelmény elemzés Feladat V&V szempont V&V technika Funkciók, szereplők, használati esetek áttekintése -Kockázatok - Kritikusság - Ellenőrző listák - FMEA, FT, ET, átadás A tipikus ellenőrzési technikák Követelmény elemzés Valóság Analízis Fogalmi tér Implementáció Modellezés -strukturálás - absztrakció Tervezés - dekompozíció Implementációs tér Feladat V&V szempont V&V technika átadás Funkcionális és nem-funkcionális követelmények rögzítése - Teljesség - Ellentmondásmentesség - Ellenőrizhetőség - Megvalósíthatóság - Statikus analízis (kézi vagy automatikus átvizsgálás) - Szimuláció

A tipikus ellenőrzési technikák Követelmény elemzés Egy beléptető rendszer specifikációja (Event-B): személyek: prs 0 (halmaz) épületek: bld 0 (halmaz) jogosultság: aut prs bld (bináris reláció) tartózkodás: sit prs bld (teljes fv.) invariáns: sit aut Egy funkció (lehetséges történés): pass = ANY p,b WHERE (p,b) aut sit(p) b THEN sit(p):=b END átadás Feladat Funkcionális és nem-funkcionális követelmények rögzítése V&V szempont - Teljesség - Ellentmondásmentesség - Ellenőrizhetőség - Megvalósíthatóság V&V technika - Statikus analízis (kézi vagy automatikus átvizsgálás) - Szimuláció Követelmény elemzés A tipikus ellenőrzési technikák Felülvizsgálat: 1. Ellenőrző lista összeállítása 2. Bemutató készítés a fejlesztő által 3. Kérdések összeállítása a szakértők részéről, fejlesztő válaszol 4. Megbeszélés, majd jelentés készítés Egyenrangú átvizsgálás (peer review) típusok: Körbenforgó (round-robin) modulonként más-más vezetővel Bejárás (walkthrough): fejlesztő vezeti az ellenőrzőket Szemle (inspection): ellenőrző lista alapján átadás Feladat Funkcionális és nem-funkcionális követelmények rögzítése V&V szempont - Teljesség - Ellentmondásmentesség - Ellenőrizhetőség - Megvalósíthatóság V&V technika - Statikus analízis (kézi vagy automatikus átvizsgálás) - Szimuláció

A tipikus ellenőrzési technikák Követelmény elemzés absztrakció Fogalmi tér Fogalmi tér szerkezetének kialakítása és leképezés Implementációs tér Analízis (fogalmi tér szerkezet) Leképezés (automatikus) formalizáltság Feladat V&V szempont V&V technika átadás - Specifikáció modul szintű bontása - Hardver-szoftver együttes - Kommunikáció - Funkciók fedése -Interfész illeszkedés - Kockázat elemzés -Ütemezés - - Statikus analízis - Szimuláció - Teljesítmény, megbízhatóság, biztonság analízise A tipikus ellenőrzési technikák Követelmény elemzés modellje Követelmény megadása Formális verifikáció i Automatikus ellenőrző n OK Ellenpélda Feladat V&V szempont V&V technika átadás Részletes belső működés e (algoritmusok, adatstruktúrák) - Kritikus belső algoritmusok, protokollok helyessége - Statikus analízis - Szimuláció - Formális verifikáció - Gyors prototípus

A tipikus ellenőrzési technikák Követelmény elemzés Feladat Szoftver V&V szempont - Biztonságos - Ellenőrizhető - Karbantartható kód V&V technika - Kódolási előírások (szabványok) ellenőrzése: kód átvizsgálás működés igazolása - terveknek való megfelelés - Statikus analízis - Tesztelés - Regressziós tesztelés átadás A tipikus ellenőrzési technikák Követelmény elemzés Feladat ok illesztése, hardver-szoftver összeállítás V&V szempont - Együttes működés megfelelősége V&V technika - Integrációs tesztelés (tipikusan inkrementális) átadás

A tipikus ellenőrzési technikák Követelmény elemzés Feladat V&V szempont V&V technika Specifikáció teljesítésének bemutatása Elvárások teljesítése - specifikációnak való megfelelés - Követelményeknek és elvárásoknak való megfelelés - tesztelés - Mérések, monitorozás - Validációs tesztelés - Próbaüzem alatti ellenőrzés átadás A tipikus ellenőrzési technikák Követelmény elemzés Teendők az üzemeltetés és során: - Hibanaplózás és hibaanalízis (hiba előrejelzés) - Módosítások verifikációja és validációja átadás Módosításokra egy-egy mini életciklus lefuttatása

Motiváció Tartalomjegyzék Milyen minőségi igények vannak a szoftverrel szemben, és mit tud ma a szoftveripar? Miért olyan nagy a szoftver ellenőrzési technikák jelentősége? A verifikáció és validáció technikái (áttekintés) Milyen tipikus technikák vannak? Fejlesztési életciklus modellek Milyen szerepet kapnak a tipikus technikák az egyes fejlesztési folyamatokban? Fejlesztési szabványok szerepe Hogyan valósul meg a szisztematikus ellenőrzés? Szoftverfejlesztési (életciklus) modellek Miért van szükség életciklus modellre? Komplexitás kezelése Fázisokra osztás, mérföldkövek rögzítése Elosztott fejlesztés és integráció alapja Változások kezelése Követelmény módosulás, hibajavítás hatásainak kezelése Új eszközök és technológiák bevezetése Generikus szoftverfejlesztési folyamat modellek: Szekvenciális fejlesztés: Vízesés és V-modell Evolúciós fejlesztés: Gyors alkalmazásfejlesztés Iteratív fejlesztés: Spirál modell Modell alapú (formális) fejlesztés: 4G fejlesztési modell Iteratív-inkrementális fejlesztés: Unified Process

1. Vízesés modell Követelmények elemzése Verifikáció: A továbblépés feltétele Validáció: Az üzemeltetés feltétele tesztelés 1. Vízesés modell Követelmények elemzése Verifikáció: A továbblépés feltétele Validáció: Az üzemeltetés feltétele Módosított vízesés modell: Módosítások hatásának ellenőrzése (pl. regressziós tesztelés) tesztelés

2. V-modell Követelmények elemzése validáció verifikáció Vízesés modell alapú verifikáció 2. V-modell Követelmények elemzése Rsz. validáció validáció teszt verifikáció Vízesés modell alapú Információáramlás a től az ellenőrzéshez Meghatározott V&V Integrációs teszt teszt verifikáció

Modell alapú fejlesztés: V-től az Y modellig Életciklus Költség megtakarítás Kézi kódolás Közönséges automatikus kódgenerátor használata 0% -20% Minősített automatikus kódgenerátor használata -50% Formális verifikációval kiegészített -60% becsült 40 50 100% költség 3. Evolúciós alkalmazásfejlesztés (RAD) Kezdeti gyors fejlesztése, majd több verzión keresztül finomítás a visszajelzések alapján Feltáró fejlesztés: Felhasználóval egyeztetve Ismert követelmények alapján kiindulva az első verzió Gyors prototípus készítése (kritikus funkciókra) Validációs fázisig, prototípus bemutatás, átdolgozás Hiányosan specifikált rendszerek esetén is alkalmas V&V jellegzetességek: Prototípus tesztelés jelentősége nagy Integrációs ellenőrzések (tesztek) szerepe nő Újabb funkciók tesztelése Regressziós tesztelés módosítások után

4. Spirál modell Célok, alternatívák, korlátozások meghatározása Budget 4 A következő fázis e Alternatives 4 Budget 3 Integration and test plan Alternatives 3 Constraints 4 Alternatives 2 Constraints 3 Constraints 2 Constraints Alternatives 1 Budget 2 Budget 1 start Requirements, life-cycle plan Development plan Implementation plan 1 Risk analysis 3 Risk analysis 2 Risk analysis 1 Risk analysis 4 Prototype 1 Concept of operation Validated requirements Acceptance test Proto - Proto - Proto - type 2 type 3 type 4 Software requirements Validated, verified design System test Software design Unit test Alternatívák és kockázatok analízise Code Detailed design Fejlesztés és verifikáció (ciklikusan) Integrálás: 5. Negyedik generációs modell Jól megfogható követelmények: Hagyományos fejlesztés Rosszul specifikált követelmények: Gyors prototípus fejlesztés Formalizálható követelmények: Modell alapú fejlesztés (CASE eszközök), helyességmegőrző Iteratív is lehet Modell alapú verifikáció

6. Unified Process Inkrementális és iteratív Fázisok (időben kötött) iterációkra osztva Mindegyik iteráció egy teljes (mini) fejlesztési ciklus Az ellenőrzés fókusza az egyes fázisokban eltérő Integrációs és regressziós tesztelés jelentős szerepet kap Agilis szoftverfejlesztés Extreme Programming Rövid iterációk, működő kódra koncentrálva, rendszeres (napi) integrációval és szoros státusz követéssel (fejlesztők, megrendelők) Build keretrendszerek Test first programming : Funkcionális tesztek story card alapon Minden változás (új funkció) esetén tesztelés Test Driven Development Inkrementális, lépések egy-egy új funkcióhoz: 1. Teszt írása az új funkcióhoz (futtatása sikertelen) 2. Kódolás (a teszt sikeres futtatásához) 3. Kód átdolgozása, tisztítása (refactoring) újrateszteléssel Automatikus unit tesztelésre épít

Motiváció Tartalomjegyzék Milyen minőségi igények vannak a szoftverrel szemben, és mit tud ma a szoftveripar? Miért olyan nagy a szoftver ellenőrzési technikák jelentősége? A verifikáció és validáció technikái (áttekintés) Milyen tipikus technikák vannak? Fejlesztési életciklus modellek Milyen szerepet kapnak a tipikus technikák az egyes fejlesztési folyamatokban? Fejlesztési szabványok szerepe Hogyan valósul meg a szisztematikus ellenőrzés? Jellegzetes példa: Biztonságkritikus rendszerek Széles körben használt szabványok IEC 61508: Functional safety in electrical / electronic / programmable electronic safety-related systems EN 50128: Vasúti irányítástechnika szoftverek ISO 26262: Biztonsági funkciók gépjárművekben DO 178B: Repülőgép fedélzeti rendszerek Biztonsági funkciók Célja a biztonságos állapot elérése vagy fenntartása Integritás: Milyen gyakorisággal viselhető el adott szintű hatások mellett a biztonsági funkció hibajelensége? Biztonságintegritási szint Meghatározása: Kockázatelemzés alapján Elviselhető veszélygyakoriság THR Folytonos: Veszélyt okozó hibajelenség gyakorisága Nem folytonos: Veszélyt okozó hibajelenség valószínűsége Safety Integrity Level: SIL 1, 2, 3, 4 kategóriák

A VIZSGÁLT FUNKCIÓ Veszély gyakoriság növekedés Veszélyes esemény gyakorisága Veszélyes esemény következménye SIL meghatározás alapelve Kockázat Szoftver SIL legalább azonos értékű a rendszer SIL értékével, kivéve ha THR SIL biztonságintegritási szint 4 3 2 1 0 Szoftver biztonságintegritási szint 4 3 2 1 0 Következmények súlyosságának növekedése Kockázatelemzés -> Funkció THR -> Funkció SIL -> (Al)rendszer SIL SIL SIL 1 1 2 2 3 3 4 4 Biztonságkritikus Biztonságkritikus funkció funkció hibája hibája / / óra óra 10 10-6 -6 THR THR < < 10 10-5 -5 10 10-7 -7 THR THR < < 10 10-6 -6 10 10-8 -8 THR THR < < 10 10-7 -7 10 10-9 -9 THR THR < < 10 10-8 -8 A SIL követelmények betartása Véletlen meghibásodásokra (tipikusan hardver): A SIL tartományok betartása számításokkal ellenőrizhető Kvantitatív analízis, megbízhatósági modellezés Szisztematikus meghibásodásokra (pl. szoftver): Számításokkal nem ellenőrizhető valószínűség! Módszer- és eszközkészlet előírt a fejlesztés során: Komplex megoldás-csomag az egyes SIL szintekhez 1. Fejlesztési folyamat (életciklus modell) 2. Előírt technikák és intézkedések (megoldás-csomag) 3. Előírt dokumentáció 4. Szervezeti rend (felelősségek)

1. A fejlesztési folyamat Általában jól definiált fázisokat tartalmaz Jól meghatározott specifikáció, ismert környezet Definiált fejlesztési lépések (pl. V-modell) Szigorú feltételekhez kötött előrelépés: Hangsúlyos a fejlesztési lépések ellenőrzése Hibák kockázata nagy (felelősség) Üzembehelyezés utáni javítás költsége nagy Jellegzetességek: Biztonságigazolás: Biztonsági ügy elkészítése (safety case) Értékelés majd tanúsítás (certification) Hatósági felügyelet V-modell: Jól meghatározott ellenőrzések Követelmények elemzése Rsz. validáció validáció teszt verifikáció Integrációs teszt teszt verifikáció

Generikus szoftver fejlesztése fejlesztés Generikus szoftver: Specifikus adatokkal történő paraméterezés után sok helyen felhasználható Szoftver értékelés Követelmény Követelmény teszt Szoftver érvényesítés kialakítás Integrációs teszt Szoftver-hardver Szoftver kialakítás teszt tesztelés Paraméterezés kódolás A generikus szoftver ének szempontjai Életciklus fázis fejlesztés Szoftverkövetelményspecifikáció - és kialakítás Verifikáció és validáció Karbantartás Tervezési szempont Paraméterezés általános e (döntés) Paraméterezhető funkciók meghatározása Interfészek a paraméterekhez Érvényesség ellenőrzése Elkülönítés programkód és paraméterek között Paraméter-kombinációk ellenőrzése Paraméter és programkód változások összeférhetősége

Paraméterezési életciklus és dokumentáció Kapcsolódó életciklus Szoftverkövetelményspecifikáció Szoftverarchitektúra és -kialakítás Szoftver integráció Szoftver érvényesítés Szoftver értékelés Megvalósítás dokumentuma Alkalmazási követelmények specifikációja Adat-előkészítési terv Adatteszt-terv - adatelőkészítés ellenőrzése Adatteszt jelentés Alkalmazási adatokkal konfigurált rendszer dokumentumai 2. Módszerek és intézkedések megadása Tesztelés MÓDSZER / INTÉZKEDÉS Említés helye SW- SIL0 SW- SIL1 SW- SIL2 SW- SIL3 1. Valószínűségi tesztelés B47 - R R HR HR 2. Teljesítéstesztelés D6 - HR HR M M 3. Funkcionális és fekete doboz tesztelés SW- SIL4 D3 HR HR HR M M 4. Modellezés D5 - R R R R Követelmény: 1. Az 1, 2, 3 és 4 szoftver-biztonságintegritási szintek esetén a 2. és 3. módszer kombinációja jóváhagyottnak tekintendő. Előírások: M HR R Kötelező Nyomatékosan ajánlott (elhagyása indoklást igényel) Ajánlott (kombinációból kihagyható) Nincs javaslat vagy ellenérv NR Ellenjavallt (használata indoklást igényel) Módszerkombinációk választhatók

Módszerek és intézkedések megadása (EN 50128) Software design and implementation: Functional/black box testing (D3): V&V módszerek (IEC 61508)

V&V módszerek (IEC 61508) Funkcionális tesztelés V&V módszerek (IEC61508) Statikus analízis

3. A dokumentáció követelményei Dokumentáció típusa Átfogó Pl. fejlesztési terv, verifikációs terv Életciklus fázishoz kötődő Pl. teszt jelentés, verifiációs jelentés Dokumentum keresztreferencia táblázat Melyik életciklus fázishoz milyen dokumentáció Melyik dokumentum melyik másikra épül Dokumentumok követhetősége szükséges Ugyanazon terminológia, rövidítések, elnevezések Dokumentumok összevonhatók Eredmény nem veszhet el Független szereplők dokumentumai nem vonhatók össze cím S R S S A S D D S V e r S / H S V al A s s Q M A FÁZISOK DOKUMENTUMOK Dokumentum keresztreferencia táblázat (*) = más fázisokkal párhuzamosan SW KÖVETELMÉNYEK Sw Követelményspecifikáció Alkalmazási Követelmények Specifikációja Sw Követelmény Teszt Specifikáció Sw Követelmények Verifikációs Jelentése SW KONSTRUKCIÓ KIALAKÍTÁS Sw Specifikáció Sw Konstrukció specifikáció Sw és Konstrukció Verifikációs Jelentés SW MODUL KONSTRUKCIÓ KIALAKÍTÁS Sw Konstrukció Specifikáció Sw Teszt Specifikáció Sw Verifikációs Jelentés KÓDOLÁS Sw Forráskód Sw Forráskód Verifikációs Jelentés MODUL TESZTELÉS Sw Teszt Jelentés SW INTERGRÁCIÓ Sw Integráció Teszt Jelentés Adatteszt Jelentés SW/HW INTEGRÁCIÓ Sw/Hw Integráció Teszt Jelentés VALIDÁCIÓ (*) Sw Validációs Jelentés

Dokumentáció (példa) fejlesztési fázis követelmény-specifikáció biztonsági követelményspecifikáció architektúra-leírás biztonsági terv Szoftver i fázis Szoftver i jegyzőkönyvek Szoftver változtatási jelentések Szoftverértékelési fázis Szoftverértékelési jelentés Szoftveri fázis Szoftverfejlesztési terv Szoftver-minőségbiztosítási terv Szoftverkonfig. menedzselési terv Szoftverigazolási terv Szoftverintegrációs tesztterv Szoftver/hardver-integrációs tesztterv Szoftverérvényesítési terv Szoftver-i terv Szoftverkövetelmény-specifikációs fázis Szoftverkövetelmény-specifikáció Szoftverkövetelmény-tesztspecifikáció Szoftverkövetelmény-igazolójelentés Szoftver architektúra és kialakítási fázis Szoftverarchitektúra-specifikáció Szoftverkialakítási specifikáció Szoftverarchitektúra és kialakítási igazolójelentés Szoftverérvényesítési fázis Szoftverérvényesítési jelentés Szoftver/hardver-integráció fázisa Szoftver/Hardver-integrációs tesztjelentés Szoftverintegráció fázisa Szoftverintegrációs tesztjelentés Szoftvermodul kialakítási fázis Szoftvermodul-i specifikáció Szoftvermodul-tesztspecifikáció Szoftvermodul-igazolójelentés Szoftvermodul tesztelési fázis Szoftvermodul-tesztjelentés EN50128: ~30 dokumentum! Kódolási fázis Szoftverforráskód és támogató dokumentáció Szoftverforráskód-igazolójelentés 4. Szervezeti rend Minőségi ill. biztonsági szervezet létrehozása a biztonságmenedzselés bizonyítása ISO 9001 vonatkozó részeinek alkalmazása Konfigurációmenedzselés Képzettség (alkalmasság) igazolása Szereplők: Tervező (elemző, tervező, kódoló, unit tesztelő) TER Verifikátor (igazoló) VER Validátor (érvényesítő) VAL Értékelő (független felülvizsgáló) ÉRT Projekt menedzser MGR Minőségbiztosítási felelős MIN

Minimális függetlenség követelményei SIL 0: Szervezet Személy TER, VER, VAL ÉRT SIL 1 és 2: TER VER, VAL ÉRT SIL 3 és 4: MGR ÉRT TER VER, VAL vagy: MGR ÉRT TER VER VAL Motiváció Miről volt szó? Milyen minőségi igények vannak a szoftverrel szemben, és mit tud ma a szoftveripar? Miért olyan nagy a szoftver ellenőrzési technikák jelentősége? A verifikáció és validáció technikái (áttekintés) Milyen tipikus technikák vannak? Fejlesztési életciklus modellek Milyen szerepet kapnak a tipikus technikák az egyes fejlesztési folyamatokban? Fejlesztési szabványok szerepe Hogyan valósul meg a szisztematikus ellenőrzés?