INKREMENTÁLIS FEJLESZTÉS ÉS TESZTELÉS BIZTONSÁGKRITI- KUS RENDSZEREK ESETÉN 3



Hasonló dokumentumok
MIKROKONTROLLEREK ALKALMAZÁSA AUTOMATA REPÜLŐ SZERKEZETEKBEN 4 BEVEZETÉS

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

Miskolci Egyetem Általános Informatikai Tanszék

A tesztelés feladata. Verifikáció

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

MIÉRT KELL TESZTELNI?

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

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

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

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

Szoftverminőségbiztosítás

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

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

Szoftverminőségbiztosítás

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

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

Bevezetés a programozásba

KRITIKUS SIKERTÉNYEZŐ VAGY ELKERÜLHETETLEN VESZÉLYFORRÁS 3 BEVEZETÉS

Osztott jáva programok automatikus tesztelése. Matkó Imre BBTE, Kolozsvár Informatika szak, IV. Év 2007 január

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

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

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

A modern e-learning lehetőségei a tűzoltók oktatásának fejlesztésében. Dicse Jenő üzletfejlesztési igazgató

Projectvezetők képességei

Kiegészítő előadás. Vizsgabemutató VBA. Dr. Kallós Gábor, Fehérvári Arnold, Pusztai Pál Krankovits Melinda. Széchenyi István Egyetem

4. Fejezet : Az egész számok (integer) ábrázolása

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

Új módszerek és eszközök infokommunikációs hálózatok forgalmának vizsgálatához

Orvostechnikai eszköz tesztelése DSS Unit test. Taliga Miklós BME-IIT

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

Digitális eszközök típusai

Szoftver-technológia I.

Információtartalom vázlata

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

A szoftver tesztelés alapjai

A KUTATÁS EREDMÉNYEI ZÁRÓJELENTÉS

Csatlakozási állapot megjelenítése

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

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

Rendszermodellezés: házi feladat bemutatás

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

SW-project management

MULTIMÉDIA ALAPÚ OKTATÁSI TECHNOLÓGIÁK GYAKORLATI ALKALMAZÁSÁNAK VIZSGÁLATA A KATONAI SZAKNYELVOKTATÁSBAN

DIGITÁLIS TEREPMODELL A TÁJRENDEZÉSBEN

Mio Technology Limited C510, C710. Gyors használati utasítás a Mio Map v3 programhoz. Magyar

Alkalmazások fejlesztése A D O K U M E N T Á C I Ó F E L É P Í T É S E

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

P-gráf alapú workflow modellezés fuzzy kiterjesztéssel

Autonóm jármű forgalomszimulátorba illesztése

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

MAGASÉPÍTÉSI PROJEKT KOCÁZATAINAK VIZSGÁLATA SZAKMAI INTERJÚK TÜKRÉBEN 1 CSERPES IMRE 2

Autonóm járműrendszerek kutatása a zalaegerszegi autonóm tesztpályához kapcsolódóan. Pályázati témák (3) Téma rövid tartalma

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

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

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

01. gyakorlat - Projektalapítás

Szoftverminőségbiztosítás

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

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

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

Láthatósági kérdések

Mechatronika segédlet 3. gyakorlat

Tömegpontok mozgása egyenes mentén, hajítások

Méréselmélet MI BSc 1

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

BIZTONSÁGKRITIKUS SZOFTVER FEJLESZTÉS BIZTONSÁGI SZINTEK

MIKOVINY SÁMUEL TÉRINFORMATIKAI EMLÉKVERSENY

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

Előrenéző és paraméter tanuló algoritmusok on-line klaszterezési problémákra

Pacemaker készülékek szoftverének verifikációja. Hesz Gábor

SZERZŐ: Kiss Róbert. Oldal1

A lineáris dörzshegesztés technológiai paramétereinek megválasztása

UML (Unified Modelling Language)

A PILÓTA NÉLKÜLI LÉGIJÁRMŰVEK ALKALMAZÁSÁNAK HUMÁN ASPEKTUSBÓL TÖRTÉNŐ VIZSGÁLATA 2 A TÉMA KUTATÁSÁNAK INDOKOLTSÁGA 3

Beltéri autonóm négyrotoros helikopter szabályozó rendszerének kifejlesztése és hardware-in-the-loop tesztelése

Az értékelés során következtetést fogalmazhatunk meg a

A loxodrómáról. Előző írásunkban melynek címe: A Gudermann - függvényről szó esett a Mercator - vetületről,illetve az ezen alapuló térképről 1. ábra.

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

3D számítógépes geometria és alakzatrekonstrukció

SZTE Nyílt Forrású Szoftverfejlesztő és Minősítő Kompetencia Központ

Számítógépes döntéstámogatás. Genetikus algoritmusok

WebService tesztelés. SOAPui Pro, GreenPepper és Confluence használatával. Verhás & Verhás Szoftver Manufaktúra KNOW-HOW

Útjelzések, akadályok felismerése valós időben

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

SystemDiagnostics. Magyar

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

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

A controlling és az értékelemzés összekapcsolása, különös tekintettel a felsőoktatási és a gyakorlati alkalmazhatóságra

Rendszerterv. 1. Funkcionális terv Feladat leírása:

Java programozási nyelv

Mérés és modellezés Méréstechnika VM, GM, MM 1

Ismeretanyag Záróvizsgára való felkészüléshez

Koordináta-rendszerek

TestLine - nummulites_gnss Minta feladatsor

Tesztelési szintek Tesztautomatizálás

Teljesítmény Mérés. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Teljesítmény Mérés / 20

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.

XVI. FIATAL MŰSZAKIAK TUDOMÁNYOS ÜLÉSSZAKA

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

Autonóm járművek városi közlekedésének kihívásai

Átírás:

Schuster György 1 Terpecz Gábor 2 INKREMENTÁLIS FEJLESZTÉS ÉS TESZTELÉS BIZTONSÁGKRITI- KUS RENDSZEREK ESETÉN 3 A szoftver kritikus sikertényező és mint ilyen alkalmazása szinte minden berendezésben elkerülhetetlen. A skála rendkívül széles a kapucsengőtől a kerékpárlámpán keresztül a járművek fedélzeti rendszerét érintve a nukleáris létesítményekig mindenütt találkozunk szoftverekkel. Sajnálatos módon tapasztalataink azt mutatják, hogy a megrendelők tisztelet a kivételnek nagyrészt képtelenek a feladatot kellő mélységben specifikálni, aminek az az eredménye, hogy kutatások szerint az átadott programok jó része további módosításra szorul, jelentős részüket nem használják és szinte elenyésző az a szám ahol az átadás után nincs szükség kisebb nagyobb változtatásra. Ezen a jelenségen sajnos változtatni nem nagyon lehet, ezért számos esetben a fejlesztés során az inkrementális modellt vesszük alapul, akár biztonságkritikus alkalmazásokban is. INCREMENTAL DEVELOPMENT AND TEST IN CASE OF SAFETY CRITICAL SYSTEMS Summary: software is critical success factor therefore it is inevitable to apply in almost each device. This scale is very large from doorbell via bicycle lamp, vehicle board systems to atomic power plants. Unfortunately our experience shows that customers except for fews are unable to specify its problem in every detail. This leads to the result that dominant part of delivered programmes need later modifications or some of them is not used. Number of delivered and not modified software is tiny. That is the reason why the increment development model is considered as basic model even if safety critical systems. BEVEZETŐ A szoftvertechnológia számos életciklus modellt ismer, ezek mind rendelkeznek előnyökkel és hátrányokkal. Ezek a modellek: vízesés modell, V modell (más néven német V modell), spirál modell, evolúciós modell, inkrementális modell. Az inkrementális modellt kivéve szinte mindegyik az első pillanattól egyértelmű és pontos specifikációt igényel. Erre a vízesés és a V modell a legjobb példa.az inkrementális modell viszont nem ennyire merev, amikor rendelkezésre áll egy adott részterületről kellő mennyiségű információ a fejlesztés és a tesztelés megkezdhető. 1 ÓE KVK MAI schuster.györgy@kvk.uni-obuda.hu 2 ÓE KVK MAI terpecz.gabor@kvk.uni-obuda.hu 3 Lektorálta: Prof. Dr. Pokorádi László egyetemi tanár, Óbudai Egyetem, pokoradi.laszlo@prosysmod.hu 467

INKREMENTÁLIS MODELL A modell akkor alkalmazható, ha kellően nagy vonalakban ismerjük az elkészítendő szoftver által biztosított szolgáltatásokat, de a teljes rendszer még nem teljesen specifikált. A hangsúly a nem teljesen van. Ez azt jelenti, hogy tudjuk, hogy a rendszernek mit kell csinálni, de a részletek nem minden esetben állnak rendelkezésre. Példának hozhatjuk azt az esetet, amikor egy UAV fejlesztése párhuzamosan történik a sárkány és a fedélzeti rendszer esetén. A szoftver fejlesztést a megrendelés pillanatában el kell kezdeni, holott az lenne optimális, ha már a teljes mechanika az ismert dinamikus tulajdonságaival rendelkezésünkre állna. Ez egyszerűen azt eredményezné, hogy a fejlesztési idő a megrendelő számára elfogadhatatlanul hosszúra nyúlna. A szituáció mindenki számára ismert. Azonban kellő tapasztalatok birtokában lehetőség nyílik arra, hogy a programozók előre dolgozzanak. Ennek oka az, hogy kevés kivétellel az adott feladatok számos részét előre meg lehet határozni. Ezeket prioritási sorrendbe rakva el lehet kezdeni fejleszteni, illetőleg tesztelni. Ebben segítséget nyújt a moduláris és az objektum orientált módszertan. A módszer lépései: 1. azon elemek kiválasztása, amelyek meghatározottak, jól körülhatárolhatók, tehát elegendő információ áll rendelkezésre, hogy az adott elemet meg lehessen valósítani, 2. a kiválasztott elemek logikai és fizikai tervezése különös tekintettel a szükséges interfész felületekre, 3. a fenti tervek alapján a szoftver elem kódolása, 4. a szoftver elem tesztelése először a fejlesztői host-on, és amint lehetséges a target rendszeren is, 5. amennyiben lehetőség van a következő inkrementális lépés megkezdésére akkor annak végrehajtása és az interfész és együttműködési tesztek végrehajtása. Az inkrementális fejlesztés az első pillantásra nem felel meg a biztonságkritikus filozófiának, de az időkényszer ami sokszor az adott problémához nem, vagy igen kevéssé értő környezet által generált nem teszi lehetővé a kívánt fejlesztési modell alkalmazását. Azonban ennek a fejlesztési modellnek van előnye is. Azok a szoftver egységek, amelyek a fejlesztés adott szakaszában elkészülnek azonnal tesztelhetők és viselkedésükről, tulajdonságaikról tapasztalatokat lehet szerezni. Ez nem csak a host-on való tesztelést, hanem a target-en történő futtatást is jelentik. Ez például jelentheti azt is, hogy kellően korai időben a target nem elegendően erős a feladat ellátására. Összefoglalva az inkrementális fejlesztés tulajdonságait: 6. korábban készülnek tesztelhető szoftver egységek, tehát a megrendelő korábban kap már tesztelhető elemeket, 468

7. lehetőség nyílik az egyes részek korai tesztelésére 8. mivel a target rendszeren korán futtatási teszteket lehet végrehajtani, időben kiderülhet a target alkalmatlansága, 9. a fejlesztés a projekt (összetett hardver, szoftver, projekt rendszerről beszélünk) korai időszakában megkezdődhet a rendelkezelésre álló információk szerint, 1. ábra Az inkrementális fejlesztés vázlata Azt ne felejtsük el, hogy a fejlesztés megkezdésekor a kérdéses szoftver egységek fejlesztési sorrendje a rendelkezésre álló információktól függ, de ekkor is célszerű a magasabb prioritású elemeket kiválasztani és ezekkel kezdeni a munkát. Az inkrementális fejlesztés azonban nem program egysége független fejlesztését jelenti, bár ebből indulunk ki, de a fejlesztés a valóságban folyamatosan, viszonylag kis lépésekben történik, úgynevezett inkrementális szinteken történik. Tesztelés Ennek a fejlesztés modellnek az alapvető tulajdonsága az, hogy a szoftver egységek nem egyszerre készülnek el, illetve minden inkrementális lépés után a lehetőségekhez mérten működő kóddal rendelkezünk. Ez viszont azt eredményezi, hogy ez a kód már az első lépés után tesztelhető. Célszerűen az adott szoftver elem adott inkrementális elem úgy kezelendő, mint egy a klasszikus unit tesztelésnél egy unit. Annyiban egyszerűbb a helyzet, hogy a már előző inkremensben letesztelt és várhatóan hibátlan szint (a teszt nem talált hibát, természetesen ettől még lehet) már nem teszteljük újra csak annyiban, amennyiben a kérdéses inkrementális szint megköveteli. A statikus ismert unit tesztelés lépései alkalmazhatóak, úgymint: vezérlési út tesztelés, adatfolyam tesztelés, tartomány teszt, funkcionális teszt. A dinamikus tesztelésnél célszerű eljárások: mutációs teszt (biztonságkritikus rendszereknél a mutáció elvileg nem fogadható el), funkcionális tesztelés. 469

2. ábra Alsó rétegben lévő inkremens tesztelése Mivel a kérdéses szoftver elem egy része a szoftvernek, ezért feltételezzük, hogy interfészei nem csatlakozhatnak további valós szoftver elemhez. Továbbá nagy valószínűséggel ez az elem nem a legalsó, vagy a legfelső rétegben van. Ennek következménye, hogy a kérdéses elem interfészeit emulálnunk kell. Nyilván valóan az emulált interfészek is szoftver elemek. Külön kérdést jelent ezeknek az előállítása, illetőleg helyessége. A 2. ábra egy nem tipikus tesztelési szituációt mutat, ahol a kérdéses szoftver elem közel van a fizikai eszközhöz, tehát emulált külső egységeket kell alkalmazni. Esetlegesen, ha rendelkezésre áll a hardver, akkor célszerű azon is az elemet kipróbálni. Így lehetőség nyílik az erőforrás használat és a futásidő mérésére is. Abban az esetben, ha a fejlesztési lépés valamilyen algoritmus, akkor a host-on való futtathatóság megkönnyíti az algoritmus helyességének ellenőrzését. A következő fejezetben erre mutatunk egy példát. Példa Ebben a fejezetben egy algoritmus nem szokványos tesztelését mutatjuk be. A feladat egy GPS alapú navigáció megvalósítása és ellenőrzése. A navigáció célja az, hogy a kitűzött és hosszúsági és szélességi adatokkal megadott célt a légijármű a lehető legrövidebb úton, vagyis ortodrómát követve érje el. A pozíció számítás minden GPS leolvasáskor megtörténik. 470

3. ábra Navigációs szituáció Jelmagyarázat: O a bolygó középpontja, α 1 az aktuális pont hosszúsági koordinátája β 1 az aktuális pont szélességi koordinátája, α 2 a célpont hosszúsági koordinátája, β 2 a célpont szélességi koordinátája, v 1 az aktuális pont helyvektora, v 2 az célpont helyvektora, R a bolygó sugara, ϕ az aktuális pálya (aktuális ponttól a célpontig) szöge az ortodrómán, s az aktuális pálya (aktuális ponttól a célpontig) hossza az ortodrómán, Az aktuális pozíció helyvektora: 1 v 1 =(x y 1) 1 z, ahol rendre: z 1= R sinβ 1, x 1 = R cosα 1 cosβ 1,y 1 = R sinα 1 cosβ 1 A célpont helyvektora: 471

2 v 2 =(x y 2) 2 z, ahol rendre: z 2= Rsin β 2, x 2 = R cosα 2 cosβ 2,y 2 = R sin α 2 cosβ 2 Az ortodróma sík normál egységvektora: n p = v 2 v 1 v 2 v 1 = v 2 v 1 R 2 sin ϕ Az aktuális pályaszög és a hátralévő út az ortodrómán: ϕ= arcsin v 2 v 1 R 2 v2 v1 és s = Rarcsin 2 R Az aktuális hosszúsághoz tartozó ortodróma normál egységvektora: n l= ( sinα 1 cosα 1 0 ) A kérdéses pozícióban a geológiai irányszög a keleti féltekén: δ={arccos n p,n l, β 2 >β 1 π/2, β 2 =β 1 π arccos n p,n l,β 2 <β 1 A számítás után az eredmény radiánban érhető el, ezt könnyen át lehet számítani fokra: δ gr = 180 δ/π Amennyiben valamelyik hosszúsági kör a nyugati, illetve a szélességi kör déli féltekére esik a kérdéses paramétert negatívnak kell venni. Az algoritmus ellenőrzésre több módszer is használható, ezek: ideális gömbön az algoritmus alkalmazása előre meghatározott koordináta értékekkel pontról pontra, a google-maps, illetve a google-earth programon a szimulált navigációs számítások ellenőrzése, Az első módszer nagyon egyszerű a két adott koordináta között gyakorlatilag igen kis lépésekkel ellenőrizzük az útvonalat, majd az eredményt összevetjük az ideális ortodoxával. Ha ezt kellő felbontással képernyőre tesszük igen látványos az esetleges hiba. A második módszer a google-earth használata. Ekkor szintén adott pontból, adott sebességet feltételezve indítjuk az algoritmust. A célpontként kijelölt helyet elfogadható pontossággal kell elérni. Esetünkben a Pécs-Pogány repülőtérről (LHPP pályaközép Lat.: 45 59'21.01"N, Lon.: 18 14'31.99"E) Budaörs repülőtérre (LHBS 27L várópont Lat.: 47 26'58.99"N, Lon.: 18 59'12.98"E) 120 km/h-s sebességet és percenkénti négy mintavételt feltételezve ellenőriztük a navigációt. 472

Ennél a természetesen egy valós GPS jóval sűrűbben biztosít információt. Az eredmény többszöri futtatás után 10 30 méteres hibákat mutatott. Azt mindenképpen szeretnénk megjegyezni, hogy ez nem egy valós navigációs szituáció, hanem egy algoritmus teszt, tehát csak és kizárólag a navigációt teszteltük a légtereket figyelmen kívül hagyva. Ez a teszt virtuális voltát tekintve megtehető. ÖSSZEFOGLALÓ Az inkrementális fejlesztés biztonságkritikus rendszerek esetén közel sem optimális fejlesztési modell, azonban a néha ésszerűtlen határidők betartását elősegítheti. Optimális lenne, ha a fejlesztendő rendszer kellő módszerességgel, egyenletes ütemezésben készülne. Tapasztalatink azt mutatják, hogy kellő módszerességre szinte soha nincs idő. Ezért a fejlesztők már akkor neki kezdenek a tervezésnek és kódolásnak, amikor a rendszer még bőven tartalmaz tisztázatlan részeket. A módszer előnye, hogy ezzel idő takarít meg, mert az adott inkremens korábban készül el és tesztelhető. A legnagyobb felelősség az interfész tesztet végző munkatársakra hárul, nekik kell azokat a lehetséges problémákat felfedezni, amelyek a projekt sikerét és esetlegesen a felhasználók egészségét veszélyeztetik. FELHASZNÁLT IRODALOM [1] FODOR ATTILA - VÖRÖSHÁZI ZSOLT BEÁGYAZOTT RENDSZEREK ÉS PROGRAMOZHATÓ LOGIKAI ESZKÖ- ZÖK. EGYETENI TANANYAG ISBN 978-963-279-500-3 [2] ROGER S. PRESSMAN, PH.D. SOFTWARE ENGINEERING A PRACTITIONER S APPROACH ISBN MCGRAW HILL ISBN 978 0 07 337597 7 [3] CEM KANER JACK FALK - HUNG QUOC NGUYEN TESTING COMPUTER SOFTWARE WILEY ISBN ISBN-10: 0471358460 ISBN-13: 978-0471358466 [4] JÓZSEF KOPJÁK - JÁNOS KOVÁCS: TIMED COOPERATIVE MULTITASK FOR TINY REAL-TIME EMBEDDED SYSTEMS IEEE 10TH JUBILEE INTERNATIONAL SYMPOSIUM ON APPLIED MACHINE INTELLIGENCE AND INFORMATICS, HERL'ANY, SLOVAKIA, ISBN:978-1-4577-0197-9 PP. 377-382 [5] KSHIRASAGAR NAIK, PRIYADARSHI TRIPATHY, SOFTVWARE TESTING AND QUALITY ASSURANCE, WILEY ISBN ISBN 978-0-471-78911-6 473