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?

SOA 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.

SOA webszolgáltatások

SOA webszolgáltatások

  1. A Szolgáltató a szolgáltatást az interneten teszi közzé.
  2. Az Ügyfél egy adott webszolgáltatást keres a webszolgáltatási nyilvántartóból
  3. 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.
  4. 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.
  5. 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.

Példa SOA webszolgáltatásokra g

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.

SOA tesztelés

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

  1. Súly Tracker
  2. Vércukor Tracker
  3. 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

  1. Új adatok hozzáadása
  2. Meglévő adatok szerkesztése
  3. Új létrehozása tracker
  4. Adatok törlése

Fogyasztói réteg

Ez a réteg főleg felhasználói felületekből áll.

Fogyasztói réteg

A réteg alapján egy SOA-alkalmazás tesztelése három szintre oszlik.

  1. Szolgáltatási szint
  2. Az interfész szintje
  3. 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

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.

  1. 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.
  2. 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.
  3. 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.

Foglald össze ezt a bejegyzést a következőképpen: