Co je testování SOA? Tutoriál s příkladem

Co je testování SOA?

SOA (orientovaný na služby Architecture) Testování je testování architektonického stylu SOA, ve kterém jsou komponenty aplikace navrženy tak, aby komunikovaly prostřednictvím komunikačních protokolů typicky přes síť.

Co je SOA?

SOA je metoda integrace podnikových aplikací a procesů dohromady tak, aby vyhovovaly obchodním potřebám.

V softwarovém inženýrství poskytuje SOA agilitu a flexibilitu podnikovým procesům. Změny v procesu nebo aplikaci lze nasměrovat na konkrétní komponentu, aniž by to ovlivnilo celý systém.

Softwaroví vývojáři v SOA buď vyvíjejí nebo kupují kusy programů tzv SLUŽBY.

Co je služba?

Služba SOA

  • Služby mohou být funkční jednotkou aplikace nebo obchodního procesu, který může být znovu použit nebo opakován jakoukoli jinou aplikací nebo procesem. (Například na obrázku výše je Platební brána služba, kterou může znovu použít jakýkoli web elektronického obchodu. Kdykoli je potřeba provést platbu, web elektronického obchodu zavolá/vyžádá si službu platební brány. Po provedení platby na bráně je na web elektronického obchodu odeslána odpověď.
  • Služby lze snadno sestavit a snadno překonfigurovat komponenty.
  • Služby lze přirovnat ke stavebním blokům. Mohou vytvořit jakoukoli potřebnou aplikaci. Jejich přidávání a odebírání z aplikace nebo obchodního procesu je snadné.
  • Služby jsou definovány spíše obchodní funkcí, kterou vykonávají, než jako kusy kódu.

Webové služby

Webové služby jsou nezávislé aplikační komponenty, které jsou dostupné přes web.

Mohou být publikovány, vyhledány a použity na webu. Mohou komunikovat přes internet.

Webové služby SOA

Webové služby SOA

  1. Poskytovatel služby zveřejňuje službu na internetu.
  2. Klient vyhledá konkrétní webovou službu z registru webových služeb
  3. Je vrácena adresa URL a WSDL pro požadovanou webovou službu. Pomocí WSDL a adresy URL probíhá komunikace mezi poskytovatelem služeb a žadatelem prostřednictvím zpráv SOAP.
  4. Když spotřebitel zavolá webovou službu, vytvoří se připojení HTTP k poskytovateli.
    Vytvoří se zpráva SOAP, která dá poskytovateli pokyn k vyvolání požadované logiky webové služby.
  5. Odpověď přijatá od poskytovatele je zpráva SOAP, která bude vložena do odpovědi HTTP. Tato odpověď HTTP je formát dat, který je srozumitelný pro spotřebitelskou aplikaci.

Příklad

Domovská stránka webu a vyhledávače zobrazuje každodenní zprávy o počasí. Namísto kódování celé sekce zpráv o počasí lze službu zpráv o počasí zakoupit od prodejce a integrovat do stránek.

Příklad SOA Web Servicesg

Testování SOA

SOA se skládá z různých technologií. Aplikace vytvořené pomocí SOA mají různé služby, které jsou volně propojené.

Testování SOA

SOA Testování by se mělo zaměřit na 3 systémové vrstvy

Vrstva služeb

Tato vrstva se skládá ze služeb, služeb vystavených systémem odvozeným z obchodních funkcí.

Například -

Zvažte wellness web, který se skládá z

  1. Hmotnost Tracker
  2. Krevní cukr Tracker
  3. Krevní tlak Tracker

TracV vrstvách se zobrazují příslušná data a datum jejich zadání. Vrstva služeb se skládá ze služeb, které získávají příslušná data z databáze –

  • Hmotnost Tracker servis
  • Krevní cukr Tracker servis
  • Krevní tlak Tracker servis
  • Přihlašovací služba

Procesní vrstva

Process Layer se skládá z procesů, kolekce služeb, které jsou součástí jediné funkce.

Procesy mohou být součástí uživatelského rozhraní (např. vyhledávač), součástí ETL nástroje (pro získávání dat z databáze).

Hlavní pozornost v této vrstvě bude zaměřena na uživatelská rozhraní a proces.

Uživatelské rozhraní váhy tracPrimárním zaměřením je ker a jeho integrace s databází.

Níže uvedené funkce budou brány v úvahu

  1. Přidávání nových dat
  2. Úprava stávajících dat
  3. Vytváření nového tracker
  4. Mazání dat

Spotřebitelská vrstva

Tato vrstva se skládá hlavně z uživatelských rozhraní.

Spotřebitelská vrstva

Na základě vrstvy je testování SOA aplikace rozděleno do tří úrovní.

  1. Úroveň služby
  2. Úroveň rozhraní
  3. Konec do konce úrovně
  • Pro návrh testu se používá přístup shora dolů.
  • Pro provedení testu se používá přístup zdola nahoru.

Strategie pro testování SOA

Testovací plánovací přístup,

  • Testeři SOA by měli rozumět kompletní architektuře aplikace.
  • Aplikaci je třeba rozdělit na nezávislé služby (Služba, která má vlastní strukturu požadavků a odpovědí a nezávisí na žádné jiné službě, aby vytvořila odpověď).
  • Struktura aplikace musí být reorganizována do tří složek – Data, Služby a front-endové aplikace.
  • Všechny komponenty musí být pečlivě analyzovány a obchodní scénáře by měly být vyznačeny.
  • Obchodní scénáře by měly být klasifikovány jako běžné scénáře a scénáře specifické pro aplikaci.
  • A TracMatice proveditelnosti by měly být připraveny a všechny testovací případy by měly být tracpřizpůsobeno obchodním scénářům.

Přístup k provedení testu

  • Každá součást služby by měla být otestována.
  • Testování integrace komponent služeb by mělo být provedeno pro ověření datového toku prostřednictvím služeb a integrity dat.
  • Testování systému celého modelu by mělo být provedeno pro ověření datového toku mezi front-end aplikací a databází.
  • Testování výkonu by mělo být provedeno pro jemné doladění a optimální výkon.

Metody testování SOA

1) testování založené na datech řízené obchodním scénářem,

  • Měly by být analyzovány různé obchodní aspekty související se systémem.
  • Scénáře by měly být vypracovány na základě integrace
  • Různý Webové služby aplikace
  • Webové služby a aplikace.
  • Nastavení dat by mělo být provedeno na základě výše uvedených scénářů.
  • Nastavení dat by mělo být provedeno tak, aby pokrylo i koncové scénáře.

2) Pahýly

  • Pro testování služeb budou vytvořena fiktivní rozhraní.
  • Prostřednictvím těchto rozhraní mohou být poskytovány různé vstupy a výstupy mohou být ověřeny.
  • Když aplikace používá rozhraní k externí službě, která není testována (služba třetí strany), lze během integračního testování vytvořit stub.

3) Regresní testování

  • Regresní testování na aplikaci by mělo být provedeno, pokud existuje více verzí, aby byla zajištěna stabilita a dostupnost systémů.
  • Bude vytvořena komplexní sada regresních testů pokrývající služby, které tvoří důležitou součást aplikace.
  • Tuto testovací sadu lze znovu použít ve více verzích projektu.

4) Testování úrovně služeb

Testování úrovně služeb zahrnuje testování komponenty na funkčnost, zabezpečení, výkon a interoperabilitu.

Každá služba musí být nejprve nezávisle otestována.

5) Funkční testování

Funkční testování by mělo být provedeno u každé služby

  • Ujistěte se, že služba poskytuje správnou odpověď na každý požadavek.
  • U požadavků s neplatnými daty, špatnými daty atd. jsou přijímány správné chyby.
  • Zkontrolujte každý požadavek a odpověď pro každou operaci, kterou má služba provést za běhu.
  • Ověřte chybová hlášení, když dojde k chybě na úrovni serveru, klienta nebo sítě.
  • Ověřte, zda jsou obdržené odpovědi ve správném formátu.
  • Ověřte, zda data přijatá v odpovědi odpovídají požadovaným datům.

6) Bezpečnostní testování

Testování zabezpečení webové služby je důležitým aspektem během testování úrovně služeb aplikace SOA; tím je zajištěna bezpečnost aplikace.

Během testování je třeba vzít v úvahu následující faktory:

  • Webová služba by měla dodržovat průmyslový standard definovaný testováním WS-Security.
  • Bezpečnostní opatření by měla fungovat bezchybně.
  • Šifrování dat a Digipodpisy na dokumentech
  • Ověřování a autorizace
  • SQL Injection, Malware, XSS, CSRF a další zranitelnosti mají být testovány na XML.
  • Útoky odmítnutí služby

7) Testování výkonu

Je třeba provést testování výkonu služby, protože služby jsou opakovaně použitelné a stejnou službu může používat více aplikací.

Při testování se berou v úvahu následující faktory:

  • Výkon a funkčnost služby je potřeba otestovat při velkém zatížení.
  • Výkon služby je potřeba porovnávat při samostatné práci i v rámci aplikace, s tím se pojí.
  • Měla by být provedena zátěžová zkouška služby
  • pro ověření doby odezvy
  • zkontrolovat úzká hrdla
  • pro ověření využití CPU a paměti
  • předpovídat škálovatelnost

8) Testování úrovně integrace

  • Testování úrovně služeb zajišťuje správné fungování pouze jednotlivých služeb, nezaručuje funkčnost spojených komponent.
  • Integrační testování se provádí se zaměřením hlavně na rozhraní.
  • Tato fáze pokrývá všechny možné obchodní scénáře.
  • V této fázi by mělo být provedeno ještě jednou nefunkční testování aplikace. Zabezpečení, dodržování předpisů a testování výkonu zajišťují dostupnost a stabilitu systému ve všech aspektech.
  • Komunikační a síťové protokoly by měly být testovány, aby se ověřila konzistence datové komunikace mezi službami.

9) End to End testování

Tato fáze zajišťuje, že aplikace funkčně i nefunkčně vyhovuje obchodním požadavkům.

Je zajištěno, že níže uvedené položky budou testovány během testování od začátku do konce

  • Všechny služby fungují podle očekávání po integraci
  • Zpracování výjimek
  • Uživatelské rozhraní aplikace
  • Správný tok dat všemi komponentami
  • Obchodní proces

Výzvy v testování SOA

  • Nedostatek rozhraní pro služby
  • Testovací proces zahrnuje více systémů a vytváří tak komplexní datové potřeby
  • Aplikace je sbírka různých komponent, které mají tendenci se měnit. Potřeba regresního testování je častější.
  • Vzhledem k vícevrstvé architektuře je obtížné izolovat defekty.
  • Vzhledem k tomu, že služba bude používána v různých rozhraních, je obtížné předvídat zatížení, a proto je plánování testů výkonu těžkopádné.
  • SOA je soubor heterogenních technologií. Testování aplikace SOA vyžaduje lidi s různými sadami dovedností, což zase zvyšuje náklady na plánování a realizaci.
  • Vzhledem k tomu, že aplikace je integrací více služeb, má bezpečnostní testování svůj vlastní podíl na problémech. Ověření autentizace a autorizace je do značné míry obtížné.

Nástroje pro testování SOA

Na trhu je k dispozici mnoho testovacích nástrojů SOA, které pomáhají testerům při testování aplikací SOA. Zde jsou některé z populárních Nástroje pro testování SOA:

1) SOAP UI

"SOAP UI„je open source nástroj pro funkční testování služeb a Testování API.

  • Desktopová aplikace
  • Podporuje více protokolů – SOAP, REST, HTTP, JMS, AMF, JDBC
  • Webové služby lze vyvíjet, kontrolovat a vyvolávat.
  • Lze také použít pro zátěžové testování, Testování automatizacea bezpečnostní testování
  • Stuby mohou být vytvořeny pomocí MockServices
  • Požadavky a testy webové služby lze generovat automaticky prostřednictvím klienta webové služby.
  • Mají vestavěné nástroje pro podávání zpráv
  • Vyvinuto společností SmartBear

2) iTKO LISA

„LISA“ je sada produktů, která poskytuje funkční testovací řešení pro distribuované systémy, jako je SOA.

  • Lze také použít pro regresi, integraci, zátěž a testování výkonu.
  • Vyvinuto společností iTKO (CA Technologies)
  • Může být použit k navrhování a provádění testů.

3) Servisní test HP

„Service Test“ je funkční testovací nástroj, který podporuje testování uživatelského rozhraní i sdílených služeb

  • Funkční i výkonnostní test služeb lze provést jediným skriptem.
  • Integrováno s HP QC.
  • Mohu spravovat obrovské množství služeb a dat.
  • Podporuje testování interoperability simulací klientských prostředí JEE, AXIS a DotNet.
  • Vyvinuto společností HP.

4) Parasoft SOA Test

SOA Test je sada nástrojů pro testování a analýzu vyvinutá pro testování API a API aplikací.

  • Podporuje webové služby, REST, JSON, MQ, JMS, TIBCO, HTTP, XML technologie.
  • Jsou možné funkční, jednotkové, integrační, regresní, bezpečnostní, interoperabilní, shody a výkonnostní testy.
  • Stuby lze vytvářet pomocí Parasoft Virtualize, které jsou inteligentnější než SOAP UI.
  • Vyvinuto společností ParaSoft

Případy použití testování SOA

Zvažte webovou stránku elektronického obchodu, která obsahuje níže uvedené funkce a dílčí funkce:

zpracování objednávky

zpracování objednávky

PHASE 1

V první fázi testování SOA, tj. ve fázi testování strategie, je aplikace rozdělena na služby a obchodní funkce.

Podívejme se níže na služby v aplikaci.

  • Vytvořit objednávku
  • Zkontrolujte stav zákazníka
  • Změnit stav objednávky
  • Zkontrolujte stav objednávky
  • Zkontrolujte inventář

Obchodní funkce jsou stejné jako funkce webových stránek.

Poznámka: Dokument o strategii testování by obsahoval seznam služeb a funkcí, které mají být testovány.

PHASE 2

Fáze plánování testu. Pro každou úroveň jsou napsány testovací případy.

  1. Konec do konce úrovně. Testovací případy jsou napsány pro každý případ obchodního použití a tok. Níže jsou uvedeny příklady testovacích případů

    • Vytvořte objednávku s aktivním uživatelem.
    • Vytvořte objednávku s neaktivním uživatelem.
    • Vytvořte objednávku s dostupným produktem s objednaným množstvím < dostupné množství.
    • Vytvořte objednávku s dostupným produktem s objednávkovým množstvím > dostupné množství.
    • Vytvořte objednávku s více položkami
    • Úplně zrušit objednávku.
    • Částečně zrušit objednávku.
  2. Úroveň integrace. Testovací případy jsou napsány pro integraci databáze a uživatelského rozhraní. Níže jsou uvedeny příklady testovacích případů.

    • Vytvořte novou objednávku s jednou položkou. Ověřte, zda je objednávka vytvořena v databázi.
    • Vytvořte novou objednávku s jednou položkou. Ověřte, že cena vypočítaná pro objednávku je správná.
    • Vytvořte novou objednávku s jednou položkou. Ověřte, že množství dostupného produktu je menší o částku objednávky.
    • Ověřte, že stav objednávky zobrazené v uživatelském rozhraní je stejný jako stav v databázi.
    • Zrušte objednávku a ověřte, zda je stav objednávky změněn v databázi.
    • Při první platbě ověřte, že platební údaje zadané v uživatelském rozhraní jsou uloženy v databázi.
    • Pro vracení plateb ověřte, že jsou platební údaje v databázi zobrazeny v uživatelském rozhraní.
  3. Úroveň služby. Každá služba je testována na všechny datové podmínky.

Níže uvádíme několik příkladů.

Ne. Podrobnosti o objednávce Podmínka objednávky
1 Vytvořit objednávku. Počet položek = 1 Množství na objednávku < Množství v databázi
2 Vytvořit objednávku. Počet položek > 1 Množství na objednávce < Množství v databázi.
3 Vytvořit objednávku č. položek = 1 Množství na objednávce > Množství v databázi
4 Zkontrolujte stav objednávky Stav v databázi = Aktivní
5 Zkontrolujte stav objednávky Stav v databázi = Odesláno
6 Zkontrolujte stav objednávky Stav v databázi = Zrušeno
7 Zkontrolujte stav objednávky ID objednávky = Neplatné
8 Zkontrolujte dostupnost produktu Množství produktu >0
9 Zkontrolujte dostupnost produktu Množství produktu =0
10 Zkontrolujte dostupnost produktu ID produktu = neplatné

FÁZE 3 – Provedení testu

Test Execution využívá přístup zdola nahoru, tj. nejprve se provádí testování úrovně služeb, poté úroveň integrace a nakonec End to End testování.

1) Úroveň služeb

Zvažme to Soapui nástroj je zvažován pro testování aplikace.

Jedno wsdl a URL se zobrazí v testovacím okně SOAP.

Požadavek na každou službu se zobrazí v okně požadavku.

Úpravou dat podle testovacích případů úrovně služeb se pro každý testovací případ vytvoří požadavky.

Testovací případ Žádost Očekávaná reakce
Vytvořit objednávku. Počet položek = 1Množství na objednávku < Množství v db x2 2 o3251 Úspěšný
Vytvořit objednávku č. položek > 1Množství na objednávku < Množství na db y1 1 y2 3 o3251 Úspěšný
Vytvořit obj.č. položek = 1Množství na objednávku > Množství na db x23 200 nula Neúspěšný
Zkontrolujte stav objednávkyStatus v databázi = Aktivní o9876 Aktivní Úspěšný
Zkontrolujte stav objednávkyStatus v databázi = Odesláno o9656 Odesláno Úspěšný
Zkontrolujte stav objednávky ID objednávky = Neplatné y5686 nula Neúspěšný
Zkontrolujte dostupnost produktuMnožství produktu >0 d34 34 Ano Úspěšný
Zkontrolujte dostupnost produktuMnožství produktu =0 y34 0 Ne Úspěšný
Zkontrolujte dostupnost produktuID produktu = neplatné sder Neúspěšný
2) Úroveň integrace

Testovací případy na úrovni integrace se provádějí na uživatelském rozhraní a databázi.

  • Vytvořte objednávku s jednou položkou –
  • Uživatel otevře webovou stránku.
  • Jde zadat objednávku.
  • Vybere platný produkt a množství a uloží objednávku.
  • Měla by se zobrazit zpráva, že objednávka byla úspěšně zadána.
  • Uživatel otevře databázi a zkontroluje, zda se údaje objednávky shodují s údaji zadanými na webu.
3) End to End level

Obchodní toky a případy použití se spouštějí v uživatelském rozhraní.

  • Vytvořte objednávku s více položkami –
  • Uživatel otevře webovou stránku.
  • Jde zadat objednávku.
  • Dotazy na platný produkt a množství je přidá do košíku.
  • Další platné produkty jsou přidány s platným množstvím a objednávka je uložena. Platba se provádí pomocí nového způsobu platby a objednávka je odeslána.
  • Měla by se zobrazit zpráva „Objednávka byla úspěšně zadána“.
  • Tester by měl ověřit, že celý tok probíhá bez zkreslení dat.

Závěr

Načrtnutím správné strategie testování, zdrojů, nástrojů a dodržování předpisů pro poskytování dobrých služeb může testování SOA poskytnout kompletně a dokonale otestované aplikace.

Shrňte tento příspěvek takto: