Co je testování SOA?
Testování architektury SOA (Service Oriented Architecture) je testování architektonického stylu SOA, ve kterém jsou komponenty aplikace navrženy pro komunikaci prostřednictvím komunikačních protokolů typicky po síti.
V tomto výukovém programu se naučíte
- Co je to SOA?
- Co je služba?
- Testování SOA
- Strategie pro testování SOA
- Metody testování SOA
- Výzvy v testování SOA
- Nástroje pro testování SOA
- Případy použití testování SOA
Co je to SOA?
SOA je metoda integrace podnikových aplikací a procesů tak, aby vyhovovaly obchodním potřebám.
V softwarovém inženýrství poskytuje SOA agilitu a flexibilitu obchodních procesů. Změny procesu nebo aplikace mohou být směrovány na konkrétní komponentu bez ovlivnění celého systému.
Vývojáři softwaru v SOA buď vyvíjejí, nebo kupují bloky programů s názvem SLUŽBY.
Co je služba?
- Služby mohou být funkční jednotkou aplikace nebo obchodního procesu, kterou lze znovu použít nebo opakovat jakoukoli jinou aplikací nebo procesem.
(Například na výše uvedeném obrázku je Platební brána služba, kterou může znovu použít jakýkoli web elektronického obchodování. Kdykoli je třeba provést platbu, web elektronického obchodu zavolá / požaduje službu Platební brána. Po provedení platby brána, odpověď je odeslána na web elektronického obchodu)
- Služby lze snadno sestavit a snadno překonfigurovat komponenty.
- Služby lze přirovnat k stavebním kamenům. Mohou postavit jakoukoli potřebnou aplikaci. 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í, spíše než kusy kódu.
Webové služby
Webové služby jsou nezávislé aplikační komponenty, které jsou k dispozici na webu.
Mohou být publikovány, nalezeny a lze je použít na webu. Mohou komunikovat přes internet.
- Poskytovatel služby publikuje službu na internetu.
- Klient vyhledá konkrétní webovou službu z registru webových služeb
- Je vrácena adresa URL a WSDL pro požadovanou webovou službu.
>> Pomocí WSDL a URL probíhá komunikace mezi poskytovatelem služeb a žadatelem prostřednictvím zpráv SOAP. <<
- Když spotřebitel zavolá webovou službu, bude k poskytovateli navázáno připojení HTTP.
Vytvoří se zpráva SOAP, která instruuje poskytovatele, aby vyvolal požadovanou logiku webové služby.
- Odpověď přijatá od poskytovatele je zpráva SOAP, která bude vložena do odpovědi HTTP. Tato odpověď HTTP je datový formát, který je spotřebitelské aplikaci srozumitelný.
Příklad
Domovská stránka webu a vyhledávače zobrazuje každodenní zprávy o počasí. Místo toho, abyste kódovali sekci zpráv o počasí po celém světě, můžete si od prodejce zakoupit službu Zpráva o počasí a integrovat ji do stránek.
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ě spojené.
Testování SOA 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 webovou stránku Wellness, kterou tvoří
- Sledovač hmotnosti
- Sledovač krevního cukru
- Měřič krevního tlaku
Sledovače zobrazují příslušná data a datum, kdy jsou zadány. Vrstva služeb se skládá ze služeb, které získávají příslušná data z databáze
- Služba sledování hmotnosti
- Služba sledování krevního cukru
- Služba sledování krevního tlaku
- Přihlašovací služba
Zpracovat vrstvu
Procesní vrstva se skládá z procesů, shromažďování služeb, které jsou součástí jedné funkce.
Procesy mohou být součástí uživatelského rozhraní (například vyhledávač), součástí nástroje ETL (pro získávání dat z databáze).
Hlavní zaměření v této vrstvě bude na uživatelská rozhraní a proces.
Hlavním zaměřením je uživatelské rozhraní sledovače hmotnosti a jeho integrace s databází.
Níže uvedené funkce budou brány v úvahu
- Přidávání nových dat
- Úpravy stávajících dat
- Vytváření nového trackeru
- Mazání dat
Spotřebitelská vrstva
Tato vrstva se skládá hlavně z uživatelských rozhraní.
Na základě vrstvy je testování aplikace SOA distribuováno do tří úrovní.
- Úroveň služby
- Úroveň rozhraní
- End to End level
- Pro návrh testů se používá přístup shora dolů.
- Pro provedení testu se používá přístup zdola nahoru.
Strategie pro testování SOA
Přístup k plánování testů,
- Kompletní architektura aplikace by měla být SOA testerům srozumitelná.
- 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ě, která by vytvořila odpověď).
- Strukturu aplikace je třeba reorganizovat do tří složek - Data, Služby a front-end aplikace.
- Všechny součásti je třeba pečlivě analyzovat a obchodní scénáře je třeba označit křídou.
- Obchodní scénáře by měly být klasifikovány jako běžné scénáře a scénáře specifické pro aplikaci.
- Měla by být připravena matice sledovatelnosti a všechny testovací případy by měly být vysledovány podle obchodních scénářů.
Přístup k provedení testu
- Každá součást služby by měla být testována.
- Mělo by se provádět testování integrace součástí služby, aby se ověřil tok dat prostřednictvím služeb a integrita dat.
- Mělo by se provést testování systému úplného modelu, aby se ověřil tok dat mezi front-end aplikací a databází.
- Pro jemné doladění a optimální výkon by mělo být provedeno testování výkonu.
Metody testování SOA
1) Testování dat založené na obchodním scénáři,
- Měly by být analyzovány různé obchodní aspekty související se systémem.
- Scénáře by měly být vytvořeny 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 zahrnovalo také scénáře mezi konci.
2) Pahýly
- Pro testování služeb budou vytvořena fiktivní rozhraní.
- Prostřednictvím těchto rozhraní lze poskytovat různé vstupy a výstupy lze ověřovat.
- Když aplikace používá rozhraní k externí službě, která není testována (služba třetí strany), lze během testování integrace vytvořit stub.
3) Regresní testování
- Regresní testování aplikace 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 z hlediska funkčnosti, zabezpečení, výkonu a interoperability.
Každá služba musí být nejprve testována samostatně.
5) Funkční testování
Funkční testování by mělo být provedeno u každé služby
- Zajistěte, aby služba poskytovala správnou odpověď na každý požadavek.
- Správné chyby se přijímají u požadavků s neplatnými údaji, špatnými údaji atd.
- Zkontrolujte každou žádost a odpověď pro každou operaci, kterou služba musí provést za běhu.
- Ověřte chybové zprávy, pokud dojde k chybě na úrovni serveru, klienta nebo sítě.
- Ověřte, zda jsou přijaté odpovědi ve správném formátu.
- Ověřte, že data přijatá v odpovědi odpovídají požadovaným údajům.
6) Testování zabezpečení
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 zohlednit následující faktory:
- Průmyslová norma definovaná testováním WS-Security by se měla řídit webovou službou.
- Bezpečnostní opatření by měla fungovat bezchybně.
- Šifrování dat a digitální podpisy na dokumentech
- Ověřování a autorizace
- Na XML musí být testovány SQL Injection, Malware, XSS, CSRF a další chyby zabezpečení.
- Ú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 více aplikací může používat stejnou službu.
Během testování se berou v úvahu následující faktory:
- 8) Výkon a funkčnost služby je třeba testovat při velkém zatížení.
- Je třeba porovnat výkon služby při práci jednotlivě a v rámci aplikace je spojena s.
- Je třeba provést zátěžové testování služby
- k ověření doby odezvy
- zkontrolovat úzká místa
- ověřit využití CPU a paměti
- předvídat škálovatelnost
9) Testování na úrovni integrace
- Testování na úrovni služeb zajišťuje řádné fungování pouze jednotlivých služeb, nezaručuje funkčnost spojených komponent.
- Testování integrace se provádí hlavně se zaměřením na rozhraní.
- Tato fáze zahrnuje všechny možné obchodní scénáře.
- V této fázi by mělo být nefunkční testování aplikace provedeno ještě jednou. 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.
10) End to End testování
Tato fáze zajišťuje, že aplikace funkčně i nefunkčně potvrzuje obchodní požadavky.
Je zaručeno, že níže uvedené položky budou testovány během testování typu end to end
- 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 komponenty
- Obchodní proces
Výzvy v testování SOA
- Nedostatek rozhraní pro služby
- Proces testování se rozprostírá na více systémech, což vytváří složité datové potřeby
- Aplikace je souborem 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 vady.
- Vzhledem k tomu, že služba bude používána v různých rozhraních, je obtížné předpovídat zatížení, a proto je plánování testování výkonu těžkopádné.
- SOA je sbírka 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 provedení.
- Protože aplikace je integrací více služeb, testování zabezpečení má svůj vlastní podíl na strasti. Ověření autentizace a autorizace je docela 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ástrojů 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 použít také pro testování zátěže, testování automatizace a testování zabezpečení
- Stubs can be created by 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 produktová sada, která poskytuje řešení funkčního testování pro distribuované systémy, jako je SOA.
- Lze také použít pro regresi, integraci, načtení a testování výkonu.
- Vyvinuto společností iTKO (CA Technologies)
- Lze použít k navrhování a provádění testů.
3) Test služeb HP
„Test služby“ je funkční testovací nástroj, který podporuje jak uživatelské rozhraní, tak testování sdílených služeb
- Funkční i výkonnostní test služeb lze provést jediným skriptem.
- Integrováno s HP QC.
- Lze 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) Test SOA Parasoft
SOA Test je sada nástrojů pro testování a analýzu vyvinutá pro testování API a API aplikací.
- Podporuje technologie webových služeb, REST, JSON, MQ, JMS, TIBCO, HTTP, XML.
- Jsou možné funkce, jednotka, integrace, regrese, zabezpečení, interoperabilita, dodržování předpisů a testování výkonu.
- Stubs can be created using Parasoft Virtualize, which are intelligent than SOAP UI.
- Vyvinuto společností ParaSoft
Případy použití testování SOA
Zvažte web elektronického obchodu, který obsahuje níže uvedené funkce a dílčí funkce:
zpracování objednávky
FÁZE 1
V první fázi testování SOA, tj. Fáze testovací 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 strategie testování by obsahoval seznam služby a funkcí, které je třeba testovat.
FÁZE 2
Fáze plánování testování. Testovací případy jsou psány pro každou úroveň.
- End to End level. Testovací případy jsou psány pro každý obchodní případ a postup použití.
Níže uvádíme příklad 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
- 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
- Zrušte objednávku úplně.
- Částečně zrušit objednávku.
- Úroveň integrace. Testovací případy jsou psá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 jedinou položkou. Ověřte, zda je objednávka vytvořena v databázi.
- Vytvořte novou objednávku s jedinou položkou. Ověřte, zda je cena vypočítaná pro objednávku správná.
- Vytvořte novou objednávku s jedinou položkou. Ověřte, že množství dostupného produktu je menší o částku objednávky.
- Ověřte, zda je stav objednávky zobrazený v uživatelském rozhraní stejný jako v databázi.
- Zrušte objednávku a ověřte, zda je v databázi změněn stav objednávky.
- Při první platbě ověřte, zda jsou platební údaje zadané v uživatelském rozhraní uloženy v databázi.
- Při vracení plateb ověřte, zda se v uživatelském rozhraní zobrazují platební údaje v databázi.
- Úroveň služby. Každá služba je testována na všechny podmínky dat.
Níže uvádíme několik příkladů.
Ne. | podrobnosti k objednávce | Podmínka objednávky |
---|---|---|
1 | Vytvořit objednávku. Počet položek = 1 | Množství na objednávku |
2 | Vytvořit objednávku. Počet položek> 1 | Množství na objednávku |
3 | Vytvořit objednávku Počet položek = 1 | Množství na objednávku> 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
Provádění testu využívá přístup zdola nahoru, tj. Nejprve se provádí testování na úrovni služeb, poté na úrovni integrace a nakonec testování typu End to End.
1) Úroveň služeb
Uvažujme, že pro testování aplikace je považován nástroj Soapui.
WSDL a URL jsou procházeny do testovacího okna SOAP.
V okně požadavku se zobrazí požadavek na každou službu.
Úpravou dat podle testovacích případů na úrovni služby se vytvářejí požadavky pro každý testovací případ.
Modelový případ |
Žádost |
Očekávaná odpověď |
---|---|---|
Vytvořit objednávku. Počet položek = 1Množství na objednávce |
|
|
Vytvořit objednávku. položek> 1Množství na objednávce |
|
|
Vytvořit číslo objednávky. položek = 1Množství na objednávce> Množství na db |
|
|
Zkontrolovat stav objednávky Stav v databázi = aktivní |
|
|
Zkontrolovat stav objednávky Stav v databázi = odesláno |
|
|
Zkontrolovat stav objednávky ID objednávky = neplatné |
|
|
Zkontrolujte dostupnost produktu Množství produktu> 0 |
|
|
Zkontrolovat dostupnost produktu Množství produktu = 0 |
|
|
Zkontrolovat dostupnost produktu ID produktu = neplatné |
|
|
2) Úroveň integrace
Testovací případy úrovně integrace se provádějí v uživatelském rozhraní a databázi.
- Vytvořte objednávku s jedinou položkou -
- Uživatel otevře web.
- Přejde na 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 jsou podrobnosti objednávky stejné jako údaje zadané na webu.
3) Koncová úroveň
Obchodní toky a případy použití se provádějí v uživatelském rozhraní.
- Vytvořit objednávku s více položkami -
- Uživatel otevře web.
- Přejde na objednávku.
- Dotazy na platný produkt a množství je přidá do košíku.
- Přidají se další platné produkty s platným množstvím a objednávka se uloží. Platba probíhá prostřednictvím nové platební metody a je odeslána objednávka.
- Měla by se zobrazit zpráva „Objednávka úspěšně odeslána“.
- Tester by měl ověřit, že celý tok probíhá bez zkreslení dat.
Závěr:
Načrtnutím správné strategie pro testování, prostředky, nástroje a dodržování předpisů pro zajištění dobré služby může testování SOA přinést úplně a dokonale otestovanou aplikaci.