Kaj je testiranje SOA?
Testiranje SOA (Service Oriented Architecture) je preizkušanje arhitekturnega sloga SOA, pri katerem so komponente aplikacije zasnovane za komunikacijo prek komunikacijskih protokolov, običajno po omrežju.
V tej vadnici boste izvedeli-
- Kaj je SOA?
- Kaj je storitev?
- Testiranje SOA
- Strategija za testiranje SOA
- Preskusne metode SOA
- Izzivi pri testiranju SOA
- Orodja za testiranje SOA
- Primeri uporabe testiranja SOA
Kaj je SOA?
SOA je metoda integracije poslovnih aplikacij in procesov, da se zadovoljijo poslovne potrebe.
V programskem inženirstvu SOA omogoča gibčnost in prilagodljivost poslovnih procesov. Spremembe procesa ali aplikacije je mogoče usmeriti na določeno komponento, ne da bi to vplivalo na celoten sistem.
Razvijalci programske opreme v SOA razvijajo ali kupujejo dele programov, imenovanih STORITVE.
Kaj je storitev?
- Storitve so lahko funkcionalna enota aplikacije ali poslovnega procesa, ki jo lahko katera koli druga aplikacija ali postopek ponovno uporabi ali ponovi.
(Na primer, na zgornji sliki je Payment Gateway storitev, ki jo lahko ponovno uporabi katero koli spletno mesto za e-poslovanje. Kadar koli je treba opraviti plačilo, spletno mesto za e-poslovanje pokliče / zahteva storitev Payment Gateway. Ko je plačilo opravljeno dne prehod, odgovor se pošlje na spletno mesto e-trgovine)
- Storitve je enostavno sestaviti in enostavno konfigurirati komponente.
- Storitve lahko primerjamo z gradniki. Sestavijo lahko katero koli potrebno aplikacijo. Dodajanje in odstranjevanje iz aplikacije ali poslovnega procesa je enostavno.
- Storitve so bolj opredeljene s poslovno funkcijo, ki jo opravljajo, ne pa kot kosi kode.
Spletne storitve
Spletne storitve so neodvisne komponente aplikacije, ki so na voljo prek spleta.
Lahko jih objavimo, najdemo in uporabimo na spletu. Komunicirajo lahko prek interneta.
- Ponudnik storitve objavi na internetu.
- Naročnik išče določeno spletno storitev v registru spletnih storitev
- Vrne se URL in WSDL za zahtevano spletno storitev.
>> Z uporabo WSDL in URL-ja komunikacija med ponudnikom storitev in prosilcem poteka prek sporočil SOAP. <<
- Ko potrošnik pokliče spletno storitev, se ponudniku vzpostavi povezava HTTP.
Ustvari se sporočilo SOAP, ki ponudniku naroči, naj prikliče zahtevano logiko spletne storitve.
- Odgovor ponudnika je sporočilo SOAP, ki bo vdelano v odgovor HTTP. Ta odziv HTTP je oblika zapisa podatkov, ki je potrošniški aplikaciji razumljiva.
Primer
Domača stran spletnega mesta in iskalnika prikazuje vsakodnevno vremensko poročilo. Namesto da bi razdelek o vremenskih poročilih kodirali povsod, lahko pri prodajalcu kupite storitev vremenskega poročila in ga vključite na strani.
Testiranje SOA
SOA je sestavljena iz različnih tehnologij. Aplikacije, zgrajene z uporabo SOA, imajo različne storitve, ki so med seboj tesno povezane.
Testiranje SOA se mora osredotočiti na 3 sistemske plasti
Sloj storitev
Ta plast je sestavljena iz storitev, storitev, ki jih izpostavlja sistem, ki izhaja iz poslovnih funkcij.
Na primer -
Razmislite o spletni strani Wellness, ki jo sestavljajo
- Sledilnik teže
- Sledilnik krvnega sladkorja
- Sledilnik krvnega tlaka
Sledilniki prikazujejo ustrezne podatke in datum vnosa. Sloj storitev sestavljajo storitve, ki dobijo ustrezne podatke iz zbirke podatkov-
- Storitev sledenja teže
- Storitev sledenja krvnega sladkorja
- Storitev sledenja krvnega tlaka
- Storitev prijave
Procesni sloj
Process Layer obsega procese, zbiranje storitev, ki so del ene same funkcionalnosti.
Procesi so lahko del uporabniškega vmesnika (za nekdanji iskalnik), del orodja ETL (za pridobivanje podatkov iz baze podatkov).
Glavni poudarek v tej plasti bo na uporabniških vmesnikih in postopkih.
Uporabniški vmesnik sledilnika teže in njegova integracija z bazo podatkov je glavni poudarek.
Spodnje funkcije bodo upoštevane
- Dodajanje novih podatkov
- Urejanje obstoječih podatkov
- Ustvarjanje novega sledilca
- Brisanje podatkov
Potrošniška plast
Ta plast je v glavnem sestavljena iz uporabniških vmesnikov.
Na podlagi sloja je testiranje aplikacije SOA razdeljeno na tri ravni.
- Raven storitve
- Raven vmesnika
- Od konca do konca
- Za načrtovanje testov se uporablja pristop od zgoraj navzdol.
- Za izvedbo preizkusov se uporablja pristop od spodaj navzgor.
Strategija za testiranje SOA
Pristop načrtovanja preskusov,
- Popolno arhitekturo aplikacije bi morali razumeti preizkuševalci SOA.
- Aplikacijo je treba razčleniti na neodvisne storitve (storitev, ki ima lastno strukturo zahtev in odzivov in ni odvisna od nobene druge storitve za oblikovanje odgovora).
- Strukturo aplikacije je treba preoblikovati v tri komponente - podatke, storitve in čelne aplikacije.
- Vse komponente je treba natančno analizirati in opredeliti poslovne scenarije.
- Poslovne scenarije je treba razvrstiti kot običajne in posebne scenarije.
- Pripraviti je treba matriko sledljivosti, vse testne primere pa izslediti po poslovnih scenarijih.
Pristop izvedbe preizkusa
- Vsako komponento storitve je treba preizkusiti.
- Integracija Testiranje komponent storitve je treba opraviti za potrditev pretoka podatkov skozi storitve in celovitost podatkov.
- Sistemsko testiranje celotnega modela je treba opraviti za potrditev pretoka podatkov med čelno aplikacijo in bazo podatkov.
- Za natančno nastavitev in optimalno delovanje je treba opraviti testiranje učinkovitosti.
Preskusne metode SOA
1) Testiranje na podlagi poslovnega scenarija,
- Analizirati je treba različne poslovne vidike, povezane s sistemom.
- Scenarije je treba razviti na podlagi integracije sistema
- Različne spletne storitve aplikacije
- Spletne storitve in aplikacije.
- Podatke je treba nastaviti na podlagi zgornjih scenarijev.
- Podatke je treba nastaviti tako, da bodo zajeti tudi scenariji od konca do konca.
2) Škrbine
- Za preskušanje storitev bodo ustvarjeni lažni vmesniki.
- Preko teh vmesnikov je mogoče zagotoviti različne vhode in izhode potrditi.
- Ko aplikacija uporablja vmesnik za zunanjo storitev, ki ni v preskusu (storitev tretje osebe), lahko med preizkušanjem integracije ustvarite škrbino.
3) Regresijsko testiranje
- Regresijsko testiranje aplikacije je treba opraviti, kadar obstaja več izdaj, da se zagotovi stabilnost in razpoložljivost sistemov.
- Ustvarjen bo obsežen paket za regresijski test, ki bo zajemal storitve, ki so pomemben del aplikacije.
- Ta preskusni paket je mogoče znova uporabiti v več izdajah projekta.
4) Preskušanje ravni storitve
Preskušanje ravni storitve vključuje preizkušanje komponente glede funkcionalnosti, varnosti, zmogljivosti in interoperabilnosti.
Vsako storitev je treba najprej preizkusiti neodvisno.
5) funkcionalno preskušanje
Funkcionalno testiranje je treba opraviti na vsaki storitvi do
- Poskrbite, da bo storitev pravilno odgovorila na vsako zahtevo.
- Pravilne napake so prejete za zahteve z neveljavnimi podatki, slabimi podatki itd.
- Preverite vsako zahtevo in odziv za vsako operacijo, ki jo mora storitev izvesti v času izvajanja.
- Potrdite sporočila o napakah, ko pride do napake na ravni strežnika, odjemalca ali omrežja.
- Preverite, ali so prejeti odgovori v pravi obliki.
- Potrdite, da prejeti podatki v odgovoru ustrezajo zahtevanim podatkom.
6) Testiranje varnosti
Varnostno testiranje spletne storitve je pomemben vidik med preskušanjem ravni SOA aplikacije; to zagotavlja varnost aplikacije.
Med preskušanjem je treba upoštevati naslednje dejavnike:
- Spletna storitev mora spoštovati industrijski standard, opredeljen s testiranjem varnosti WS.
- Varnostni ukrepi bi morali delovati brezhibno.
- Šifriranje podatkov in digitalni podpisi na dokumentih
- Preverjanje pristnosti in avtorizacija
- SQL Injection, Malware, XSS, CSRF in druge ranljivosti je treba preizkusiti na XML.
- Napadi zavrnitve storitve
7) Testiranje učinkovitosti
Preizkusiti je treba zmogljivost storitve, saj so storitve večkrat uporabne in več aplikacij morda uporablja isto storitev.
Med preskušanjem se upoštevajo naslednji dejavniki:
- 8) Učinkovitost in funkcionalnost storitve je treba preizkusiti pod velikimi obremenitvami.
- Učinkovitost storitve je treba primerjati med individualnim delom in v aplikaciji, skupaj z njo.
- Izvesti je treba preskus obremenitve storitve
- za preverjanje odzivnega časa
- preveriti ozka grla
- za preverjanje uporabe CPU in pomnilnika
- za napovedovanje razširljivosti
9) Testiranje ravni integracije
- Preskušanje ravni storitev zagotavlja pravilno delovanje samo posameznih storitev in ne zagotavlja delovanja povezanih komponent.
- Integracijsko testiranje se izvaja s poudarkom predvsem na vmesnikih.
- Ta faza zajema vse možne poslovne scenarije.
- V tej fazi je treba še enkrat opraviti nefunkcionalno testiranje aplikacije. Varnost, skladnost in preizkušanje učinkovitosti zagotavljajo razpoložljivost in stabilnost sistema v vseh pogledih.
- Treba je preizkusiti komunikacijski in omrežni protokol, da se preveri skladnost podatkovne komunikacije med storitvami.
10) Preskušanje od konca do konca
Ta faza zagotavlja, da prijava funkcionalno in nefunkcionalno potrjuje poslovne zahteve.
Spodnji elementi so zagotovljeni za preskušanje med preskusom od konca do konca
- Vse storitve delujejo po pričakovanjih po integraciji
- Obravnava izjem
- Uporabniški vmesnik aplikacije
- Ustrezen pretok podatkov skozi vse komponente
- Poslovni proces
Izzivi pri testiranju SOA
- Pomanjkanje vmesnikov za storitve
- Proces testiranja se razteza na več sistemih in tako ustvarja zapletene potrebe po podatkih
- Aplikacija je zbirka različnih komponent, ki se ponavadi spreminjajo. Potreba po regresijskem testiranju je pogostejša.
- Zaradi večplastne arhitekture je težko izolirati napake.
- Ker se bo storitev uporabljala v različnih vmesnikih, je težko napovedati obremenitev, zato je načrtovanje preizkusov zmogljivosti okorno.
- SOA je zbirka heterogenih tehnologij. Testiranje aplikacije SOA zahteva ljudi z različnimi nabori spretnosti, kar posledično poveča stroške načrtovanja in izvedbe.
- Ker je aplikacija integracija več storitev, ima preskušanje varnosti svoj del težav. Preverjanje pristnosti in avtorizacije je precej težko.
Orodja za testiranje SOA
Na trgu je na voljo veliko orodij za testiranje SOA, ki preskuševalcem pomagajo pri testiranju aplikacij SOA. Tu je nekaj priljubljenih orodij za testiranje SOA :
1) Uporabniški vmesnik SOAP
"SOAP UI" je odprtokodno orodje za funkcionalno preizkušanje storitev in testiranja API-jev.
- Namizna aplikacija
- Podpira več protokolov - SOAP, REST, HTTP, JMS, AMF, JDBC
- Spletne storitve je mogoče razviti, pregledati in uporabiti.
- Uporablja se lahko tudi za preskušanje obremenitve, preizkušanje avtomatizacije in varnostno preskušanje
- Škrbine lahko ustvari MockServices
- Zahteve in teste za spletne storitve je mogoče samodejno ustvariti prek odjemalca spletnih storitev.
- Vgrajena orodja za poročanje
- Razvil SmartBear
2) iTKO LISA
"LISA" je paket izdelkov, ki ponuja funkcionalno rešitev za testiranje porazdeljenih sistemov, kot je SOA.
- Uporablja se lahko tudi za regresijo, integracijo, obremenitev in testiranje zmogljivosti.
- Razvil iTKO (CA Technologies)
- Lahko se uporablja za načrtovanje in izvajanje testov.
3) HP-jev servisni test
"Service Test" je orodje za funkcionalno preskušanje, ki podpira testiranje uporabniškega vmesnika in skupnih storitev
- Funkcionalnost in preizkus zmogljivosti storitev lahko opravite z enim samim skriptom.
- Integrirano s HP QC.
- Ogromno storitev in podatkov je mogoče upravljati.
- Podpira preskuse interoperabilnosti s simulacijo odjemalskih okolij JEE, AXIS in DotNet.
- Razvil HP.
4) Parasoft test SOA
SOA Test je zbirka orodij za testiranje in analizo, razvita za testiranje API-jev in aplikacij API.
- Podpira spletne storitve, REST, JSON, MQ, JMS, TIBCO, HTTP, XML.
- Možno je preverjanje funkcionalnosti, enote, integracije, regresije, varnosti, interoperabilnosti, skladnosti in učinkovitosti.
- Stubs je mogoče ustvariti s pomočjo Parasoft Virtualize, ki je inteligentna kot SOAP UI.
- Razvil ParaSoft
Primeri uporabe testiranja SOA
Razmislite o spletnem mestu e-trgovine, ki vsebuje spodnje funkcije in podfunkcije:
Obdelava naročil
FAZA 1
V prvi fazi testiranja SOA, tj. Faze preizkusne strategije, je aplikacija razdeljena na storitve in poslovne funkcije.
Spodaj si oglejmo storitve v aplikaciji.
- Ustvari naročilo
- Preverite status stranke
- Spremeni stanje naročila
- Preverite stanje naročila
- Preverite popis
Poslovne funkcije so enake kot funkcije spletnega mesta.
Opomba: Dokument o strategiji preskusa bi vseboval seznam storitve in funkcije, ki jih je treba preizkusiti.
FAZA 2
Faza načrtovanja preskusov. Za vsako stopnjo so napisani testni primeri.
- Od konca do konca. Testni primeri so napisani za vsak primer in potek poslovne uporabe.
Spodaj so primeri testnih primerov
- Ustvarite naročilo z aktivnim uporabnikom.
- Ustvarite naročilo z neaktivnim uporabnikom.
- Ustvarite naročilo z razpoložljivim izdelkom s količino naročila
- Ustvarite naročilo z razpoložljivim izdelkom s količino naročila> razpoložljivo količino.
- Ustvarite naročilo z več elementi
- V celoti prekliči naročilo.
- Delno prekliči naročilo.
- Raven integracije. Testni primeri so napisani za integracijo baze podatkov in uporabniškega vmesnika.
Spodaj so primeri testnih primerov.
- Ustvarite novo naročilo z enim samim elementom. Preverite, ali je naročilo ustvarjeno v bazi podatkov.
- Ustvarite novo naročilo z enim samim elementom. Preverite, ali je cena, izračunana za naročilo, pravilna.
- Ustvarite novo naročilo z enim samim elementom. Preverite, ali je količina razpoložljivega izdelka manjša za znesek naročila.
- Preverite, ali je stanje naročila, prikazanega v uporabniškem vmesniku, enako statusu v bazi podatkov.
- Prekličite naročilo in preverite, ali je stanje naročila spremenjeno v zbirki podatkov.
- Za prvo plačilo preverite, ali so podatki o plačilu, vneseni v uporabniški vmesnik, shranjeni v zbirki podatkov.
- Za vračilo plačil preverite, ali so podrobnosti o plačilu v zbirki podatkov prikazane na uporabniškem vmesniku.
- Raven storitve. Vsaka storitev je preizkušena glede vseh podatkovnih pogojev.
Spodaj je nekaj primerov.
Ne | podrobnosti naročila | Pogoj naročila |
---|---|---|
1. | Ustvari naročilo. Število predmetov = 1 | Količina po naročilu |
2. | Ustvari naročilo. Število elementov> 1 | Količina po naročilu |
3. | Ustvari številko naročila predmetov = 1 | Količina po naročilu> Količina po zbirki podatkov |
4. | Preverite stanje naročila | Stanje v bazi podatkov = aktivno |
5. | Preverite stanje naročila | Stanje v bazi podatkov = odposlano |
6. | Preverite stanje naročila | Stanje v bazi podatkov = Preklicano |
7. | Preverite stanje naročila | ID naročila = Neveljavno |
8. | Preverite razpoložljivost izdelkov | Količina izdelka> 0 |
9. | Preverite razpoložljivost izdelkov | Količina izdelka = 0 |
10. | Preverite razpoložljivost izdelkov | ID izdelka = neveljaven |
FAZA 3 - Izvajanje testa
Izvajanje preizkusov uporablja pristop od spodaj navzgor, tj. Najprej se opravi testiranje na ravni storitve, nato nivo integracije in nazadnje preskušanje od konca do konca.
1) Raven storitve
Upoštevajmo, da orodje Soapui velja za preizkušanje aplikacije.
WSDL in URL brskata v testnem oknu SOAP.
Zahteva za vsako storitev bo prikazana v oknu zahteve.
S spreminjanjem podatkov glede na testne primere na ravni storitve se ustvarijo zahteve za vsak testni primer.
Testni primer |
Prošnja |
Pričakovani odziv |
---|---|---|
Ustvari naročilo. Število kosov = 1Količina po naročilu |
|
|
Ustvari naročilo. kosov> 1Količina po naročilu |
|
|
Ustvari naročilo št. kosov = 1Količina na naročilu> Količina na db |
|
|
Preveri status stanja naročila v bazi podatkov = Aktivno |
|
|
Preveri status statusa naročila v bazi podatkov = Odposlano |
|
|
Preveri id stanja naročila = Neveljaven |
|
|
Preverite razpoložljivost izdelka Količina izdelka> 0 |
|
|
Preverite razpoložljivost izdelka Količina izdelka = 0 |
|
|
Preverite razpoložljivost izdelka ID izdelka = neveljaven |
|
|
2) Raven integracije
Preizkusi na ravni integracije se izvajajo v uporabniškem vmesniku in zbirki podatkov.
- Ustvarite naročilo z enim elementom -
- Uporabnik odpre spletno mesto.
- Odpravi naročilo.
- Izbere veljaven izdelek in količino ter shrani naročilo.
- Prikaže se sporočilo, da je naročilo uspešno oddano.
- Uporabnik odpre bazo podatkov in preveri, ali so podrobnosti naročila enake kot vnesene na spletnem mestu.
3) Stopnja od konca do konca
Poslovni tokovi in primeri uporabe se izvajajo v uporabniškem vmesniku.
- Ustvarite naročilo z več elementi -
- Uporabnik odpre spletno mesto.
- Odpravi naročilo.
- Poizvede o veljavnem izdelku in količini jih doda v košarico.
- Drugi veljavni izdelki se dodajo z veljavnimi količinami in naročilo se shrani. Plačilo se izvede z novim plačilnim sredstvom in naročilo se odda.
- Prikaže se sporočilo »Naročilo je bilo uspešno oddano«.
- Preizkuševalec mora potrditi, da je celoten tok opravljen brez izkrivljanja podatkov.
Zaključek:
S skiciranjem prave strategije za testiranje, vire, orodja in skladnost za zagotavljanje dobrih storitev lahko testiranje SOA prinese popolnoma in popolnoma preizkušeno aplikacijo.