Mi az a SOA tesztelés? Oktatóanyag példával
Mi az a SOA tesztelés?
SOA (szolgáltatás-orientált ArchiTecture) A tesztelés egy olyan SOA architektúra tesztelése, amelyben az alkalmazás összetevői úgy vannak kialakítva, hogy kommunikációs protokollokon keresztül kommunikáljanak, jellemzően hálózaton keresztül.
Mi az a SOA?
A SOA az üzleti alkalmazások és folyamatok integrálásának módszere az üzleti igények kielégítése érdekében.
A szoftverfejlesztés területén a SOA agilitást és rugalmasságot biztosít az üzleti folyamatokhoz. A folyamat vagy az alkalmazás módosításai egy adott összetevőre irányíthatók anélkül, hogy az egész rendszert érintenék.
A SOA szoftverfejlesztői programcsomagokat fejlesztenek vagy vásárolnak SZOLGÁLTATÁSOK.
Mi az a szolgáltatás?
- A szolgáltatások az alkalmazás vagy az üzleti folyamat funkcionális egységei lehetnek, amelyeket bármely más alkalmazás vagy folyamat újra felhasználhat vagy megismételhet. (A fenti képen például a Payment Gateway olyan szolgáltatás, amelyet bármely e-kereskedelmi webhely újra felhasználhat. Amikor fizetésre van szükség, az e-kereskedelmi webhely felhívja/kéri a Payment Gateway szolgáltatást. Miután a fizetés megtörtént egy átjárón, a rendszer választ küld az e-kereskedelmi webhelyre.)
- A szolgáltatások könnyen összeszerelhetők és könnyen átkonfigurálhatók az összetevők.
- A szolgáltatások az építőelemekhez hasonlíthatók. Bármilyen szükséges alkalmazást képesek létrehozni. Hozzáadásuk és eltávolításuk az alkalmazásból vagy az üzleti folyamatból egyszerű.
- A szolgáltatásokat inkább az általuk végrehajtott üzleti funkció határozza meg, nem pedig kóddarabok.
Web Services
A webszolgáltatások független alkalmazáskomponensek, amelyek a weben keresztül érhetők el.
Ezeket közzé lehet tenni, megtalálni és felhasználni a weben. Az interneten keresztül tudnak kommunikálni.
- 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óból
- A URL és a szükséges webszolgáltatás WSDL-je visszaadásra kerül. A WSDL és a URLA szolgáltató és a kérelmező közötti kommunikáció SOAP üzeneteken keresztül történik.
- Amikor a fogyasztó felhív egy webszolgáltatást, HTTP-kapcsolat jön létre a szolgáltatóval.
Egy SOAP üzenet jön létre, amely utasítja a szolgáltatót a szükséges webszolgáltatási logika meghívására. - A szolgáltatótól kapott válasz egy SOAP-üzenet, amely be lesz ágyazva a HTTP-válaszba. Ez a HTTP-válasz a fogyasztói alkalmazás számára érthető adatformátum.
Példa
A webhely és a keresőmotor kezdőlapja a mindennapi időjárás-jelentést jeleníti meg. Az időjárás-jelentés rész teljes kódolása helyett megvásárolható az időjárás-jelentés szolgáltatása az eladótól, és beépíthető az oldalakba.
SOA tesztelés
A SOA különféle technológiákból áll. A SOA segítségével épített alkalmazásoknak különféle szolgáltatásai vannak, amelyek lazán kapcsolódnak egymáshoz.
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ármazó rendszer által kitett szolgáltatásokból, szolgáltatásokból áll.
Például -
Fontolja meg a Wellness Weboldalt, amely a következőkből áll
- Súly Tracker
- Vércukor Tracker
- Vérnyomás Tracker
TracA ker-ek megjelenítik a megfelelő adatokat és a bevitel dátumát. A szolgáltatási réteg azokból a szolgáltatásokból áll, amelyek az adatbázisból szerzik be a megfelelő adatokat –
- Súly Tracker szolgáltatás
- Vércukor Tracker szolgáltatás
- Vérnyomás Tracker szolgáltatás
- Bejelentkezési szolgáltatás
Folyamatréteg
A Process Layer olyan folyamatokból, szolgáltatások gyűjteményéből áll, amelyek egyetlen funkcionalitás részét képezik.
A folyamatok lehetnek a felhasználói felület részei (pl. keresőmotor), egy ETL eszköz részei (adatgyűjtésre az adatbázisból).
Ebben a rétegben a fő hangsúly a felhasználói felületeken és a folyamatokon lesz.
A súly felhasználói felülete tracA ker és az adatbázissal való integrációja a fő hangsúly.
Az alábbi funkciókat figyelembe kell venni
- Új adatok hozzáadása
- Meglévő adatok szerkesztése
- Új létrehozása tracker
- Adatok törlése
Fogyasztói réteg
Ez a réteg főleg felhasználói felületekből áll.
A réteg alapján egy SOA-alkalmazás tesztelése három szintre oszlik.
- Szolgáltatási szint
- Az interfész szintje
- End to End szint
- A teszttervezés során felülről lefelé megközelítést alkalmaznak.
- Alulról felfelé megközelítést használnak a tesztvégrehajtáshoz.
A SOA tesztelési 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és- és válaszstruktúrája van, és nem függ semmilyen más szolgáltatástól a válaszadáshoz).
- Az alkalmazásstruktúrát három részre kell átszervezni – adatok, szolgáltatások és előtér-alkalmazások.
- Minden összetevőt gondosan elemezni kell, és ki kell jelölni az üzleti forgatókönyveket.
- Az üzleti forgatókönyveket általános és alkalmazásspecifikus forgatókönyvekként kell besorolni.
- A Tracteljesítőképességi mátrix elő kell készíteni, és minden tesztesetet tracüzleti forgatókönyvekhez igazítva.
Tesztvégrehajtási megközelítés
- Minden szolgáltatási összetevőt tesztelni kell.
- Integrációs tesztelés A szolgáltatáskomponensek közül a szolgáltatásokon keresztüli adatáramlás és az adatintegritás érvényesítése érdekében kell elvégezni.
- Rendszer tesztelés A teljes modellt meg kell tenni a front-end alkalmazás és az adatbázis közötti adatáramlás érvényesítéséhez.
- Teljesítményfelmérés a finomhangolás és az optimális teljesítmény érdekében meg kell tenni.
SOA tesztelési módszerek
1) Üzleti forgatókönyv-vezérelt adatalapú tesztelés,
- Elemezni kell a rendszerrel kapcsolatos különféle üzleti szempontokat.
- A forgatókönyveket integrálása alapján kell kidolgozni
- Különféle Webes szolgáltatások az alkalmazásból
- Webszolgáltatások és alkalmazások.
- Az adatbeállítást a fenti forgatókönyvek alapján kell elvégezni.
- Az adatbeállítást úgy kell elvégezni, hogy a végpontok közötti forgatókönyveket is lefedje.
2) Csonkok
- Dummy interfészek jönnek létre a szolgáltatások tesztelésére.
- Ezeken az interfészeken keresztül különféle bemenetek biztosíthatók, és a kimenetek érvényesíthetők.
- Ha egy alkalmazás egy külső szolgáltatáshoz használ interfészt, amely nincs tesztelés alatt (harmadik féltől származó szolgáltatás), akkor az integrációs tesztelés során létrehozható egy csonk.
3) Regressziós tesztelés
- Regressziós teszt a rendszer stabilitásának és elérhetőségének biztosítása érdekében több kiadás esetén kell elvégezni az alkalmazáson.
- Egy átfogó regressziós tesztcsomag készül, amely lefedi az alkalmazás fontos részét képező szolgáltatásokat.
- Ez a tesztcsomag a projekt több kiadásában újra felhasználható.
4) Szolgáltatási szintű tesztelés
A szolgáltatási szintű tesztelés magában foglalja az összetevő funkcionalitásának, biztonságának, teljesítményének és együttműködési képességének tesztelését.
Minden egyes szolgáltatást először függetlenül kell tesztelni.
5) Funkcionális tesztelés
Funkcionális tesztelést kell végezni minden szolgáltatásnál
- Győződjön meg arról, hogy a szolgáltatás minden kérésre a megfelelő választ ad.
- Helyes hibák érkeznek az érvénytelen adatokkal, hibás adatokkal stb.
- Ellenőrizze az egyes kéréseket és válaszokat minden egyes művelethez, amelyet a szolgáltatásnak futási időben végre kell hajtania.
- Érvényesítse a hibaüzeneteket, ha hiba történik a szerver, az ügyfél vagy a hálózat szintjén.
- Ellenőrizze, hogy a kapott válaszok megfelelő formátumban vannak-e.
- Érvényesíteni, hogy a válaszon kapott adatok megfelelnek-e a kért adatoknak.
6) Biztonsági tesztelés
A webszolgáltatás biztonsági tesztelése fontos szempont a 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 webszolgáltatásnak be kell tartania a WS-Security teszt által meghatározott iparági szabványt.
- A biztonsági intézkedéseknek kifogástalanul kell működniük.
- Az adatok titkosítása és Digital aláírások a dokumentumokon
- Hitelesítés és engedélyezés
- Az SQL Injection, Malware, XSS, CSRF és egyéb sérülékenységeket az XML-en kell tesztelni.
- Szolgáltatásmegtagadási támadások
7) Teljesítményteszt
A szolgáltatás teljesítménytesztjét el kell végezni, mivel a szolgáltatások újrafelhasználhatók, és több alkalmazás is használhatja ugyanazt a szolgáltatást.
A tesztelés során a következő tényezőket veszik figyelembe:
- A szolgáltatás teljesítményét és működőképességét erős terhelés mellett is tesztelni kell.
- A szolgáltatás teljesítményét egyénileg és alkalmazáson belüli munkavégzés közben is össze kell hasonlítani, ez párosul.
- A szolgáltatás terhelési tesztelését el kell végezni
- a válaszidő ellenőrzéséhez
- hogy ellenőrizze a szűk keresztmetszeteket
- a CPU és a memória kihasználtságának ellenőrzésére
- a méretezhetőség előrejelzésére
8) Integrációs szintű tesztelés
- A szolgáltatási szintű tesztelés csak a szolgáltatások egyenkénti megfelelő működését biztosítja, a kapcsolt komponensek működését nem garantálja.
- Az integrációs tesztelés elsősorban az interfészekre koncentrálva történik.
- Ez a fázis az összes lehetséges üzleti forgatókönyvet lefedi.
- Ebben a fázisban még egyszer el kell végezni az alkalmazás nem funkcionális tesztelését. A biztonság, a megfelelőség és a teljesítménytesztelés biztosítja a rendszer rendelkezésre állását és stabilitását minden szempontból.
- A kommunikációs és hálózati protokollokat tesztelni kell a szolgáltatások közötti adatkommunikáció konzisztenciájának ellenőrzésére.
9) Végponttól végéig tesztelés
Ez a fázis biztosítja, hogy az alkalmazás mind funkcionálisan, mind nem funkcionálisan megfeleljen az üzleti követelményeknek.
Az alábbi elemeket a tesztelés végétől a végéig tesztelni kell
- Az integráció után minden szolgáltatás az elvárásoknak megfelelően működik
- Kivételkezelés
- Az alkalmazás felhasználói felülete
- Megfelelő adatáramlás az összes komponensen keresztül
- Üzleti folyamat
Kihívások a SOA tesztelésében
- Interfészek hiánya a szolgáltatásokhoz
- A tesztelési folyamat több rendszeren is átível, így összetett adatigények keletkeznek
- Az alkalmazás különböző összetevők gyűjteménye, amelyek hajlamosak változni. Gyakrabban van szükség regressziós tesztre.
- A többrétegű architektúra miatt nehéz elkülöníteni a hibákat.
- Mivel a szolgáltatást különböző felületeken fogják használni, nehéz megjósolni a terhelést, így nehézkessé teszi a teljesítménytesztek 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 nö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 ellenőrzése meglehetősen nehéz.
SOA tesztelési 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ési eszközök:
1) SOAP UI
"SOAP UI„egy nyílt forráskódú funkcionális tesztelési eszköz szolgáltatásokhoz és API tesztelés.
- Asztali alkalmazás
- Több protokollt támogat – SOAP, REST, HTTP, JMS, AMF, JDBC
- A webszolgáltatások fejleszthetők, ellenőrizhetők és előhívhatók.
- Használható terhelési tesztelésre is, Automatizálási tesztelésés biztonsági tesztelés
- Csonkokat a MockServices hozhat létre
- A webszolgáltatási kérések és tesztek automatikusan generálhatók a webszolgáltatási kliensen keresztül.
- Beépített jelentéskészítő eszközökkel rendelkezik
- A SmartBear fejlesztette ki
2) iTKO LISA
A „LISA” egy olyan termékcsomag, amely funkcionális tesztelési megoldást kínál elosztott rendszerek, például SOA számára.
- Regresszióhoz, integrációhoz, terheléshez és teljesítményteszthez is használható.
- Az iTKO (CA Technologies) fejlesztette
- Tesztek tervezésére és végrehajtására használható.
3) HP szervizteszt
A „Service Test” egy funkcionális tesztelő eszköz, amely támogatja mind a felhasználói felület, mind a megosztott szolgáltatások tesztelését
- A szolgáltatások funkcionális és teljesítménytesztje is elvégezhető egyetlen szkripttel.
- Integrálva a HP QC-vel.
- A hatalmas mennyiségű szolgáltatás és adat kezelhető.
- Támogatja az interoperabilitás tesztelését a JEE, AXIS és DotNet klienskörnyezetek szimulálásával.
- A HP fejlesztette.
4) Parasoft SOA teszt
A SOA Test egy tesztelési és elemző eszközcsomag, amelyet API és API alkalmazások tesztelésére fejlesztettek ki.
- Támogatja a webszolgáltatásokat, 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ényteszt lehetséges.
- A csonkok a Parasoft Virtualize segítségével hozhatók létre, amelyek intelligensebbek, mint a SOAP UI.
- A ParaSoft fejlesztette
SOA tesztelési használati esetek
Tekintsünk egy e-kereskedelmi webhelyet, amely az alábbi funkciókat és alfunkciókat tartalmazza:
Rendelés feldolgozása
1. FÁZIS
A SOA tesztelés első fázisában, azaz a Tesztstratégia fázisban az alkalmazás Szolgáltatásokra és üzleti funkciókra oszlik.
Tekintsük az alábbiakban az alkalmazásban szereplő szolgáltatásokat.
- Rendelés létrehozása
- Ellenőrizze az Ügyfél állapotát
- Megrendelés állapotának módosítása
- Rendelési állapot ellenőrzése
- Ellenőrizze a készletet
Az üzleti funkciók megegyeznek a Weboldal funkcióival.
Jegyzet: A tesztelési stratégia dokumentum tartalmazza a szolgáltatás és a tesztelendő funkciók listáját.
2. FÁZIS
Teszt tervezési szakasz. Minden szinthez teszteseteket írnak.
- End to End szint. A tesztesetek minden üzleti felhasználási esethez és folyamathoz meg vannak írva. Az alábbiakban a tesztesetek példája látható
- Hozzon létre egy rendelést az aktív felhasználóval.
- Hozzon létre egy rendelést inaktív felhasználóval.
- Hozzon létre egy rendelést a rendelkezésre álló termékkel a rendelési mennyiség < elérhető mennyiség.
- Hozzon létre rendelést a rendelkezésre álló termékkel a rendelési mennyiség > elérhető mennyiség megadásával.
- Hozzon létre egy rendelést több tételből
- Teljesen törölje a rendelést.
- A rendelés részleges törlése.
- Integrációs szint. A tesztesetek az adatbázis és a felhasználói felület integrációjához készültek. Az alábbiakban példa teszteseteket talál.
- Hozzon létre új rendelést egyetlen tétellel. Ellenőrizze, hogy a rendelés létrejött-e az adatbázisban.
- Hozzon létre új rendelést egyetlen tétellel. Ellenőrizze, hogy a rendelésre számított ár helyes-e.
- Hozzon létre új rendelést egyetlen tétellel. Ellenőrizze, hogy a rendelkezésre álló termék mennyisége kevesebb-e a rendelési mennyiséggel.
- Ellenőrizze, hogy a felhasználói felületen megjelenített rendelés állapota megegyezik-e az adatbázisban lévővel.
- Törölje a rendelést, és ellenőrizze, hogy a megrendelés állapota módosult-e az adatbázisban.
- Az első fizetéskor ellenőrizze, hogy a felhasználói felületen megadott fizetési adatok mentésre kerültek-e az adatbázisban.
- Fizetések visszatérítéséhez ellenőrizze, hogy az adatbázisban szereplő fizetési adatok megjelennek-e a felhasználói felületen.
- Szolgáltatási szint. Minden szolgáltatást az összes adatfeltételre tesztelnek.
Az alábbiakban néhány példa látható.
| Nem. | Megrendelni Részletek | Megrendelés állapota |
|---|---|---|
| 1 | Rendelés létrehozása. Elemek száma = 1 | Rendelési mennyiség < Mennyiség az adatbázisban |
| 2 | Rendelés létrehozása. Elemek száma > 1 | Rendelési mennyiség < Mennyiség az adatbázisban. |
| 3 | Rendelési tétel létrehozása = 1 | Mennyiség a rendelésben > Mennyiség az adatbázisban |
| 4 | Ellenőrizze a rendelés állapotát | Állapot az adatbázisban = Aktív |
| 5 | Ellenőrizze a rendelés állapotát | Állapot az adatbázisban = Szállítva |
| 6 | Ellenőrizze a rendelés állapotát | Állapot az adatbázisban = Megszakítva |
| 7 | Ellenőrizze a rendelés állapotát | Rendelési azonosító = Érvénytelen |
| 8 | Ellenőrizze a termék elérhetőségét | Termék mennyisége >0 |
| 9 | Ellenőrizze a termék elérhetőségét | A termék mennyisége =0 |
| 10 | Ellenőrizze a termék elérhetőségét | Termékazonosító = érvénytelen |
3. FÁZIS – Tesztvégrehajtás
A tesztvégrehajtás alulról felfelé építkező megközelítést alkalmaz, azaz először a szolgáltatási szintű tesztelést, majd az integrációs szintet és végül a tesztelést végzik el Tesztelés végétől végéig.
1) Szolgáltatási szint
Gondoljuk át ezt Soapui eszközt kell figyelembe venni az alkalmazás teszteléséhez.
Az wsdl és a URL a SOAP tesztablakába böngészhetők.
Az egyes szolgáltatások kérése megjelenik a kérés ablakban.
Az adatok szolgáltatási szintű tesztesetek szerinti módosításával minden tesztesethez kérések jönnek létre.
| Teszt eset | Kérjen | Várható válasz |
|---|---|---|
| Rendelés létrehozása. Cikkszám = 1Mennyiség a rendelésre < Mennyiség db | x2 2 | o3251 Sikeres |
| Rendelés létrehozása.No. tételek > 1Mennyiség a rendelésen < Mennyiség a db | y1 1 y2 3 | o3251 Sikeres |
| Rendelési szám létrehozása tétel = 1Rendelt mennyiség > Mennyiség db | x23 200 | nulla Sikertelen |
| Megrendelés állapotának ellenőrzése Állapot az adatbázisban = Aktív | o9876 | Aktív Sikeres |
| A rendelés állapotának ellenőrzése Állapot az adatbázisban = Szállítva | o9656 | Kiszállított Sikeres |
| Megrendelés állapotának ellenőrzéseRendelési azonosító = Érvénytelen | y5686 | nulla Sikertelen |
| Termék elérhetőségének ellenőrzése Termék mennyisége >0 | d34 | 34 Igen Sikeres |
| Termék elérhetőségének ellenőrzése Termék mennyisége =0 | y34 | 0 nem Sikeres |
| A termék elérhetőségének ellenőrzéseTermékazonosító = érvénytelen | sder | Sikertelen |
2) Integrációs szint
Az integrációs szintű tesztesetek a felhasználói felületen és az adatbázisban futnak.
- Rendelés létrehozása egyetlen tétellel –
- A felhasználó megnyitja a webhelyet.
- Megrendelésre megy.
- Kiválaszt egy érvényes terméket és mennyiséget, és elmenti a rendelést.
- Meg kell jelennie egy üzenetnek, amely szerint a Megrendelés sikeresen feladásra került.
- A felhasználó megnyit egy adatbázist és ellenőrzi, hogy a megrendelés adatai megegyeznek-e a weboldalon megadottakkal.
3) End to End szint
Az üzleti folyamatok és használati esetek a Felhasználói felületen kerülnek végrehajtásra.
- Hozzon létre egy rendelést több tételből -
- A felhasználó megnyit egy webhelyet.
- Megrendelésre megy.
- Érvényes termékről és mennyiségről érdeklődik a kosárba.
- A többi érvényes termék hozzáadásra kerül az érvényes mennyiségekkel és a rendelés mentésre kerül. A fizetés új fizetési móddal történik, és a rendelés leadásra kerül.
- Megjelenik a „Megrendelés sikeresen” üzenet.
- A tesztelőnek ellenőriznie kell, hogy a teljes folyamat az adatok torzítása nélkül történik-e.
Összegzés
Azáltal, hogy felvázolja a megfelelő tesztelési stratégiát, erőforrásokat, eszközöket és megfelelőséget, hogy jó szolgáltatást nyújtson, a SOA-tesztelés teljesen és tökéletesen tesztelt alkalmazást biztosít.







