A programkomponensek között különbözı típusú interfészek léteznek. következésképpen különbözı típusú interfészhibák fordulhatnak elı.

Hasonló dokumentumok
SOA modell: Ez az interfész definiálja az elérhető adatokat, és megadja, hogy hogyan lehet azokhoz hozzáférni.

A programkód átvizsgálásának hatékonyságát két ok magyarázza:

Bevezetés az SAP világába. 5. Kommunikációs és integrációs technológiák

Tesztelési folyamat. Integrációs tesztelés:

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

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

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

Szolgáltatásintegráció (VIMIM234) tárgy bevezető

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

S01-7 Komponens alapú szoftverfejlesztés 1

SOAP komponensek Delphiben

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

A prototípus gyors, iteratív fejlesztése azért nagyon fontos, mert a költségek így ellenırizhetık.

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

Szoftver újrafelhasználás

Szolgáltatásintegráció (VIMIM234) tárgy bevezető

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

CORBA bevezetés. Paller Gábor Internet és mobil rendszerek menedzselése

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

23. Szoftver-tesztelés

Osztott Objektumarchitektúrák

E-Számlázás az ECOD rendszeren belül. Horváth Péter, Senior Projekt Menedzser Synergon Retail Systems Kft.

Univerzális munkafolyamat szimulátor

Adatstruktúrák, algoritmusok, objektumok

Bánsághi Anna Bánsághi Anna 1 of 62

Norway Grants. Az akkumulátor mikromenedzsment szabályozás - BMMR - fejlesztés technológiai és műszaki újdonságai. Kakuk Zoltán, Vision 95 Kft.

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

Szolgáltatásorientált rendszerintegráció. SOA-alapú rendszerintegráció. Enterprise Service Bus (ESB) Ercsényi András, BME IIT, 2011.

Információtartalom vázlata

Szoftverarchitektúrák 3. előadás (második fele) Fornai Viktor

ARM Cortex magú mikrovezérlők. mbed

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

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

Szoftverminőségbiztosítás

Eseménykezelés. Szoftvertervezés és -fejlesztés II. előadás. Szénási Sándor.

Szoftverminőségbiztosítás

Debreceni Egyetem Informatikai Kar. Szolgáltatás-orientált programozás az Oracle-ben

Földmérési és Távérzékelési Intézet

Szolgáltatás Orientált Architektúra és több felhasználós adatbázis használata OKF keretein belül. Beke Dániel

Petőfi Irodalmi Múzeum. megújuló rendszere technológiaváltás

Komponens alapú fejlesztés

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

Szolgáltatás-orientált technológiák alkalmazási kérdései Absztrakt 1. Bevezetés

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

Modell alapú tesztelés mobil környezetben

Szoftverprototípus készítése. Szoftverprototípus készítése. Szoftverprototípus készítése

Az objektumorientált megközelítés elınye: Hátránya:

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

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

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

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

Objektum orientált programozás Bevezetés

Internet of Things 2

Mai program. Web Technológiák. Webalkalmazások. Webalkalmazás, mint UI

Absztrakció. Objektum orientált programozás Bevezetés. Általános Informatikai Tanszék Utolsó módosítás:

A folyamat közös fázisai. A szoftverfolyamat modelljei. A vízesésmodell fázis: követelmények elemzése és meghozása

SOA. Szolgáltatás Orientált Architektúra. Jelen és jövı. Várkonyi László IT Architect, IBM SWG. Software. SOA on your terms and our expertise

30 MB INFORMATIKAI PROJEKTELLENŐR

DCOM Áttekintés. Miskolci Egyetem Általános Informatikai Tanszék. Ficsor Lajos DCOM /1

S01-8 Komponens alapú szoftverfejlesztés 2

Webes alkalmazások fejlesztése 10. előadás. Webszolgáltatások tesztelése (ASP.NET Core) Cserép Máté

SOA ALAPÚ INTEGRÁCIÓS LEHETŐSÉGEK AZ E-KÖZIGAZGATÁSBAN

Informatikai alkalmazásfejlesztő Információrendszer-elemző és - tervező

Programozási technológia

Többfelhasználós és internetes térkép kezelés, megjelenítés

WEB-PROGRAMOZÁS II. 1. Egészítse ki a következő PHP kódot a következők szerint: a,b,c,d: <?php. interface Kiir { public function kiir();

III. Alapfogalmak és tervezési módszertan SystemC-ben

Miskolci Egyetem Általános Informatikai Tanszék

A tesztelés feladata. Verifikáció

Simon Balázs Dr. Goldschmidt Balázs Dr. Kondorosi Károly. BME, Irányítástechnika és Informatika Tanszék

Programfejlesztési Modellek

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

A WINETTOU Távközlési Szolgáltató Korlátolt Felelısségő Társaság. Internet szolgáltatásra vonatkozó Általános Szerzıdéses Feltételek

Együttmőködési rendszerek, csoporttevékenység támogatása 2. rész

PROGRAMOZÁS tantárgy. Gregorics Tibor egyetemi docens ELTE Informatikai Kar

Feladat. Bemenő adatok. Bemenő adatfájlok elvárt formája. Berezvai Dániel 1. beadandó/4. feladat április 13. Például (bemenet/pelda.

A szoftverfejlesztés eszközei

Objektumorientált paradigma és programfejlesztés Bevezető

Elosztott rendszerek. Az elıadás. Az elosztott rendszer definíciója. Köztesrétegként felépülı elosztott rendszer

Projectvezetők képességei

A Web-alapú tudásbázis a logisztika és kereskedelem területén (WebLogTrade) projekt bemutatása

gyakorlatban Nagy Gusztáv

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

Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem

Eseményvezérelt alkalmazások fejlesztése I 11. előadás. Szoftverek tesztelése

Új generációs hálózatok. Bakonyi Péter c.docens

OKTATÁSI CSOMAG (SOA)

Bevezetés a Programozásba II 5. előadás. Objektumorientált programozás és tervezés

ALKALMAZÁS KERETRENDSZER

Webes alkalmazások fejlesztése

Adatszerkezetek 2. Dr. Iványi Péter

KAIZEN WORKSHOP. Dr. Németh Balázs Ügyvezetı igazgató Kvalikon Kft. LEAN modulok KAIZEN. Folyamatos. anyagáram. Emberek bevonása

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

Java Business Integration szolgáltatásalapú architektúra JavaEE környezetben. Simon Géza Zsemlye Tamás

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

Fejlesztés, működtetés, felügyelet Hatékony infrastruktúra IBM szoftverekkel

Számítógép architektúra

Web Services. (webszolgáltatások): egy osztott alkalmazásfejlesztési plattform

Objektumorientált paradigma és a programfejlesztés

rendszerszemlélető, adatközpontú funkcionális

Átírás:

1 Az interfésztesztelésre mikor kerül sor? amikor egy nagyobb rendszer létrehozásához modulokat és alrendszereket integrálunk, amelyek egymással interfészeken keresztül kommunikálnak. Ez a fajta tesztelés különösen fontos az objektum-orientált és a komponens alapú programozásnál ahol osztályokat, objektumokat és komponenseket újrafelhasználunk. Itt a hibák inkább az objektumok között interakciók eredményei nem az egyedi objektumok viselkedésébıl adódnak. 2 A programkomponensek között különbözı típusú interfészek léteznek. következésképpen különbözı típusú interfészhibák fordulhatnak elı. 1. Paraméter-interfészek: Ezek olyan interfészek, ahol az adat- vagy néha a függvényreferenciák továbbítódnak az egyik komponenstıl a másikhoz. 2. Osztott memóriájú interfészek: Olyan interfész, ahol egy memóriablokk van megosztva az alrendszerek között. Az adatokat az egyik alrendszer a memóriába írja, ahonnan egy másik alrendszer kiolvassa. 3. Procedurális interfészek: Ezek olyan interfészek, ahol az egyik alrendszer a más alrendszerek által hívható eljárások egy halmazát bezárja. 4. Üzenettovábbító interfészek: Ezek olyan interfészek, ahol egy alrendszer valamilyen szolgáltatást kér egy másik alrendszertıl úgy, hogy üzenetet továbbít hozzá. A szolgáltatás lefuttatásával kapott eredményeket pedig egy válaszüzenet tartalmazza. 3 4 1

Komplex rendszereknél a gyakori interfészhibák: Interfész téves alkalmazása: fıleg a paraméter interfészeknél fordul elı. Rossz típusú, rossz sorrendő, nem megfelelı számú paraméter átadás. Interfész félreértelmezése: A hívó komponens félreértelmezi a hívott specifikációját. pl. a bináris keresést meghívjuk egy rendezetlen tömbbel, így a keresés hibás lesz. Idızítési hibák: valós idejő rendszereknél fordul elı, amelyek osztott memóriájú vagy üzenettovábbító interfészt használnak. Az adat elıállítója és feldolgozója eltérı sebességgel üzemelhet, így a feldolgozó idejétmúlt adatot kaphat. 5 Az interfészhibák tesztelése nehéz. mert néhányuk csak szokatlan feltételek között jelentkezik. Pl.: egy objektum fix hosszúságú struktúraként implementál egy sort. A hívó objektum feltételezheti, hogy a sor végtelen adatstruktúraként lett megvalósítva, és nem ellenırzi a túlcsordulást. Ez a hiba csak akkor derül ki a tesztelés során, ha a teszteset kierılteti a túlcsordulást. 6 Tesztesettervezés: a rendszer- és komponenstesztelés azon része, amikor a rendszer tesztelését végzı tesztesetek tervezése történik. A folyamat célja a program hiányosságainak hatékony felderítésére alkalmas tesztesetek kialakítása. A tesztesetek tervezésekor különbözı lehetıségek közül választhatunk: Követelmény alapú tesztelés Partíciós tesztelés A strukturális tesztelés 1. Követelmény alapú tesztelés: Amikor a teszteseteket a rendszer követelményeinek tesztelése céljából készítjük. 2. Partíciós tesztelés: Input és output partíciókat hozunk létre, úgy tervezzük meg a teszteket, hogy a rendszer minden partícióból lefuttatja az inputokat, és minden partícióba generál outputot. 3. A strukturális tesztelés: A program részeit vizsgáló teszteket a program szerkezetének ismeretében készítjük el. 7 8 2

A tesztesetek tervezésének egyik alapelve: a követelményekbıl kiindulva a legmagasabb szintő tesztekkel kezdjünk, majd a részletesebb tesztekkel folyamatosan, a partíciós és a strukturális tesztek segítségével bıvítsünk. A követelmény-alapú tesztelés olyan szisztematikus teszteset tervezést jelent, amikor az egyes követelményekbıl tesztsorozatokat származtat. Ez a tesztelési mód inkább validáció, mintsem hiányosságtesztelés azt próbálja bemutatni, hogy a rendszer megfelelıen megvalósítja a követelményekben leírtakat. 9 10 Egy program inputjai általában különbözı osztályokba esnek. Ezek rendelkeznek valamilyen közös jellemzıvel, pl. pozitív vagy negatív számok, szóköz nélküli sztringek, stb. A programok általában az osztály minden tagjára hasonló módon viselkednek. Ezért nevezik ezeket ekvivalencia osztályoknak vagy tartományoknak. Ekvivalencia-osztály például az érvénytelen és az érvényes inputok halmaza is. A hiányosságtesztelés szisztematikus megközelítése az ekvivalencia-osztályok azonosításán alapul. Elıször meg kell határozni az osztályokat, majd minden osztályból teszteseteket kell választani. Az osztály határáról és közepérıl is érdemes teszteseteket választani. Az ekvivalencia-osztályok a programspecifikáció vagy a felhasználói dokumentáció alapján azonosíthatók. 11 12 3

A struktúrateszt esetében: a teszteket a szoftver struktúrájának és implementációjának ismeretében készítjük. Ezt a megközelítést néha hívják fehér doboz tesztelésnek. Többnyire kis programegységekre, objektumokra, alprogramokra alkalmazzák. Az algoritmusról szerzett tudás alapján pontosabban tudjuk azonosítani az ekvivalencia-osztályokat. Pl.: a keresıeljárás legyen a bináris keresés, ahol a sorozatot egy rendezett tömbként adjuk át. A kód vizsgálatával láthatjuk, hogy a keresési teret három részre lehet osztani: középsı elem, nála kisebbek és nála nagyobbak. A tesztelés a szoftverfolyamat drága és fáradságos szakasza. Ennek eredményeképpen az elsık között kifejlesztett szoftvereszközök a tesztelı eszközök voltak. Ilyen keretrendszer a JUnit, amely Java-osztályok olyan halmaza, amit a felhasználó kibıvíthet annak érdekében, hogy létrehozzon egy automatizált tesztkörnyezetet. Minden egyedi tesztet objektumként kell megvalósítani, és a teszt végrehajtója futtatja az összes tesztet. A teszteket úgy kell megírni, hogy jelezzék, hogy a tesztelt rendszer elvárt módon viselkedik-e. 13 14 A szolgáltatásorientált architektúra (serviceoriented architecture, SOA) az elosztott rendszerek fejlesztésének módja, ahol a rendszerek komponensei különálló szolgáltatások. Ezek a szolgáltatások földrajzilag egymástól távol elhelyezkedı számítógépeken futhatnak. A szolgáltatások kommunikációjának és az adatcserének a támogatására számos szabványos protokoll született. 15 16 4

Következésképpen egy szolgáltatás lényege: a szolgáltatás biztosítása független a platformtól, az implementációs nyelvtıl és a szolgáltatást igénybe vevı alkalmazástól. Szolgáltatás: lazán csatolt, újrafelhasználható szoftverkomponens, amely olyan diszkrét funkcionalitást zár be, amely elosztható és programozói eszközökkel elérhetı. A www fejlıdése: azt eredményezte, hogy a kliensszámítógépek saját szervezetükön kívül elhelyezkedı távoli szerverekhez is hozzáférnek. Ha az információikat HTML-formátumra hozták, akkor azok elérhetıvé váltak. Azonban ez a hozzáférés kizárólag csak webböngészın keresztül volt lehetséges, és az információtárolókhoz történı közvetlen hozzáférés nem volt megvalósítható. 17 18 Ennek a problémának a kiküszöbölése érdekében alakult ki a webszolgáltatások fogalma. A webszolgáltatás segítségével az információk elérhetıvé válnak más programok számára is egy web-szolgáltatás-interfész definiálásával és publikálásával. Ez az interfész definiálja az elérhetı adatokat, és megadja, hogy hogyan lehet azokhoz hozzáférni. Webszolgáltatás: olyan szolgáltatás, amely szabványos internetes és XML-alapú szabványokkal érhetı el. Kesesés Szolgáltatást igénylı (UDDI) Szolgáltatást tároló Publikálás Szolgáltatást nyújtó Szolgáltatás (WSDL) 19 20 5

A szolgáltatások gyártói: megtervezik és implementálják a szolgáltatásokat, majd egy WSDL nevő nyelven specifikálják azokat. Ezenkívül a szolgáltatásokról információkat publikálnak egy általánosan elérhetı tárolóban az UDDI publikációs szabvány segítségével. A szolgáltatások igénybe vevıi: (néha szolgáltatáskliensnek is nevezik ıket) akik szeretnének használni egy szolgáltatást, keresést hajtanak végre az UDDI-tárolóban, hogy megtalálják azt, valamint annak nyújtóját. Ezután alkalmazásukat összekapcsolhatják az adott szolgáltatással, és kommunikálhatnak azzal. A kommunikációhoz általában a SOAP nevő protokollt használják. A szolgáltatásorientált architektúra hatalmas fejlıdést jelent, különösen az üzleti alkalmazásrendszerek szempontjából. 21 22 Oka: Rugalmasságot biztosít: a szolgáltatások elkészíthetık helyileg, illetve igénybe vehetık külsı szolgáltatóktól. A szolgáltatások bármilyen nyelven implementálhatók: így lehetıvé teszi, hogy a vállalat különbözı részein esetlegesen használt különbözı platformok és implementációs technológiák együttmőködhessenek. Ami a legfontosabb, a szolgáltatások segítségével a cégek és más szervezetek képesek az együttmőködésre, valamint egymás üzleti funkcióinak használatára. 23 A szolgáltatásorientált architektúrák nem szenvednek inkompatibilitási problémáktól, mert a fejlesztéseket a kezdetektıl aktív szabványosítási folyamat követte. Alapvetı szabványok a webszolgáltatás támogatására: 24 6

SOAP: Egy üzenetcsere-szabvány, amely a szolgáltatások közötti kommunikációt támogatja. Definiálja a szolgáltatások üzeneteinek szükséges és opcionális komponenseit. WSDL: Webszolgáltatás definíciós nyelv (Web Service Definition Language, WSDL) definiálja, hogyan kell a szolgáltatások gyártóinak elkészíteniük szolgáltatásaik interfészeit. UDDI: Az Univerzális leírás, felfedezés és integráció (Universal Description, Discovery and Integration, UDDI) szabványa. Definiálja, hogy milyen komponenseket kell tartalmaznia a szolgáltatások specifikációinak, hogy könnyen felfedezhetık legyenek. Ez információkat tartalmaz a szolgáltatás gyártójáról, a szolgáltatásról, a szolgáltatás leírásának helyérıl. Az UDDI-tárolók segítségével fedezhetik fel a felhasználók az elérhetı szolgáltatásokat. 25 26 WS-BPEL: Szabványos munkafolyamat nyelv, különbözı szolgáltatásokat tartalmazó folyamatprogramok definiálására használatos. 27 28 7

A szolgáltatástervezés: az a folyamat, melynek során szolgáltatásorientált alkalmazásokban újrafelhasználható szolgáltatásokat fejlesztünk ki. A szolgáltatások tervezıinek biztosítaniuk kell: hogy a szolgáltatás egy olyan újrafelhasználható absztrakciót reprezentál, amely különbözı rendszerek számára is hasznos lehet. A szolgáltatástervezés folyamatának három logikai állomása van: Szolgáltatásjelöltek azonosítása: Itt megkeressük azokat a lehetséges szolgáltatásokat, amelyeket a késıbbiekben implementálhatunk, és definiáljuk a szolgáltatások követelményeit. Szolgáltatások megtervezése: Ebben a szakaszban tervezzük meg a logikai és a WSDL szolgáltatásinterfészeket. Szolgáltatások implementációja és üzembe helyezése: Itt implementáljuk és teszteljük a szolgáltatásokat, majd a felhasználók számára hozzáférhetıvé tesszük ıket. 29 30 A szolgáltatásoknak az üzleti logikát kell támogatniuk. A szolgáltatás-jelöltek azonosítási folyamatának feladata: megértse és elemezze a szervezet üzleti folyamatait, majd eldöntse, milyen szolgáltatások szükségesek a folyamatok támogatásához. Alapvetıen a szolgáltatásoknak három típusa különböztethetı meg: Segédszolgáltatások, Üzleti szolgáltatások, Koordinációs vagy folyamatszolgáltatások 31 32 8

1. Segédszolgáltatások: Ezek olyan általános funkcionalitást implementálnak, amit különbözı üzleti folyamatok használhatnak. Pl.: egy pénznemátváltó szolgáltatás, amelynek feladata egy pénznem (például dollár) átváltása egy másikra (például euró). 2. Üzleti szolgáltatások: Ezek a szolgáltatások egy bizonyos üzleti folyamathoz kapcsolódnak. Pl.: üzleti szolgáltatás lehetne például a hallgatók regisztrálása egy kurzusra. 3. Koordinációs vagy folyamatszolgáltatások: Ezek a szolgáltatások sokkal általánosabb üzleti folyamatot támogatnak, amelyben több különbözı faktor és tevékenység is megjelenhet. Koordinációs szolgáltatásra jó példa egy vállalat rendelési szolgáltatása, amelyben az ügyfelek leadhatják rendeléseiket és fizethetnek. 33 34 A szolgáltatásjelöltek azonosítása során cél: olyan szolgáltatások kiválasztása, amelyek logikai egységet alkotnak, függetlenek és újrafelhasználhatók. A folyamat végeredménye az azonosított szolgáltatások halmaza, valamint a hozzájuk kapcsolódó követelmények. 35 36 9