Mi az a SOA tesztelés?
A SOA (Service Oriented Architecture) tesztelés a SOA építészeti stílusának tesztelése, amelyben az alkalmazáskomponenseket kommunikációs protokollokon keresztüli kommunikációra tervezték, általában hálózaton keresztül.
Ebben az oktatóanyagban megtanulja-
- Mi az a SOA?
- Mi a szolgáltatás?
- SOA tesztelés
- A SOA tesztelésének stratégiája
- SOA vizsgálati módszerek
- Kihívások a SOA tesztelésében
- SOA tesztelő eszközök
- SOA tesztelési felhasználási esetek
Mi az a SOA?
A SOA egy módszer az üzleti alkalmazások és folyamatok integrálására az üzleti igények kielégítése érdekében.
A szoftverfejlesztésben a SOA mozgékonyságot és rugalmasságot biztosít az üzleti folyamatok számára. A folyamat vagy az alkalmazás változásai egy adott komponensre irányíthatók anélkül, hogy a teljes rendszert érintenék.
A SOA szoftverfejlesztői vagy fejlesztenek, vagy megvásárolnak darabokat a SERVICES nevű programokból .
Mi a szolgáltatás?
- A szolgáltatások lehetnek az alkalmazás vagy az üzleti folyamat funkcionális egységei, amelyeket bármely más alkalmazás vagy folyamat újra felhasználhat vagy megismételhet.
(Például a fenti képen a Payment Gateway olyan szolgáltatás, amelyet bármely e-kereskedelmi webhely újrafelhasználhat. Amikor csak fizetésre van szükség, az e-kereskedelmi webhely felhívja / kéri a Payment Gateway szolgáltatást. A fizetés után átjáró, választ küldünk az e-kereskedelem webhelyére)
- A szolgáltatások könnyen összeszerelhetők és könnyen konfigurálhatók az alkatrészek.
- A szolgáltatások összehasonlíthatók az építőelemekkel. Bármely szükséges alkalmazást létrehozhatnak. Könnyű hozzáadni és eltávolítani az alkalmazásból vagy az üzleti folyamatból.
- A szolgáltatásokat inkább az általuk végzett üzleti funkció határozza meg, nem pedig kóddarabok.
Webszolgáltatások
A webszolgáltatások független alkalmazás-összetevők, amelyek az interneten keresztül érhetők el.
Ezek közzétehetők, megtalálhatók és felhasználhatók az interneten. Kommunikálhatnak az interneten keresztül.
- A Szolgáltató a szolgáltatást az interneten teszi közzé.
- Az Ügyfél egy adott webszolgáltatást keres a Webszolgáltatási nyilvántartásból
- A szükséges webszolgáltatás URL-jét és WSDL-jét visszaküldi.
>> A WSDL és az URL használatával a szolgáltató és a kérelmező közötti kommunikáció SOAP-üzenetek útján történik. <<
- Amikor a fogyasztó webszolgáltatást hív, HTTP-kapcsolat jön létre a szolgáltatóval.
SOAP üzenet jön létre, hogy utasítsa a szolgáltatót a szükséges webszolgáltatási logika meghívására.
- A szolgáltatótól kapott válasz SOAP üzenet, amelyet beágyaznak a HTTP válaszba. Ez a HTTP válasz az adatformátum, amelyet a fogyasztói alkalmazás érthet.
Példa
A weboldal és a keresőmotor kezdőlapján megjelenik a mindennapi időjárási jelentés. Ahelyett, hogy az időjárási jelentés szakaszt végig kódolná, az időjárás-jelentés szolgáltatása megvásárolható egy szállítótól és integrálható az oldalakba.
SOA tesztelés
A SOA különféle technológiákból áll. A SOA felhasználásával épített alkalmazások különféle szolgáltatásokat tartalmaznak, amelyek lazán vannak összekapcsolva.
A SOA tesztelésnek 3 rendszerrétegre kell összpontosítania
Szolgáltatási réteg
Ez a réteg az üzleti funkciókból származtatott rendszer által kiszolgált szolgáltatásokból és szolgáltatásokból áll.
Például -
Vegyünk egy Wellness webhelyet, amely a következőkből áll:
- Súlykövető
- Vércukorkövető
- Vérnyomásmérő
A nyomkövetők megjelenítik a megfelelő adatokat és a beírás dátumát. A Szolgáltatások réteg azokból a szolgáltatásokból áll, amelyek a megfelelő adatokat az
- Súlykövető szolgáltatás
- Vércukorkövető szolgáltatás
- Vérnyomásmérő szolgáltatás
- Bejelentkezés szolgáltatás
Folyamatréteg
A Folyamatréteg magában foglalja azokat a folyamatokat, szolgáltatások gyűjtését, amelyek egyetlen funkció részét képezik.
A folyamatok lehetnek a felhasználói felület (ex - A keresőmotor) részei, egy ETL eszköz részei (az adatbázisból származó adatok megszerzéséhez).
Ebben a rétegben a fő hangsúly a felhasználói felületeken és a folyamatokon lesz.
A súlykövető felhasználói felülete és az adatbázisba történő integrálása az elsődleges szempont.
Az alábbi funkciók figyelembe veszik
- Új adatok hozzáadása
- Meglévő adatok szerkesztése
- Új nyomkövető létrehozása
- Adatok törlése
Fogyasztói réteg
Ez a réteg főleg felhasználói interfészeket tartalmaz.
A réteg alapján egy SOA alkalmazás tesztelése három szintre oszlik.
- Szolgáltatási szint
- Interfész szint
- Végtől végig szint
- A felülről lefelé irányuló megközelítést használják a teszttervezéshez.
- Alulról felfelé megközelítést alkalmaznak a tesztfuttatáshoz.
A SOA tesztelésének stratégiája
Teszttervezési megközelítés,
- A SOA tesztelőknek meg kell érteniük az alkalmazás teljes architektúráját.
- Az alkalmazást független szolgáltatásokra kell bontani (Szolgáltatás, amelynek saját kérési és válaszstruktúrája van, és nem függ más szolgáltatástól a válasz kialakításához).
- Az alkalmazásstruktúrát három összetevőre kell átalakítani - Data, Services és front-end alkalmazások.
- Minden elemet gondosan elemezni kell, és az üzleti forgatókönyveket fel kell vázolni.
- Az üzleti forgatókönyveket általános forgatókönyveknek és alkalmazásspecifikus forgatókönyveknek kell besorolni.
- El kell készíteni egy nyomonkövethetőségi mátrixot, és minden tesztesetet üzleti forgatókönyvekre kell visszavezetni.
Teszt végrehajtási megközelítés
- Minden egyes szolgáltatási elemet tesztelni kell.
- Integráció A szolgáltatás összetevőinek tesztelését el kell végezni az adatok áramlásának és a szolgáltatások integritásának ellenőrzése érdekében.
- A teljes modell rendszer tesztelését el kell végezni a front-end alkalmazás és az adatbázis közötti adatáramlás érvényesítése érdekében.
- Teljesítménytesztet kell végezni a finomhangolás és az optimális teljesítmény érdekében.
SOA vizsgálati módszerek
1) üzleti forgatókönyv-vezérelt adatalapú tesztelés,
- Elemezni kell a rendszerrel kapcsolatos különféle üzleti szempontokat.
- Forgatókönyveket kell kidolgozni az integráció alapján
- Az alkalmazás különféle webes szolgáltatásai
- Webszolgáltatások és alkalmazások.
- Az adatokat a fenti forgatókönyvek alapján kell elvégezni.
- Az adatokat úgy kell beállítani, hogy azok lefedjék a végponttól a végig forgatókönyveket is.
2) Csonkok
- A szolgáltatások teszteléséhez hamis interfészeket hoznak létre.
- Ezen interfészek révén különféle bemeneteket lehet biztosítani, és a kimeneteket érvényesíteni lehet.
- Amikor egy alkalmazás egy külső szolgáltatás interfészét használja, amelyet nem tesztelnek (harmadik fél szolgáltatása), akkor csonk hozható létre az integrációs tesztelés során.
3) Regressziós teszt
- Az alkalmazások regressziós tesztelését több kiadás esetén is el kell végezni a rendszerek stabilitásának és elérhetőségének biztosítása érdekében.
- Létrejön egy átfogó regressziós tesztcsomag, amely lefedi azokat a szolgáltatásokat, amelyek az alkalmazás fontos részét képezik.
- Ez a tesztcsomag újból felhasználható a projekt több kiadásában.
4) Szolgáltatás szintű tesztelés
A szolgáltatásszint-tesztelés magában foglalja az összetevő működésének, biztonságának, teljesítményének és átjárhatóságának tesztelését.
Az egyes szolgáltatásokat először függetlenül kell tesztelni.
5) Funkcionális tesztelés
A funkcionális tesztet minden egyes szolgáltatáshoz el kell végezni
- Győződjön meg arról, hogy a szolgáltatás minden válaszra megfelelő választ ad.
- Helytelen hibák érkeznek érvénytelen adatokkal, rossz adatokkal stb. Kapcsolatos kérések esetén.
- Ellenőrizze az egyes kéréseket és válaszokat minden olyan műveletre vonatkozóan, amelyet a szolgáltatásnak futási időben végre kell hajtania.
- Érvényesítse a hibaüzeneteket, ha hiba lép fel a kiszolgáló, az ügyfél vagy a hálózat szintjén.
- Ellenőrizze, hogy a kapott válaszok megfelelő formátumban vannak-e.
- Ellenőrizze, hogy a válaszon kapott adatok megfelelnek-e a kért adatoknak.
6) Biztonsági tesztelés
A webes szolgáltatás biztonsági tesztelése fontos szempont az SOA alkalmazás szolgáltatási szintű tesztelése során; ez biztosítja az alkalmazás biztonságát.
A tesztelés során a következő tényezőket kell figyelembe venni:
- A WS-Security teszteléssel meghatározott ipari szabványt be kell tartania a webszolgáltatásnak.
- A biztonsági intézkedéseknek hibátlanul kell működniük.
- Adatok és digitális aláírások titkosítása a dokumentumokon
- Hitelesítés és engedélyezés
- Az SQL Injection, Malware, XSS, CSRF és egyéb sebezhetőségeket az XML-en kell tesztelni.
- Szolgáltatásmegtagadási támadások
7) Teljesítményvizsgálat
A szolgáltatás teljesítménytesztjét el kell végezni, mivel a szolgáltatások újrafelhasználhatók, és előfordulhat, hogy több alkalmazás használja ugyanazt a szolgáltatást.
A tesztelés során a következő tényezőket veszik figyelembe:
- 8) A szolgáltatás teljesítményét és funkcionalitását nagy terhelés mellett kell tesztelni.
- A szolgáltatás teljesítményét össze kell hasonlítani, miközben egyénileg és az alkalmazáson belül dolgozik, és párosul.
- A szolgáltatás terhelésének tesztelését el kell végezni
- hogy ellenőrizze a válaszidőt
- hogy ellenőrizzék a szűk keresztmetszeteket
- hogy ellenőrizze a CPU és a memória kihasználtságát
- előrejelezni a méretezhetőséget
9) Integrációs szintű tesztelés
- A szervizszint tesztelése csak a szolgáltatások megfelelő működését biztosítja egyenként, nem garantálja a kapcsolt alkatrészek működését.
- Az integrációs tesztelés elsősorban az interfészekre összpontosítva történik.
- Ez a szakasz lefedi az összes lehetséges üzleti forgatókönyvet.
- Az alkalmazás nem funkcionális tesztelését ebben a szakaszban még egyszer el kell végezni. A biztonság, a megfelelőség és a teljesítményvizsgálat minden szempontból biztosítja a rendszer elérhetőségét és stabilitását.
- A kommunikáció és a hálózati protokollokat tesztelni kell a szolgáltatások közötti adatkommunikáció konzisztenciájának igazolása érdekében.
10) Végül-végig tesztelés
Ez a szakasz biztosítja, hogy az alkalmazás funkcionálisan és nem funkcionálisan is igazolja az üzleti követelményeket.
Az alábbi elemeket biztosítani kell a tesztelés végétől a végéig
- Minden szolgáltatás az elvárásoknak megfelelően működik az integráció után
- Kivételek kezelése
- Az alkalmazás felhasználói felülete
- Megfelelő adatáramlás az összes alkatrészen
- Üzleti folyamat
Kihívások a SOA tesztelésében
- Felületek hiánya a Szolgáltatásokhoz
- A folyamatok tesztelése több rendszeren átívelve összetett adatigényeket generál
- Az alkalmazás különböző összetevők gyűjteménye, amelyek hajlamosak változni. A regressziós tesztelés szükségessége gyakoribb.
- A többrétegű architektúra miatt nehéz elkülöníteni a hibákat.
- Mivel a szolgáltatást különféle interfészekben fogják használni, nehéz megjósolni a terhelést, ezért nehézkessé teszi a teljesítményteszt tervezését.
- A SOA heterogén technológiák gyűjteménye. Egy SOA alkalmazás teszteléséhez különböző készségekkel rendelkező emberekre van szükség, ami viszont megnöveli a tervezési és végrehajtási költségeket.
- Mivel az alkalmazás több szolgáltatás integrációja, a biztonsági tesztelésnek megvan a maga baja. A hitelesítés és az engedélyezés igazolása meglehetősen nehéz.
SOA tesztelő eszközök
A piacon számos SOA tesztelő eszköz áll rendelkezésre, amelyek segítik a tesztelőket a SOA alkalmazások tesztelésében. Íme néhány a népszerű SOA tesztelő eszközök közül :
1) SOAP felhasználói felület
A "SOAP UI" egy nyílt forráskódú funkcionális tesztelő eszköz a szolgáltatások és az API teszteléséhez.
- Asztali alkalmazás
- Több protokollt támogat - SOAP, REST, HTTP, JMS, AMF, JDBC
- Webes szolgáltatások fejleszthetők, ellenőrizhetők és meghívhatók.
- Használható terhelési tesztelésre, automatizálási tesztelésre és biztonsági tesztelésre is
- Csonkokat a MockServices hozhat létre
- A Web Service kérelmek és tesztek automatikusan generálhatók a webszolgáltatás kliensén keresztül.
- Beépített jelentéskészítő eszközökkel rendelkezik
- A SmartBear fejlesztette ki
2) iTKO LISA
A "LISA" olyan termékcsomag, amely funkcionális tesztelési megoldást kínál olyan elosztott rendszerek számára, mint a SOA.
- Használható regresszióhoz, integrációhoz, terheléshez és teljesítménytesztekhez is.
- Készítette: iTKO (CA Technologies)
- Használható tesztek tervezésére és végrehajtására.
3) HP szervizteszt
A "Service Test" egy funkcionális tesztelő eszköz, amely támogatja a felhasználói felület és a megosztott szolgáltatások tesztelését is
- A szolgáltatások funkcionális és teljesítménytesztje egyetlen szkript segítségével elvégezhető.
- Integrálva a HP QC-vel.
- A hatalmas mennyiségű szolgáltatás és adat kezelhető.
- Támogatja az interoperabilitási teszteket a JEE, AXIS és DotNet kliens környezetek szimulálásával.
- A HP fejlesztette ki.
4) Parasoft SOA teszt
A SOA Test egy tesztelő és elemző eszközkészlet, amelyet API és API alkalmazások tesztelésére fejlesztettek ki.
- Támogatja a Web Services, REST, JSON, MQ, JMS, TIBCO, HTTP, XML technológiákat.
- Funkcionális, egység, integráció, regresszió, biztonság, interoperabilitás, megfelelőség és teljesítmény tesztelés lehetséges.
- Csonkok létrehozhatók a Parasoft Virtualize segítségével, amelyek intelligensek, mint a SOAP UI.
- A ParaSoft fejlesztette ki
SOA tesztelési felhasználási esetek
Vegyünk egy e-kereskedelmi webhelyet, amely az alábbi függvényeket és alfunkciókat tartalmazza:
Rendelés feldolgozása
1. FÁZIS
A SOA-tesztelés első szakaszában, azaz a Tesztstratégiai szakaszban az alkalmazás Szolgáltatások és üzleti funkciókra van felosztva.
Vizsgáljuk meg alább az alkalmazás Szolgáltatásait.
- Rendelés létrehozása
- Ellenőrizze az Ügyfél állapotát
- Rendelés állapotának módosítása
- Ellenőrizze a megrendelés állapotát
- Ellenőrizze a készletet
Az üzleti funkciók megegyeznek a weboldal funkcióival.
Megjegyzés: A tesztstratégiai dokumentum tartalmazza a tesztelendő szolgáltatás és funkciók listáját.
2. FÁZIS
Teszt tervezés fázis. A teszteseteket minden szintre felírják.
- Végtől végig szint. A teszteseteket minden üzleti felhasználási esetre és folyamatra felírják.
Az alábbiakban bemutatjuk a tesztesetek példáját
- Hozzon létre megrendelést az aktív felhasználóval.
- Hozzon létre megrendelést inaktív felhasználóval.
- Hozzon létre egy megrendelést a rendelkezésre álló termékkel, rendelési mennyiség
- Hozzon létre egy megrendelést a rendelkezésre álló termékkel, rendelési mennyiséggel> rendelkezésre álló mennyiséggel.
- Hozzon létre több tételből álló rendelést
- Teljesen törölje a megrendelést.
- Részben törölje a megrendelést.
- Integrációs szint. A teszteseteket az adatbázis és a felhasználói felület integrálásához írják.
Az alábbiakban példákat mutatunk be.
- Hozzon létre egy új rendelést egyetlen tételből. Ellenőrizze, hogy a rendelés létrejött-e az adatbázisban.
- Hozzon létre egy új rendelést egyetlen tételből. Ellenőrizze, hogy a megrendelésre kiszámított ár helyes-e.
- Hozzon létre egy új rendelést egyetlen tételből. Ellenőrizze, hogy a rendelkezésre álló termék mennyisége kisebb-e a megrendelés összegével.
- Ellenőrizze, hogy a felhasználói felületen megjelenő megrendelés állapota megegyezik-e az adatbázis állapotával.
- Törölje a megrendelést, és ellenőrizze, hogy a rendelés állapota módosult-e az adatbázisban.
- Az első fizetéskor ellenőrizze, hogy a felhasználói felületen megadott fizetési részletek el vannak-e mentve az adatbázisban.
- A kifizetések visszatérítéséhez ellenőrizze, hogy az adatbázis fizetési adatai megjelennek-e a kezelőfelületen.
- Szolgáltatási szint. Minden szolgáltatást tesztelnek az összes adatfeltétel szempontjából.
Az alábbiakban bemutatunk néhány példát.
Nem. | Rendelés részletei | Rendelési feltétel |
---|---|---|
1 | Rendelés létrehozása. Tételek száma = 1 | Mennyiség megrendelésre |
2 | Rendelés létrehozása. Tételek száma> 1 | Mennyiség a megrendelésen |
3 | Rendelések létrehozása = 1 | Mennyiség a megrendelésnél> Mennyiség az adatbázisban |
4 | Ellenőrizze a Megrendelés állapotát | Állapot az adatbázisban = Aktív |
5. | Ellenőrizze a Megrendelés állapotát | Állapot az adatbázisban = Szállítva |
6. | Ellenőrizze a Megrendelés állapotát | Állapot az adatbázisban = Törölt |
7 | Ellenőrizze a Megrendelés állapotát | Rendelés id = érvénytelen |
8. | Ellenőrizze a termékek elérhetőségét | A termék mennyisége> 0 |
9. | Ellenőrizze a termékek elérhetőségét | A termék mennyisége = 0 |
10. | Ellenőrizze a termékek elérhetőségét | Termék azonosítója = érvénytelen |
3. FÁZIS - Teszt végrehajtása
A Tesztfuttatás alulról felfelé irányuló megközelítést használ, azaz először a szolgáltatási szintű tesztelést hajtják végre, majd az integrációs szintet, végül pedig a végétől a végéig tesztelést.
1) Szolgáltatási szint
Vegyük figyelembe, hogy a Soapui eszközt veszik figyelembe az alkalmazás teszteléséhez.
A WSDL és az URL böngészésre kerül a SOAP tesztablakában.
Az egyes szolgáltatások iránti kérelem megjelenik a kérelem ablakban.
Az adatoknak a szolgáltatási szintű tesztesetek szerinti módosításával minden tesztesethez kéréseket hoznak létre.
Próbaper |
Kérés |
Várható válasz |
---|---|---|
Rendelés létrehozása. Tételek száma = 1Mennyiség a megrendelésnél |
|
|
Rendelés létrehozása. Nem. tételek> 1Mennyiség a megrendelésen |
|
|
Hozzon létre rendelési számot. tételek = 1Mennyiség a megrendelésen> Mennyiség a db-n |
|
|
Ellenőrizze a Rendelés állapotát az adatbázisban = Aktív |
|
|
Ellenőrizze a Rendelés állapotát az adatbázisban = Szállítva |
|
|
Check orderOrder id = Érvénytelen |
|
|
A termék elérhetőségének ellenőrzéseA termék mennyisége> 0 |
|
|
A termék elérhetőségének ellenőrzése A termék mennyisége = 0 |
|
|
A termék elérhetőségének ellenőrzése = érvénytelen |
|
|
2) Integrációs szint
Az integrációs szintű teszteseteket a felhasználói felületen és az adatbázisban hajtják végre.
- Rendelés létrehozása egyetlen tételből -
- A felhasználó megnyitja a weboldalt.
- Megy megrendelni.
- Kiválaszt egy érvényes terméket és mennyiséget, és elmenti a megrendelést.
- Meg kell jeleníteni egy üzenetet, miszerint a megrendelés sikeresen megtörtént.
- A felhasználó megnyitja az adatbázist, és ellenőrzi, hogy a megrendelés adatai megegyeznek-e a weboldalon megadott adatokkal.
3) Végtől végig szint
Az üzleti folyamatokat és a felhasználási eseteket a felhasználói felületen hajtják végre.
- Több tételből álló rendelés létrehozása -
- A felhasználó megnyit egy webhelyet.
- Megy megrendelni.
- Érvényes termékről és mennyiségről érdeklődve hozzáadjuk a kosárhoz.
- Más érvényes termékeket hozzáadunk érvényes mennyiségekkel, és a megrendelés elmentésre kerül. A fizetés új fizetési móddal történik, és megrendelés érkezik.
- Meg kell jeleníteni a "Megrendelés sikeresen leadva" üzenetet.
- A tesztelőnek ellenőriznie kell, hogy a teljes folyamat az adatok torzulása nélkül zajlik-e.
Következtetés:
A megfelelő tesztelési stratégia, erőforrások, eszközök és megfelelőség felvázolásával a jó szolgáltatás érdekében a SOA-tesztelés teljes és tökéletesen tesztelt alkalmazást képes biztosítani.