Szoftverminőségbiztosítás

Hasonló dokumentumok
Formális módszerek GM_IN003_1 Bevezeté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ő

Szoftverminőségbiztosítás

Részletes szoftver tervek ellenőrzése

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

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

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

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

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

Részletes tervek ellenőrzése

Szoftverminőségbiztosítás

Modellezési alapismeretek

Szoftverminőségbiztosítás

Szoftver újrafelhasználás

Szoftverminőségbiztosítás

Modellezési alapismeretek

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

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

Programfejlesztési Modellek

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

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

Szoftverminőségbiztosítás

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

S01-7 Komponens alapú szoftverfejlesztés 1

Nagy bonyolultságú rendszerek fejlesztőeszközei

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

Objektumorientált paradigma és a programfejlesztés

Hogyan lesz adatbányából aranybánya?

Formális módszerek GM_IN003_1 Program verifikálás, formalizmusok

A szoftver tesztelés célja

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

Fejlesztés kockázati alapokon 2.

Modell alapú tesztelés mobil környezetben

Valószínűségi modellellenőrzés Markov döntési folyamatokkal

Szoftverminőségbiztosítás

S01-8 Komponens alapú szoftverfejlesztés 2

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

KOMPUTER-ALGEBRA RENDSZEREK VERIFIKÁCIÓJA

Szoftverminőségbiztosítás

Kogníció, koncepciók, modellek

A szoftverfejlesztés eszközei

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

Használati alapú és modell alapú tesztelés kombinálása szolgáltatásorientált architektúrák teszteléséhez az ipari gyakorlatban

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

Szoftverminőségbiztosítás

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

Bevezetés. Szendrei Rudolf Informatikai Kar Eötvös Loránd Tudományegyetem. Programozási technológia I. Szendrei Rudolf. Bevezetés. Szoftvertechnológia

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

Szoftver-technológia I.

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

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

Modellezési alapismeretek

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

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

ALAPFOGALMAK 1. A reláció az program programfüggvénye, ha. Azt mondjuk, hogy az feladat szigorúbb, mint az feladat, ha

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

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

Méréselmélet MI BSc 1

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

Bevezetés a programozásba

Objektumorientált paradigma és programfejlesztés Bevezető

Modellek ellenőrzése és tesztelése

... S n. A párhuzamos programszerkezet két vagy több folyamatot tartalmaz, melyek egymással közös változó segítségével kommunikálnak.

A tesztelés szükségessége

Digitális eszközök típusai

S0-02 Típusmodellek (Programozás elmélet)

Szoftverminőségbiztosítás

Parametrikus tervezés

Absztrakció a szoftvertervezésben az Alloy specifikációs nyelv segítségével

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

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

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

Megbízhatóság az informatikai rendszerekben

Modellek fejlesztése

Kvantitatív módszerek

Modellek fejlesztése

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

A formális módszerek szerepe a rendszerek biztonságának növelésében

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

Programozási módszertan

Algoritmizálás, adatmodellezés tanítása 6. előadás

Adattárház kialakítása a Szövetkezet Integrációban, UML eszközökkel. Németh Rajmund Vezető BI Szakértő március 28.

Miskolci Egyetem Általános Informatikai Tanszék

A tesztelés feladata. Verifikáció

Modellezési alapismeretek

5. előadás. Programozás-elmélet. Programozás-elmélet 5. előadás

Alapszintű formalizmusok

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

Szolgáltatások tervezése I.

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

UML (Unified Modelling Language)

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

Információtartalom vázlata

Szoftverrendszerek tesztelési modellje

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

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

Projectvezetők képességei

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

Adatstruktúrák, algoritmusok, objektumok

Objektum orientált programozás Bevezetés

Átírás:

NGB_IN003_1 SZE 2014-15/2 (13) Szoftverminőségbiztosítás Szoftverminőség és formális módszerek

Formális módszerek Formális módszer formalizált módszer(tan) Formális eljárások alkalmazása a fejlesztésben nincs olyan formális eljárás, ami egy komplex rendszer minden aspektusát leírná struktúrális és viselkedési leírások tervezés, terv verifikálás

Formális módszerek (folyt.) Formális eljárások közös koncepciók rögzített szintaxis, szemantika matematikai eszközök eltérő jelölés absztrakt matematikai modellek a rendszer állapotáról egyre részletesebb modellek -> implementáció (absztrakció csökken) a specifikáció finomítása

Formális módszerek (folyt.) Szigorú módszerek a rendszertervezésben és fejlesztésben Szimbólikus (matematikai) logikai konstrukciók => formálisak (reprezentációk, eszközök) Rendszerrel szembeni bizalom erősítése implementáció követelmények Formális modellek létrehozása, formális követelményeknek megfelelőség mechanikus bizonyítása (formális végrehajtás)

Formális módszerek felhasználása Más elemzési és tervezési módszerek kiegészítésére Bugok felderítése (kódban, specifikációban) Fejlesztési idő csökkentése (tesztelés) Bizonyos rendszertulajdonságok biztosítása Automatizálás lehetővé tétele Fejlesztés minőségbiztosítása

Alkalmazási területek real time adatbázisok hardver tervezés biztonságkritikus alkalmazások (orvosi, nukleáris, haditechnikai, közlekedési)

Motiváció A technológiai rendszerek kis hibái katasztrófákhoz vezethetnek A mindenütt jelenlévő szoftverek hibái egyre több területen okoznak meghibásodásokat A szoftverminőség egyre jelentősebb gazdasági és jogi probléma

Szoftverrendszerek problémái A szoftverek nem folytonos függvényként működnek A HW redundancia nem segít a szoftverhibákon Az alrendszerek nem szeparálhatók tisztán A költséghatékonyság fontosabb a megbízhatóságnál A megbízható szoftverek tervezése nem kiforrott

Szoftverek korrektségének biztosítása Általános stratégia: tesztelés Más megközelítések: szoftver folyamat minőségbiztosítás, módszertanok Tesztelés szoftverhibák ellen: specifikált működés ellenőrzése külső hibák tűrésére: hiba-injektálás, hibaterjedés ellenőrzése

A tesztelés korlátai A tesztelés célja hibák felfedése (javításra) és nem a hibátlanság igazolása kimerítő tesztelés lehetetlen A tesztesetek reprezentativitása központi kérdés váratlan, ritka esetek? A tesztelés költséges tesztesetek tervezése, végrehajtása

Formális módszerek és tesztelés Tesztelési kihívások Tesztesetek előállítása random (hibafelfedés?, olcsó) intelligens szintetizálás (kézi, munkaigényes) automatikus (formalizált spec. szükséges) lefedési kérdések Végrehajtás (megfigyelés) Formális módszerek (model alapú) alk. teszteset generálásra

Formális módszerek és tesztelés Spec Fejl. fázis Termék Kód Teszt esetek Verifikáció Teszt Form. Spec Fejl fázis Form. modell Gener. Termék Verifikáció autom.

Specifikálás -követelmények Elvárt jellemzők biztonsági jellemzők (pl. kölcsönös kizárás) élőségi jellemzők (pl. éhezés elkerülése) konkurencia, elosztottsági jellemzők (pl. holtpont mentesség) nem funkcionális követelmények (pl. futási idő, memória használat, használhatóság)

Specifikálás A teljes viselkedési specifikálás igényelné: a kód teljesíti a funkcionalitására vonatkozó előírásokat adatkonzisztencia és invariancia előírásokat modularitás, egységbezárási kérdések leírását fejlesztési fázisok termékei közötti ekvivalencia és finomítási viszonyok leírását

Formális módszerek alkalmazása A formális bizonyítás helyettesíthet sok (akár végtelen) tesztesetet A formális módszerek javítják a specifikálás minőségét A formális módszerek garantálhatnak bizonyos rendszer-jellemzőket

Formális módszerek alkalmazása Nem alkalmasak a teljes rendszer korrektségének bizonyítására Nem helyettesítik teljes egészében a tesztelést nem natív kód szintjén működnek sok nem formalizálható jellemző van Nem helyettesítik a megfelelő tervezési eljárásokat

Formalizálás A valóság leképezése formális követelmény specifikációra túl egyszerűsítés nem teljesség formális működési/végrehajtási modellre modellezés (leképezés) pontossága

Rendszerek leírása Leírási szintek Absztrakt szint Véges állapottér Automatikus bizonyítás elvben lehetséges Az egyszerűsítés elkerülhetetlen Konkrét szint Nem véges és komplex adatszerkezetek Valódi programozási nyelvi modellek Automatikus bizonyítások általában lehetetlenek

Automatikus tételbizonyítás Automatikus bizonyítás (batch mode) a bizonyításközben nem kell interakció eszközök paramétereket be kell hangolni formális specifikálás kézzel Félautomatikus bizonyítás (interaktív) bizonyítás közben kellhet interakció ismerni kell az eszköz belső működését a bizonyítást ellenőrzi az eszköz

Modellellenőrzés Annak az automatikus ellenőrzése, hogy egy modell rendelkezik-e bizonyos jellemzőkkel (pl. holtpont mentesség) Ipari alkalmazás HW verifikálás SW verifikálás vezérlő rendszerek, protokollok absztrakciók ellenőrzése

Kihívások Tudásgát a formális módszerek alkalmazására erősen absztrakt munka-ráfordítás igényes néhány területen nincsenek eszközök diszkrét~folytonos idő idővariáns, nem lineáris rendszerek

Modellezés - Occam borotvája Heurisztika - a legegyszerűbb, még megfelelő modellt kell választani Absztrakciók irreleváns részletek mellőzése -> fontos jellemzők maradnak további redukció a komplexitás csökkentésére Elfogadott, bevált modellek alkalmazása

Szoftverrendszerek modellezése Különböző rendszer nézetek funkcionális/relációs/szekvenciális nézetek a rendszer mint input/output reláció, függvény absztrakt adattípusok a rajtuk értelmezett műveletekkel (szekvenciákkal) struktúrális nézetek komponensek és kapcsolataik OO modellezés

Szoftverrendszerek modellezése Viselkedési modellek reaktivitás konkurencia/elosztottság interakció ismeretlen környezettel Modellezési szempontok, kritériumok fontos jellemzők funkcionális korrektség, terminálás, holtpontok, éhezés

Szoftverrendszerek modellezése Konkurens/Interaktív rendszerek nem determinisztikusan előforduló események állapot átmenet rendszerek számítás = állapotok szekvenciája átmenetek mentén állapot = rendszer (globális) állapot átmenetek = állapotok változása végrehajtási modellek lineáris (számítási utak) elágazó (számítási fák)

Formális módszerek a gyakorlatban Félformális modellek létrehozása pl. UML Automatikus modell generálás Formális modell Kód generálás kiegészítés Modell elemzés Implementáció

Formális fejlesztési folyamat 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ó

Sziray modellje Halmaz (input-output) leképezési (szoftver) modell a szoftververifikáció és validáció viszonyainak szemléltetésére (2004) A kétféle minőségbiztosítási megközelítés fontosságának kiemelése Szoftver hibaforrások megkülönböztetése (specifikálás, fejlesztés) Verifikáció (transzformációs lépések) Validáció (felhasználói igények kielégítése)

Sziray modellje (folyt.) SWUSFI SWINERT SWDEFI SWOUTER1= SWM(SWUSFI SWDEFI) SWINPD Tesztelés után: SWOUTER2= SWM((SWUSFI SWDEFI)\SWINERT)= SWOUTER1\SWOUTERT SW SWOUTD SWOUTER SWOUTERT

Sziray modellje (folyt.) Verifikálás és validálás SWDEFT SWUSFT SWINPD SWUSFI SWDEFI SWOUTD=SWM(SWINPD) Nem detektált hibák: SWDEFO=SWM(SWDEFI\(SWDEFT SWUSFT)) SWUSFO=SWM(SWUSFI\(SWDEFT SWUSFT)) SWM SWDEFO SWUSFO SWOUTD

Sziray modellje (folyt.) Formális módszerek alkalmazásakor: SWDEFI=Ø SWDEFT=Ø SWDEFO=Ø => SWUSFO=SWM(SWUSFI\SWUSFT) azaz, formális módszerek alkalmazása esetén is szükségesek a validációs tesztek