Mi az a SOA tesztelés? Oktató példa

Tartalomjegyzék:

Anonim

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.

  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ásból
  3. 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. <<

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

  5. 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:

  1. Súlykövető
  2. Vércukorkövető
  3. 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

  1. Új adatok hozzáadása
  2. Meglévő adatok szerkesztése
  3. Új nyomkövető létrehozása
  4. 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.

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

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

x2 2

o3251 <üzenet> Sikeres

Rendelés létrehozása. Nem. tételek> 1Mennyiség a megrendelésen

y11 y2 3

o3251 <üzenet> Sikeres

Hozzon létre rendelési számot. tételek = 1Mennyiség a megrendelésen> Mennyiség a db-n

x23 200

null sikertelen

Ellenőrizze a Rendelés állapotát az adatbázisban = Aktív

o9876

Active Sikeres

Ellenőrizze a Rendelés állapotát az adatbázisban = Szállítva

o9656

Szállított <üzenet> Sikeres

Check orderOrder id = Érvénytelen

y5686

null sikertelen

A termék elérhetőségének ellenőrzéseA termék mennyisége> 0

d34

34 igen sikeres

A termék elérhetőségének ellenőrzése A termék mennyisége = 0

y34

0no Sikeres

A termék elérhetőségének ellenőrzése = érvénytelen

sder

sikertelen

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.