Čo je to testovanie SOA?
Testovanie SOA (Service Oriented Architecture) je testovanie architektonického štýlu SOA, v ktorom sú aplikačné komponenty navrhnuté tak, aby komunikovali prostredníctvom komunikačných protokolov typicky po sieti.
V tomto návode sa naučíte
- Čo je to SOA?
- Čo je služba?
- Testovanie SOA
- Stratégia pre testovanie SOA
- Metódy testovania SOA
- Výzvy v testovaní SOA
- Nástroje na testovanie SOA
- Prípady použitia na testovanie SOA
Čo je to SOA?
SOA je metóda integrácie podnikových aplikácií a procesov tak, aby vyhovovali obchodným potrebám.
V softvérovom inžinierstve poskytuje SOA svižnosť a flexibilitu obchodných procesov. Zmeny procesu alebo aplikácie je možné smerovať na konkrétny komponent bez ovplyvnenia celého systému.
Softvéroví vývojári v SOA buď vyvíjajú, alebo kupujú kúsky programov s názvom SLUŽBY.
Čo je služba?
- Služby môžu byť funkčnou jednotkou aplikácie alebo obchodného procesu, ktorú je možné opakovane použiť alebo opakovať v akejkoľvek inej aplikácii alebo procese.
(Napríklad na vyššie uvedenom obrázku je platobná brána služba, ktorú môže znova použiť ktorákoľvek stránka elektronického obchodu. Kedykoľvek je potrebné uskutočniť platbu, stránka elektronického obchodu zavolá / požaduje službu platobná brána. Po vykonaní platby dňa brána, odpoveď sa odošle na web elektronického obchodu)
- Služby sa dajú ľahko zostaviť a je možné ich prekonfigurovať.
- Služby sa dajú prirovnať k stavebným kameňom. Môžu vytvoriť ľubovoľnú potrebnú aplikáciu. Ich pridávanie a odstraňovanie z aplikácie alebo obchodného procesu je jednoduché.
- Služby sú definované skôr obchodnou funkciou, ktorú vykonávajú, a nie ako kúsky kódu.
Webové služby
Webové služby sú nezávislé aplikačné komponenty, ktoré sú dostupné na webe.
Môžu byť zverejnené, nájdené a môžu byť použité na webe. Môžu komunikovať cez internet.
- Poskytovateľ služby zverejňuje službu na internete.
- Klient vyhľadá konkrétnu webovú službu z registra webových služieb
- Vráti sa adresa URL a WSDL pre požadovanú webovú službu.
>> Pomocou WSDL a URL sa komunikácia medzi poskytovateľom služieb a žiadateľom deje prostredníctvom správ SOAP. <<
- Keď spotrebiteľ zavolá na webovú službu, vytvorí sa pripojenie HTTP k poskytovateľovi.
Vytvorí sa správa SOAP, ktorá poskytovateľovi dá pokyn na vyvolanie požadovanej logiky webovej služby.
- Odpoveď prijatá od poskytovateľa je správa SOAP, ktorá sa vloží do odpovede HTTP. Táto odpoveď HTTP je dátový formát, ktorý je spotrebiteľskej aplikácii zrozumiteľný.
Príklad
Domovská stránka webových stránok a vyhľadávacieho modulu zobrazuje každodenné správy o počasí. Namiesto toho, aby ste celoplošne kódovali sekciu hlásení o počasí, je možné si od predajcu kúpiť Službu hlásenia o počasí a integrovať ju do stránok.
Testovanie SOA
SOA pozostáva z rôznych technológií. Aplikácie vytvorené pomocou SOA majú rôzne služby, ktoré sú voľne spojené.
Testovanie SOA by sa malo zamerať na 3 systémové vrstvy
Vrstva služieb
Táto vrstva pozostáva zo služieb, služieb exponovaných systémom odvodeným z obchodných funkcií.
Napríklad -
Zvážte webovú stránku s wellness, ktorá sa skladá z
- Sledovač hmotnosti
- Sledovač krvného cukru
- Sledovač krvného tlaku
Sledovače zobrazujú príslušné údaje a dátum, kedy sú zadané. Vrstva služieb pozostáva zo služieb, ktoré získavajú príslušné údaje z databázy
- Služba sledovania hmotnosti
- Služba sledovania krvného cukru
- Služba sledovania krvného tlaku
- Prihlasovacia služba
Procesná vrstva
Procesná vrstva pozostáva z procesov, zhromažďovania služieb, ktoré sú súčasťou jednej funkcionality.
Procesy môžu byť súčasťou používateľského rozhrania (napríklad vyhľadávací nástroj), súčasťou nástroja ETL (na získavanie údajov z databázy).
Hlavné zameranie v tejto vrstve bude na používateľské rozhrania a proces.
Primárne zameranie je na užívateľské rozhranie sledovača hmotnosti a jeho integrácia s databázou.
Nasledujúce funkcie budú zvážené
- Pridávanie nových údajov
- Úpravy existujúcich údajov
- Vytvára sa nový sledovač
- Odstraňujú sa údaje
Spotrebiteľská vrstva
Táto vrstva pozostáva hlavne z používateľských rozhraní.
Na základe vrstvy je testovanie aplikácie SOA rozdelené do troch úrovní.
- Úroveň služieb
- Úroveň rozhrania
- Koncová úroveň
- Pri navrhovaní testov sa používa prístup zhora nadol.
- Na vykonávanie testu sa používa prístup zdola nahor.
Stratégia pre testovanie SOA
Prístup k plánovaniu testov,
- Kompletnú architektúru aplikácie by mali testéri SOA pochopiť.
- Aplikáciu je potrebné rozdeliť na nezávislé služby (služba, ktorá má vlastnú štruktúru žiadostí a odpovedí a nezávisí od žiadnej inej služby, ktorá má formu odpovede).
- Štruktúru aplikácie je potrebné reorganizovať do troch zložiek - dáta, služby a klientske aplikácie.
- Všetky komponenty je potrebné starostlivo analyzovať a obchodné scenáre by mali byť chalk out.
- Obchodné scenáre by sa mali klasifikovať ako bežné scenáre a scenáre špecifické pre danú aplikáciu.
- Mala by byť pripravená matica sledovateľnosti a všetky testovacie prípady by mali byť sledované podľa obchodných scenárov.
Prístup k vykonaniu testu
- Každá súčasť služby by mala byť testovaná.
- Integrácia Testovanie komponentov služby by sa malo vykonať na overenie toku údajov službami a integritou údajov.
- Na overenie toku údajov medzi front-end aplikáciou a databázou by sa malo vykonať systémové testovanie úplného modelu.
- Testovanie výkonu by sa malo robiť pre jemné doladenie a optimálny výkon.
Metódy testovania SOA
1) dátové testovanie založené na obchodnom scenári,
- Mali by sa analyzovať rôzne obchodné aspekty súvisiace so systémom.
- Mali by sa vypracovať scenáre založené na integrácii platformy
- Rôzne webové služby aplikácie
- Webové služby a aplikácie.
- Nastavovanie údajov by sa malo uskutočňovať na základe vyššie uvedených scenárov.
- Nastavovanie údajov by sa malo robiť tak, aby pokrývali aj scenáre medzi koncovými bodmi.
2) Pahýly
- Na testovanie služieb sa vytvoria figuríny.
- Prostredníctvom týchto rozhraní je možné poskytovať rôzne vstupy a výstupy je možné overovať.
- Keď aplikácia používa rozhranie k externej službe, ktorá nie je testovaná (služba tretej strany), môže byť počas testovania integrácie vytvorený stub.
3) Regresné testovanie
- Regresné testovanie aplikácie by sa malo vykonať, ak existuje viac vydaní, aby sa zabezpečila stabilita a dostupnosť systémov.
- Bude vytvorená komplexná sada regresných testov pokrývajúca služby, ktoré tvoria dôležitú súčasť aplikácie.
- Túto testovaciu sadu je možné znova použiť vo viacerých vydaniach projektu.
4) Testovanie úrovne služieb
Testovanie úrovne služieb zahŕňa testovanie funkčnosti, bezpečnosti, výkonu a interoperability komponentu.
Každá služba musí byť najskôr testovaná nezávisle.
5) Funkčné testovanie
Funkčné testovanie by sa malo vykonať na každej službe pre
- Zaistite, aby služba poskytovala správnu odpoveď na každú žiadosť.
- Pri žiadostiach s neplatnými údajmi, zlými údajmi atď. Sa prijímajú správne chyby.
- Skontrolujte každú požiadavku a odpoveď na každú operáciu, ktorú musí služba vykonať za behu.
- Ak dôjde k chybe na úrovni servera, klienta alebo siete, overte chybové správy.
- Overte, či sú prijaté odpovede v správnom formáte.
- Overte, či údaje prijaté v odpovedi zodpovedajú požadovaným údajom.
6) Testovanie bezpečnosti
Testovanie bezpečnosti webovej služby je dôležitým aspektom počas testovania úrovne služieb aplikácie SOA; to zaisťuje bezpečnosť aplikácie.
Počas testovania je potrebné zohľadniť nasledujúce faktory:
- Webová služba by mala dodržiavať priemyselný štandard definovaný testovaním WS-Security.
- Bezpečnostné opatrenia by mali fungovať bezchybne.
- Šifrovanie údajov a digitálne podpisy na dokumentoch
- Autentifikácia a autorizácia
- Na XML je potrebné testovať SQL Injection, Malware, XSS, CSRF a ďalšie zraniteľnosti.
- Útoky odmietnutia služby
7) Testovanie výkonu
Je potrebné vykonať testovanie výkonu služby, pretože služby sú opakovane použiteľné a tú istú službu môže používať viac aplikácií.
Počas testovania sa berú do úvahy nasledujúce faktory:
- 8) Výkon a funkčnosť služby je potrebné testovať pri veľkom zaťažení.
- Výkon služby je potrebné porovnať, keď pracujeme individuálne a v rámci aplikácie je spojená s.
- Malo by sa vykonať záťažové testovanie služby
- na overenie doby odozvy
- na kontrolu úzkych miest
- na overenie využitia CPU a pamäte
- predvídať škálovateľnosť
9) Testovanie na úrovni integrácie
- Testovanie na úrovni služieb zaisťuje správne fungovanie iba služieb individuálne, nezaručuje funkčnosť spojených komponentov.
- Testovanie integrácie sa vykonáva hlavne so zameraním na rozhrania.
- Táto fáza pokrýva všetky možné obchodné scenáre.
- V tejto fáze by sa malo nefunkčné testovanie aplikácie vykonať ešte raz. Zabezpečenie, súlad a testovanie výkonu zabezpečujú dostupnosť a stabilitu systému po všetkých stránkach.
- Komunikačné a sieťové protokoly by sa mali testovať, aby sa overila konzistencia dátovej komunikácie medzi službami.
10) Testovanie typu End to End
Táto fáza zaisťuje, že aplikácia funkčne aj nefunkčne potvrdzuje obchodné požiadavky.
Je zaručené, že nižšie uvedené položky budú testované pri koncovom testovaní
- Všetky služby fungujú podľa očakávania po integrácii
- Spracovanie výnimiek
- Užívateľské rozhranie aplikácie
- Správny tok údajov cez všetky komponenty
- Obchodný proces
Výzvy v testovaní SOA
- Nedostatok rozhraní pre Služby
- Proces testovania sa rozprestiera na viacerých systémoch, čím sa vytvárajú zložité dátové potreby
- Aplikácia je súborom rôznych komponentov, ktoré sa zvyknú meniť. Potreba regresného testovania je častejšia.
- Kvôli viacvrstvovej architektúre je ťažké izolovať chyby.
- Pretože sa služba bude používať na rôznych rozhraniach, je ťažké predpovedať zaťaženie, a preto bude plánovanie testu výkonnosti ťažkopádne.
- SOA je kolekcia heterogénnych technológií. Testovanie aplikácie SOA vyžaduje ľudí s rôznymi zručnosťami, čo následne zvyšuje náklady na plánovanie a vykonávanie.
- Pretože táto aplikácia predstavuje integráciu viacerých služieb, testovanie bezpečnosti má svoj vlastný podiel na problémoch. Validácia autentifikácie a autorizácie je do značnej miery zložitá.
Nástroje na testovanie SOA
Na trhu existuje veľa nástrojov na testovanie SOA, ktoré testerom pomáhajú pri testovaní aplikácií SOA. Tu sú niektoré z populárnych nástrojov na testovanie SOA :
1) SOAP UI
„SOAP UI“ je open source nástroj na funkčné testovanie pre služby a testovanie API.
- Desktopová aplikácia
- Podporuje viac protokolov - SOAP, REST, HTTP, JMS, AMF, JDBC
- Je možné vyvíjať, kontrolovať a vyvolávať webové služby.
- Možno použiť aj na testovanie záťaže, testovanie automatizácie a testovanie zabezpečenia
- Pahýly môže vytvoriť MockServices
- Požiadavky a testy webovej služby je možné generovať automaticky prostredníctvom jej klienta webovej služby.
- Mať vstavané nástroje na správu
- Vyvinutý spoločnosťou SmartBear
2) iTKO LISA
„LISA“ je produktová sada, ktorá poskytuje funkčné testovacie riešenie pre distribuované systémy, ako je SOA.
- Možno použiť aj na regresiu, integráciu, načítanie a testovanie výkonu.
- Vyvinuté spoločnosťou iTKO (CA Technologies)
- Môže byť použitý na návrh a vykonanie testov.
3) Test služieb spoločnosti HP
„Test služieb“ je funkčný testovací nástroj, ktorý podporuje testovanie používateľského rozhrania aj zdieľaných služieb
- Funkčný aj výkonový test služieb je možné vykonať jediným skriptom.
- Integrované s HP QC.
- Je možné spravovať obrovské množstvo služieb a dát.
- Podporuje testovanie interoperability simuláciou klientských prostredí JEE, AXIS a DotNet.
- Vyvinuté spoločnosťou HP.
4) Test ParaSoft SOA
SOA Test je sada nástrojov na testovanie a analýzu vyvinutá pre testovanie API a API aplikácií.
- Podporuje technológie webových služieb, REST, JSON, MQ, JMS, TIBCO, HTTP a XML.
- Možné sú funkcie, jednotka, integrácia, regresia, bezpečnosť, interoperabilita, súlad a testovanie výkonu.
- Pahýly je možné vytvoriť pomocou aplikácie Parasoft Virtualize, ktorá je inteligentná ako rozhranie SOAP.
- Vyvinutý spoločnosťou ParaSoft
Prípady použitia na testovanie SOA
Zvážte web elektronického obchodu, ktorý obsahuje nižšie uvedené funkcie a čiastkové funkcie:
Spracovanie objednávky
FÁZA 1
V prvej fáze testovania SOA, tj. Vo fáze testovacej stratégie, je aplikácia rozdelená na služby a obchodné funkcie.
Zvážme nižšie uvedené služby v aplikácii.
- Vytvoriť objednávku
- Skontrolujte stav zákazníka
- Zmena stavu objednávky
- Skontrolujte stav objednávky
- Skontrolujte inventár
Obchodné funkcie sú rovnaké ako funkcie webovej stránky.
Poznámka: Dokument o stratégii testovania bude obsahovať zoznam služieb a funkcií, ktoré sa musia testovať.
FÁZA 2
Fáza plánovania testu. Testovacie prípady sú napísané pre každú úroveň.
- Koncová úroveň. Testovacie prípady sú napísané pre každý prípad a postup obchodného použitia.
Ďalej uvádzame príklad testovacích prípadov
- Vytvorte objednávku s aktívnym používateľom.
- Vytvorte objednávku s neaktívnym používateľom.
- Vytvorte objednávku s dostupným produktom s objednaným množstvom
- Vytvorte objednávku s dostupným produktom s počtom objednávok> dostupné množstvo.
- Vytvorte objednávku s viacerými položkami
- Zrušiť objednávku úplne.
- Čiastočne zrušiť objednávku.
- Úroveň integrácie. Testovacie prípady sú písané pre integráciu databázy a užívateľského rozhrania.
Ďalej uvádzame príklady testovacích prípadov.
- Vytvorte novú objednávku s jednou položkou. Skontrolujte, či je objednávka vytvorená v databáze.
- Vytvorte novú objednávku s jednou položkou. Skontrolujte, či je cena vypočítaná pre objednávku správna.
- Vytvorte novú objednávku s jednou položkou. Overte, či je množstvo dostupného produktu nižšie o množstvo objednávky.
- Skontrolujte, či je stav objednávky zobrazenej v používateľskom rozhraní rovnaký ako v databáze.
- Zrušiť objednávku a skontrolovať, či je stav objednávky zmenený v databáze.
- Pri prvej platbe skontrolujte, či sú platobné podrobnosti zadané v používateľskom rozhraní uložené v databáze.
- Pri vracaní platieb skontrolujte, či sa platobné podrobnosti v databáze zobrazujú v používateľskom rozhraní.
- Úroveň služieb. Každá služba je testovaná na všetky dátové podmienky.
Ďalej uvádzam niekoľko príkladov.
Č. | Detaily objednávky | Podmienka objednávky |
---|---|---|
1 | Vytvoriť objednávku. Počet položiek = 1 | Množstvo na objednávku |
2 | Vytvoriť objednávku. Počet položiek> 1 | Množstvo na objednávku |
3 | Vytvoriť poradový počet položiek = 1 | Množstvo na objednávku> Množstvo v databáze |
4 | Skontrolujte stav objednávky | Stav v databáze = aktívny |
5 | Skontrolujte stav objednávky | Stav v databáze = dodané |
6 | Skontrolujte stav objednávky | Stav v databáze = Zrušený |
7 | Skontrolujte stav objednávky | ID objednávky = neplatná |
8 | Skontrolujte dostupnosť produktu | Množstvo produktu> 0 |
9 | Skontrolujte dostupnosť produktu | Množstvo produktu = 0 |
10 | Skontrolujte dostupnosť produktu | ID produktu = neplatné |
FÁZA 3 - Vykonanie testu
Vykonanie testu využíva prístup zdola nahor, tj najskôr sa vykoná testovanie na úrovni služieb, potom na úrovni integrácie a nakoniec sa vykoná testovanie End to End.
1) Úroveň služby
Uvažujme, že nástroj Soapui je považovaný za vhodný na testovanie aplikácie.
WSDL a URL sú prechádzané do testovacieho okna SOAP.
Žiadosť o každú službu sa zobrazí v okne žiadosti.
Úpravou údajov podľa testovacích prípadov na úrovni služieb sa vytvárajú požiadavky pre každý testovací prípad.
Testovacia situácia |
Žiadosť |
Očakávaná odpoveď |
---|---|---|
Vytvoriť objednávku. Počet položiek = 1Množstvo na objednávku |
|
|
Vytvoriť objednávku. Nie. položiek> 1Množstvo na objednávke |
|
|
Vytvoriť číslo objednávky. položiek = 1Množstvo na objednávku> Množstvo na db |
|
|
Skontrolujte stav objednávky Stav v databáze = aktívny |
|
|
Skontrolujte stav objednávky Stav v databáze = Dodané |
|
|
Skontrolovať stav objednávky ID objednávky = neplatné |
|
|
Skontrolujte dostupnosť produktuMnožstvo produktu> 0 |
|
|
Skontrolujte dostupnosť produktuMnožstvo produktu = 0 |
|
|
Skontrolujte dostupnosť produktu ID produktu = neplatné |
|
|
2) Úroveň integrácie
Testovacie prípady na úrovni integrácie sa vykonávajú v používateľskom rozhraní a databáze.
- Vytvorte objednávku s jednou položkou -
- Používateľ otvorí webovú stránku.
- Ide na zadanie objednávky.
- Vyberie platný produkt a množstvo a uloží objednávku.
- Mala by sa zobraziť správa, že objednávka bola úspešne zadaná.
- Používateľ otvorí databázu a skontroluje, či sú podrobnosti objednávky rovnaké ako údaje zadané na webovej stránke.
3) Koncová úroveň
Obchodné toky a prípady použitia sa vykonávajú v používateľskom rozhraní.
- Vytvorenie objednávky s viacerými položkami -
- Používateľ otvorí webovú stránku.
- Ide na zadanie objednávky.
- Dotazy na platný produkt a množstvo ich pridáva do košíka.
- Pridajú sa ďalšie platné produkty s platným množstvom a objednávka sa uloží. Platba sa uskutočňuje novým spôsobom platby a je zadaná objednávka.
- Mala by sa zobraziť správa „Objednávka bola úspešne odoslaná“.
- Tester by mal overiť, či je celý tok vykonaný bez skreslenia údajov.
Záver:
Načrtnutím správnej stratégie pre testovanie, zdrojov, nástrojov a súladu s cieľom zabezpečiť dobrú službu môže testovanie SOA priniesť úplne a dokonale otestovanú aplikáciu.