A szoftverellenőrzés szerepe

Hasonló dokumentumok
A szoftverellenőrzés szerepe Alapfogalmak

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

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

Életciklus modellek a rendszer és szoftverrendszer-fejlesztésben. SDLC System Development Life Cycle Software Development Life Cycle

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

Szoftverminőségbiztosítás

Szoftverminőségbiztosítás

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

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

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

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

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

Nagy bonyolultságú rendszerek fejlesztőeszközei

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

MIÉRT KELL TESZTELNI?

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

A formális módszerek szerepe

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

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

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

Biztonságkritikus rendszerek

Szoftverminőségbiztosítás

Részletes tervek ellenőrzése

Részletes szoftver tervek ellenőrzése

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

Software Engineering Babeş-Bolyai Tudományegyetem Kolozsvár

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

A szolgáltatásbiztonság alapfogalmai

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

A szolgáltatásbiztonság alapfogalmai

Szoftverminőségbiztosítás

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

Szoftver karbantartás

Szoftver újrafelhasználás

Programfejlesztési Modellek

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

Bevezetés a programozásba

Szoftverminőségbiztosítás

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

01. gyakorlat - Projektalapítás

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

Software engineering (Software techológia) Bevezetés, alapfogalmak. Történelem 1. Történelem as évek Megoldandó problémák: Fejlesztő: Eszköz:

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

Fejlesztés kockázati alapokon 2.

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

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

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

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

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

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

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

Modellezési alapismeretek

Objektum orientált software fejlesztés (Bevezetés)

Modellezési alapismeretek

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

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

Architektúra tervezési példák: Architektúrák biztonságkritikus rendszerekben

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

Fejlesztési projektek menedzselése IBM Rational CLM termékekkel. Ker-Soft Kft. Kaszás Orsolya - üzleti tanácsadó

Formális módszerek GM_IN003_1 Bevezetés

A formális módszerek szerepe

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

Autóipari beágyazott rendszerek Dr. Balogh, Andrá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ő

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

Formális módszerek. A formális modellezés és a formális verifikáció alapjai. dr. Bartha Tamás BME Közlekedés- és Járműirányítási Tanszék

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

A TANTÁRGY ADATLAPJA

30 MB INFORMATIKAI PROJEKTELLENŐR

S01-7 Komponens alapú szoftverfejlesztés 1

Tisztelettel köszöntöm a RITEK Zrt. Regionális Információtechnológiai Központ bemutatóján.

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

The Unified Software Development Process. Történet. Feltételek. Rational Unified Process. Krizsán Zoltán Ficsor Lajos

Miskolci Egyetem Általános Informatikai Tanszék

A tesztelés feladata. Verifikáció

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

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

Software Engineering

Közlekedési automatika Biztonságintegritás, életciklus modellek

Szoftvertechnológia 12. előadás. Szoftverfejlesztési módszerek és modellek. Giachetta Roberto. Eötvös Loránd Tudományegyetem Informatikai Kar

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

Informatikai rendszertervezés

Forráskód minőségbiztosítás

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

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

Programozási technológia 2.

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 szolgáltatásbiztonság alapfogalmai

Agilis projektmenedzsment

4. A szoftvergyártás folyamata

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

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

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

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

Tesztelési szintek Tesztautomatizálás

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

Járműinformatika A járműinformatikai fejlesztés

Szoftverminőségbiztosítás

Átírás:

A szoftverellenőrzés szerepe Majzik István majzik@mit.bme.hu http://www.inf.mit.bme.hu/ 1

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? 2

Elvárások: Szoftverek és rendszerek hibamentessége Szolgáltatási szint szerződések (SLA) Rendelkezésre állás (telekom): 99,999% (5 perc/év kiesés) Biztonságkritikus rendszerek: Elviselhető hibagyakoriság biztonsági funkcióra (THR) Biztonságintegritási szintek (SIL) SIL Biztonságkritikus funkció hibája / óra 1 10-6 THR < 10-5 Ha 15 év az élettartam, akkor ez alatt kb. 750 berendezésből 1-ben lesz hiba 2 3 4 10-7 THR < 10-6 10-8 THR < 10-7 10-9 THR < 10-8 Hiba nélküli működés ~ 11.000 év? 3

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 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 (pl. redundancia) 4

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: 5

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. 6

Nemzetközi statisztikák szoftver projektekre Tipikus kódméret: 10 kloc 1000 kloc Fejlesztési ráfordítás: Nagyméretű átlagos szoftver: 0,1-0,5 mérnökév / kloc Biztonságkritikus szoftver: 5-10 mérnökév / kloc Hiba eltávolítás (ellenőrzés, tesztelés, javítás): Az összes ráfordítás 45-75%-a! 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 7

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 8

Egy (magyarországi) mérés eredményei Hibák száma 1 kloc-ra: 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+formal Formális 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 9

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 10

V&V: 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, implementációs hibák Nincs rá szükség, ha automatikus a leképzés követelmény és implementáció 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ű) 11

Példa: Repülőgép fedélzeti szoftverek fejlesztése 12

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? 15

Fejlesztési folyamatok tipikus lépései Követelmény elemzés specifikálás System engineer Ütemezés, sorrendezés az életciklus modelltől függ! Architektúra implementáció integrálás átadás Architect Developer, coder Test engineer Üzemeltetés, karbantartás 16

Követelmény elemzés Követelmény elemzés specifikálás Architektúra Feladat V&V szempont V&V technika Funkciók, aktorok, használati esetek felvétele - Kockázatok - Kritikusság - Ellenőrző listák - Hibamód és -hatás analízis implementáció integrálás átadás Üzemeltetés, karbantartás 17

specifikálás Követelmény elemzés Valóság Analízis specifikálás Fogalmi tér Implementáció Architektúra Modellezés - strukturálás - absztrakció Tervezés - dekompozíció Implementációs tér implementáció integrálás átadás Üzemeltetés, karbantartás Feladat V&V szempont V&V technika Funkcionális és nem-funkcionális követelmények rögzítése - Teljesség - Ellentmondásmentesség - Statikus analízis (kézi vagy automatikus átvizsgálás) - Ellenőrizhetőség - Megvalósíthatóság - Szimuláció 18

specifikálás Követelmény elemzés specifikálás Architektúra (Szakértői) 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 implementáció integrálás átadás Üzemeltetés, karbantartás Feladat V&V szempont V&V technika Funkcionális és nem-funkcionális követelmények rögzítése - Teljesség - Ellentmondásmentesség - Statikus analízis (kézi vagy automatikus átvizsgálás) - Ellenőrizhetőség - Megvalósíthatóság - Szimuláció 19

specifikálás Követelmény elemzés specifikálás Architektúra 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 implementáció integrálás átadás Üzemeltetés, karbantartás Feladat V&V szempont V&V technika Funkcionális és nem-funkcionális követelmények rögzítése - Teljesség - Ellentmondásmentesség - Statikus analízis (kézi vagy automatikus átvizsgálás) - Ellenőrizhetőség - Megvalósíthatóság - Szimuláció 20

Architektúra Követelmény elemzés specifikálás Architektúra 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 implementáció integrálás átadás Üzemeltetés, karbantartás Feladat V&V szempont V&V technika - Specifikáció modul szintű bontása - Hardver-szoftver együttes - Kommunikáció - Funkciók fedése - Interfész illeszkedés - Extra-funkcionális tulajdonságok megfelelősége - Statikus analízis - Szimuláció - Teljesítmény, megbízhatóság, biztonság analízise 21

(részletes ) Követelmény elemzés modellje Követelmény megadása specifikálás Formális verifikáció i Automatikus modellellenőrző n Architektúra OK Ellenpélda implementáció integrálás átadás Üzemeltetés, karbantartás Feladat V&V szempont V&V technika 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 22

implementáció Követelmény elemzés specifikálás Architektúra implementáció Feladat V&V szempont V&V technika Szoftver implementáció működés igazolása - Biztonságos - Ellenőrizhető - Karbantartható forráskód - terveknek való megfelelés - Kódolási előírások (szabályok) ellenőrzése: statikus kód átvizsgálás - Statikus analízis - Tesztelés - Regressziós tesztelés integrálás átadás Üzemeltetés, karbantartás 23

integrálás Követelmény elemzés specifikálás Architektúra Feladat V&V szempont V&V technika - Együttes működés megfelelősége ok illesztése, hardver-szoftver összeállítás - Integrációs tesztelés (tipikusan inkrementális) implementáció integrálás átadás Üzemeltetés, karbantartás 24

átadás Követelmény elemzés Feladat V&V szempont V&V technika specifikálás Architektúra Specifikáció teljesítésének igazolása - specifikációnak való megfelelés - tesztelés - Mérések, monitorozás implementáció Felhasználói elvárások teljesítése - Követelményeknek és elvárásoknak való megfelelés - Validációs tesztelés - Próbaüzem alatti ellenőrzés integrálás átadás Üzemeltetés, karbantartás 25

Üzemeltetés és karbantartás Követelmény elemzés specifikálás Architektúra Teendők az üzemeltetés és karbantartás során: - Hibanaplózás és hibaanalízis (hiba előrejelzéshez is) - Módosítások verifikációja és validációja implementáció integrálás átadás Üzemeltetés, karbantartás Módosításokra egy-egy mini életciklus lefuttatása 26

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? 27

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 28

1. Vízesés modell Követelmények elemzése specifikálás Architektúra Verifikáció: A továbblépés feltétele Validáció: Az üzemeltetés feltétele implementáció integrálás tesztelés Üzemeltetés, karbantartás 29

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

2. V-modell Üzemeltetés, karbantartás Követelmények elemzése validáció specifikálás verifikáció Vízesés modell alapú Architektúra integrálás verifikáció implementáció 31

2. V-modell Üzemeltetés, karbantartás Követelmények elemzése Rsz. validáció validáció specifikálás teszt verifikáció Vízesés modell alapú Információáramlás a től az ellenőrzéshez Meghatározott V&V Architektúra Integrációs teszt teszt implementáció integrálás verifikáció 32

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 33

3. Evolúciós alkalmazásfejlesztés (RAD) Kezdeti verzió gyors fejlesztése, majd több verzión keresztül finomítás 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 beillesztése és tesztelése Regressziós tesztelés módosítások után 35

4. Spirál modell Célok, alternatívák, korlátozások meghatározása Risk analysis 4 Risk analysis 3 Alternatívák és kockázatok analízise Risk analysis 2 Risk analysis 1 Proto - Proto - Proto - Budget 4 Budget 3 Budget 2 Budget Prototype type 2 type 3 type 4 1 1 start Requirements, life-cycle plan Concept of operation Detailed design Code A következő fázis e Implementation plan Acceptance test System test Unit test Fejlesztés és verifikáció (ciklikusan) 36

5. Negyedik generációs modell Integrálás: 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ő lépésekkel Iteratív is lehet Modell alapú verifikáció 37

6. Unified Process Inkrementális és iteratív Fázisok (időben kötött) iterációkra osztva Az ellenőrzés fókusza az egyes fázisokban eltérő Integrációs és regressziós tesztelés jelentős szerepet kap 38

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) Test first programming koncepció: Funkcionális tesztek story card alapon Minden változás (új funkció) esetén tesztelés Test Driven Development A tesztek írása vezeti meg a fejlesztést Inkrementális, lépések egy-egy új funkcióhoz: 1. Teszt írása az új funkcióhoz (első 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 39

Motiváció Áttekintés 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? 40