Mis on SOA testimine?
SOA (Service Oriented Architecture) testimine on SOA arhitektuuristiili testimine, milles rakenduse komponendid on loodud suhtlema suhtlusprotokollide kaudu tavaliselt võrgu kaudu.
Selles õpetuses saate teada
- Mis on SOA?
- Mis on teenus?
- SOA testimine
- SOA testimise strateegia
- SOA testimismeetodid
- Väljakutsed SOA testimisel
- SOA testimisvahendid
- SOA testimise kasutusjuhtumid
Mis on SOA?
SOA on meetod ärirakenduste ja -protsesside integreerimiseks ettevõtte vajaduste rahuldamiseks.
Tarkvaratehnikas pakub SOA äriprotsessidele paindlikkust ja paindlikkust. Protsessi või rakenduse muudatusi saab suunata konkreetsele komponendile kogu süsteemi mõjutamata.
SOA-s asuvad tarkvaraarendajad arendavad välja või ostavad programmide tükke nimega SERVICES.
Mis on teenus?
- Teenused võivad olla rakenduse või äriprotsessi funktsionaalne üksus, mida saab uuesti kasutada või korrata mis tahes muu rakenduse või protsessiga.
(Näiteks ülaltoodud pildil on Payment Gateway teenus, mida kõik e-kaubanduse saidid saavad uuesti kasutada. Kui makse on vajalik, helistab / taotleb e-kaubanduse sait Payment Gateway teenust. Pärast makse sooritamist värav, saadetakse vastus e-kaubanduse veebisaidile)
- Teenuseid on lihtne kokku panna ja komponente on lihtne ümber seadistada.
- Teenuseid saab võrrelda ehitusplokkidega. Nad saavad luua vajaliku rakenduse. Nende lisamine ja eemaldamine rakendusest või äriprotsessist on lihtne.
- Teenuseid määratletakse pigem ärifunktsiooniga, mida nad täidavad, mitte kooditükkidena.
Veebiteenused
Veebiteenused on sõltumatud rakenduse komponendid, mis on saadaval veebis.
Neid saab avaldada, leida ja veebis kasutada. Nad saavad suhelda Interneti kaudu.
- Teenusepakkuja avaldab teenuse Internetis.
- Klient otsib veebiteenuse registrist konkreetset veebiteenust
- Tagastatakse nõutava veebiteenuse URL ja WSDL.
>> WSDL-i ja URL-i abil toimub teenusepakkuja ja taotleja vaheline suhtlus SOAP-sõnumite kaudu. <<
- Kui tarbija helistab veebiteenusele, luuakse pakkujaga HTTP-ühendus.
Luuakse SOAP-teade, et õpetada pakkujat nõutava veebiteenuse loogika käivitamiseks.
- Pakkujalt saadud vastus on SOAP-teade, mis manatakse HTTP-vastusesse. See HTTP-vastus on andmevorming, mis on tarbijarakendusele arusaadav.
Näide
Veebisaidi ja otsingumootori avalehel kuvatakse iga päev ilmateade. Ilmateate jaotise kogu kodeerimise asemel saab hankida müüjalt teenuse Ilmateate teenuse ja integreerida lehtedesse.
SOA testimine
SOA koosneb erinevatest tehnoloogiatest. SOA abil loodud rakendustel on erinevad teenused, mis on omavahel lõdvalt ühendatud.
SOA testimine peaks keskenduma 3 süsteemikihile
Teenuste kiht
See kiht koosneb teenustest, teenustest, mis on avatud ettevõtte funktsioonidest tulenevale süsteemile.
Näiteks -
Mõelge Wellnessi veebisaidile, mis koosneb
- Kaalujälgija
- Veresuhkru jälgija
- Vererõhu jälgija
Jälgijad kuvavad vastavad andmed ja nende sisestamise kuupäeva. Teenuste kiht koosneb teenustest, mis saavad vastavad andmed andmebaasist
- Kaalujälgija teenus
- Veresuhkru jälgimise teenus
- Vererõhu jälgimise teenus
- Sisselogimisteenus
Protsessi kiht
Protsessikiht koosneb protsessidest, teenuste kogumisest, mis on osa ühest funktsionaalsusest.
Protsessid võivad olla kasutajaliidese osa (endise otsingumootori jaoks), ETL-i tööriista osa (andmebaasist andmete hankimiseks).
Selle kihi põhirõhk on kasutajaliidestel ja protsessidel.
Esmatähtis on kaalujälgija kasutajaliides ja selle integreerimine andmebaasiga.
Arvestada tuleb allpool toodud funktsioonidega
- Uute andmete lisamine
- Olemasolevate andmete muutmine
- Uue jälgija loomine
- Andmete kustutamine
Tarbijakiht
See kiht koosneb peamiselt kasutajaliidestest.
Kihi põhjal jaotatakse SOA-rakenduse testimine kolmele tasandile.
- Teenuse tase
- Liidese tase
- Otsast lõpuni
- Testi kujundamisel kasutatakse ülalt alla lähenemist.
- Testi täitmisel kasutatakse alt üles lähenemist.
SOA testimise strateegia
Katse planeerimise lähenemisviis,
- SOA testijad peaksid mõistma rakenduse täielikku arhitektuuri.
- Rakendus tuleb jagada iseseisvateks teenusteks (teenus, millel on oma taotluste ja vastuste struktuur ning mis ei sõltu vastuse loomiseks ühestki muust teenusest).
- Rakendusstruktuur tuleb ümber korraldada kolmeks komponendiks - Data, Services ja esiotsa rakendused.
- Kõiki komponente tuleb hoolikalt analüüsida ja äristsenaariumid tuleks kriitiliselt välja joonistada.
- Äri stsenaariumid tuleks liigitada tavaliste stsenaariumide ja rakenduspõhiste stsenaariumite hulka.
- Tuleks koostada jälgitavuse maatriks ja kõik testjuhtumid tuleks jälgida äristsenaariumite järgi.
Katse täitmise lähenemine
- Iga teeninduskomponenti tuleks testida.
- Integreerimine Teenuste komponentide ja andmete terviklikkuse valideerimiseks tuleks teha teenuse komponentide testimine.
- Andmevoo valideerimiseks esiotsa rakenduse ja andmebaasi vahel tuleks läbi viia kogu mudeli testimine.
- Toimivuse testimine peaks toimuma peenhäälestuse ja optimaalse jõudluse tagamiseks.
SOA testimismeetodid
1) äristsenaariumipõhine andmete põhjal testimine,
- Analüüsida tuleks süsteemi erinevaid äriaspekte.
- Stsenaariumid tuleks välja töötada, tuginedes programmi integreerimisele
- Rakenduse erinevad veebiteenused
- Veebiteenused ja rakendused.
- Andmete seadistamine peaks toimuma ülaltoodud stsenaariumide põhjal.
- Andmed tuleks koostada nii, et need hõlmaksid ka lõpustsenaariume.
2) Stubid
- Teenuste testimiseks luuakse näivliidesed.
- Nende liideste kaudu saab pakkuda erinevaid sisendeid ja väljundeid saab kinnitada.
- Kui rakendus kasutab liidest välise teenusega, mida ei testita (kolmanda osapoole teenus), saab integratsioonitestimise käigus luua tõrke.
3) regressioonitest
- Rakenduse regressioonitesti tuleks teha mitme väljalaske korral, et tagada süsteemide stabiilsus ja kättesaadavus.
- Luuakse ulatuslik regressioonitesti komplekt, mis hõlmab rakenduse olulise osa moodustavaid teenuseid.
- Seda testipaketti saab taaskasutada projekti mitmes versioonis.
4) Teenuse taseme testimine
Teenuse taseme testimine hõlmab komponendi funktsionaalsuse, turvalisuse, jõudluse ja koostalitlusvõime testimist.
Kõiki teenuseid tuleb kõigepealt testida iseseisvalt.
5) Funktsionaalne testimine
Funktsionaalne testimine tuleks teha iga teenuse jaoks
- Veenduge, et teenus annab igale päringule õige vastuse.
- Vigaste andmetega, halbade andmetega jne taotluste korral saadakse õiged vead.
- Kontrollige iga päringu ja vastuse kohta iga toimingu kohta, mille teenus peab käitamise ajal sooritama.
- Kontrollige tõrketeateid, kui tõrge ilmneb serveri, kliendi või võrgu tasandil.
- Veenduge, et saadud vastused on õiges vormingus.
- Veenduge, et vastuse kohta saadud andmed vastavad nõutud andmetele.
6) Turvalisuse testimine
Veebiteenuse turvatestimine on oluline aspekt SOA rakenduse teenustaseme testimisel; see tagab rakenduse ohutuse.
Testimisel tuleb arvestada järgmiste teguritega:
- WS-Security testimisega määratletud tööstusharu standardit peaks järgima veebiteenus.
- Turvameetmed peaksid töötama laitmatult.
- Andmete krüptimine ja digitaalsed allkirjad
- Autentimine ja autoriseerimine
- XML-il tuleb testida SQL Injectioni, pahavara, XSS-i, CSRF-i ja muid haavatavusi.
- Teenuse keelamise rünnakud
7) jõudluskontroll
Teenuse jõudluskontroll tuleb läbi viia, kuna teenused on korduvkasutatavad ja sama teenust võib kasutada mitu rakendust.
Testimisel võetakse arvesse järgmisi tegureid:
- 8) Teenuse toimivust ja funktsionaalsust tuleb testida suure koormuse korral.
- Teenuse toimivust tuleb võrrelda, töötades individuaalselt ja rakenduses ning sellega on ühendatud.
- Tuleks läbi viia teenuse koormuse testimine
- reageerimisaja kontrollimiseks
- kitsaskohtade kontrollimiseks
- protsessori ja mälu kasutamise kontrollimiseks
- mastaapsuse ennustamiseks
9) Integreerimistaseme testimine
- Teenuse taseme testimine tagab ainult teenuste korraliku töö eraldi, see ei taga ühendatud komponentide tööd.
- Integreerimise testimine toimub peamiselt liidestele keskendudes.
- See etapp hõlmab kõiki võimalikke äristsenaariume.
- Rakenduse mittefunktsionaalne testimine tuleks selles etapis teha veel üks kord. Turvalisus, vastavus ja jõudluse testimine tagavad süsteemi kättesaadavuse ja stabiilsuse kõigis aspektides.
- Teenuste vahelise andmeside järjepidevuse kinnitamiseks tuleks testida side- ja võrguprotokolle.
10) Testimine lõpuni
See etapp tagab, et rakendus vastab ärinõuetele nii funktsionaalselt kui ka mittefunktsionaalselt.
Alljärgnevate elementide testimine on tagatud lõpptestimise ajal
- Kõik teenused toimivad pärast integreerimist ootuspäraselt
- Erandite käsitlemine
- Rakenduse kasutajaliides
- Korralik andmevoog läbi kõigi komponentide
- Äriprotsess
Väljakutsed SOA testimisel
- Teenuste liideste puudumine
- Protsessi testimine hõlmab mitut süsteemi, tekitades seega keerukaid andmevajadusi
- Rakendus on erinevate komponentide kogum, mis kipub muutuma. Regressioonitesti vajadus on sagedasem.
- Mitmekihilise arhitektuuri tõttu on defekte raske eraldada.
- Kuna teenust kasutatakse erinevates liidestes, on koormuse prognoosimine keeruline, muutes jõudlustestide kavandamise tülikaks.
- SOA on heterogeensete tehnoloogiate kogu. SOA-rakenduse testimiseks on vaja erinevaid oskusi pakkuvaid inimesi, mis omakorda suurendavad planeerimise ja teostamise kulusid.
- Kuna rakendus on mitme teenuse integreerimine, on turvatestimisel omajagu hädasid. Autentimise ja autoriseerimise kinnitamine on üsna keeruline.
SOA testimisvahendid
Turul on saadaval palju SOA testimistööriistu, mis aitavad testijatel SOA rakendusi testida. Siin on mõned populaarsed SOA testimistööriistad :
1) seebi kasutajaliides
"SOAP UI" on avatud lähtekoodiga funktsionaalse testimise tööriist teenuste ja API testimiseks.
- Töölauarakendus
- Toetab mitut protokolli - SOAP, REST, HTTP, JMS, AMF, JDBC
- Veebiteenuseid saab arendada, kontrollida ja neile tugineda.
- Saab kasutada ka koormuse testimiseks, automaatika testimiseks ja turvatestimiseks
- Stubisid saab luua MockServices
- Veebiteenuse taotlusi ja teste saab genereerida automaatselt selle veebiteenuse kliendi kaudu.
- Kas teil on sisseehitatud aruandlustööriistad
- Arendas SmartBear
2) iTKO LISA
"LISA" on tootepakett, mis pakub funktsionaalset testimislahendust hajutatud süsteemidele nagu SOA.
- Saab kasutada ka regressiooni, integreerimise, koormuse ja jõudluse testimiseks.
- Arendas iTKO (CA Technologies)
- Saab kasutada testide kavandamiseks ja läbiviimiseks.
3) HP hooldustesti
"Teenuse test" on funktsionaalne testimisvahend, mis toetab nii kasutajaliidese kui ka jagatud teenuste testimist
- Nii funktsioonide kui ka jõudlustesti saab teha ühe skripti abil.
- Integreeritud HP QC-ga.
- Suurt hulka teenuseid ja andmeid saab hallata.
- Toetab koostalitlusvõime testimist, simuleerides JEE, AXIS ja DotNet kliendikeskkondi.
- Välja töötanud HP.
4) Parasofti SOA test
SOA Test on testimis- ja analüüsivahendite komplekt, mis on välja töötatud API ja API rakenduste testimiseks.
- Toetab veebiteenuseid, REST, JSON, MQ, JMS, TIBCO, HTTP, XML tehnoloogiaid.
- Võimalik on funktsionaalne, üksus, integreerimine, regressioon, turvalisus, koostalitlusvõime, vastavuse ja jõudluse testimine.
- Stubid saab luua Parasoft Virtualize abil, mis on intelligentsed kui SOAP UI.
- Arendas ParaSoft
SOA testimise kasutusjuhtumid
Mõelgem e-kaubanduse veebisaidile, mis sisaldab järgmisi funktsioone ja alamfunktsioone:
Tellimuste töötlemine
FAAS 1
SOA testimise esimeses etapis ehk testimisstrateegia faasis on rakendus jaotatud teenusteks ja ärifunktsioonideks.
Mõelgem allpool rakenduse teenustele.
- Loo tellimus
- Kontrollige kliendi olekut
- Muuda tellimuse olekut
- Kontrollige tellimuse olekut
- Kontrollige varusid
Ettevõtte funktsioonid on samad mis veebisaidi funktsioonid.
Märkus . Testimisstrateegia dokument sisaldaks testitava teenuse ja funktsioonide loendit.
2. ETAPP
Testi planeerimise etapp. Testjuhtumid kirjutatakse iga taseme jaoks.
- Otsast lõpuni. Testjuhtumid kirjutatakse iga ärikasutuse juhtumi ja voo kohta.
Allpool on toodud testjuhtumite näide
- Looge aktiivse kasutajaga tellimus.
- Mitteaktiivse kasutajaga tellimuse loomine.
- Looge tellimus saadaoleva tootega tellimiskogusega
- Koostage saadaoleva tootega tellimus tellimiskogusega> saadaolev kogus.
- Looge mitme üksusega tellimus
- Tühistage tellimus täielikult.
- Tühista tellimus osaliselt.
- Integratsiooni tase. Testjuhud on kirjutatud andmebaasi ja kasutajaliidese integreerimiseks.
Allpool on toodud näited testjuhtumitest.
- Looge uus tellimus ühe üksusega. Veenduge, et tellimus on andmebaasis loodud.
- Looge uus tellimus ühe üksusega. Veenduge, et tellimuse jaoks arvutatud hind on õige.
- Looge uus tellimus ühe üksusega. Veenduge, et saadaoleva toote kogus oleks tellimuse summa võrra väiksem.
- Veenduge, et kasutajaliidesel kuvatud tellimuse olek on sama mis andmebaasis.
- Tühistage tellimus ja kontrollige, kas andmebaasis on tellimuse olek muudetud.
- Esmakordsel maksmisel kontrollige, kas kasutajaliidesesse sisestatud makse üksikasjad on andmebaasi salvestatud.
- Maksete tagastamiseks kontrollige, kas kasutajaliideses kuvatakse andmebaasi makse üksikasjad.
- Teenuse tase. Iga teenust testitakse kõigi andmetingimuste osas.
Allpool on toodud mõned näited.
Ei | Tellimuse üksikasjad | Tellimuse tingimus |
---|---|---|
1 | Loo tellimus. Kaupade arv = 1 | Kogus tellimisel |
2 | Loo tellimus. Kaupade arv> 1 | Kogus tellimisel |
3 | Loo üksuste tellimuse arv = 1 | Kogus tellimisel> Kogus andmebaasis |
4 | Kontrollige tellimuse olekut | Staatus andmebaasis = aktiivne |
5 | Kontrollige tellimuse olekut | Staatus andmebaasis = Saadetud |
6 | Kontrollige tellimuse olekut | Staatus andmebaasis = tühistatud |
7 | Kontrollige tellimuse olekut | Tellimuse ID = kehtetu |
8 | Kontrollige toote saadavust | Toote kogus> 0 |
9 | Kontrollige toote saadavust | Toote kogus = 0 |
10 | Kontrollige toote saadavust | Toote ID = vale |
3. faas - testimise täitmine
Testi täitmisel kasutatakse alt üles lähenemist, st kõigepealt tehakse teenuse taseme testimine, seejärel integreerimise tase ja lõpuks test lõpuni.
1) Teenuse tase
Mõelgem sellele, et rakenduse testimiseks kaalutakse tööriista Soapui.
WSDL-i ja URL-i sirvitakse SOAP-i testaknasse.
Iga teenuse taotlus kuvatakse päringuaknas.
Andmete muutmisega vastavalt teenuse taseme testimisjuhtudele luuakse taotlused iga testjuhtumi jaoks.
Testjuhtum |
Taotlus |
Oodatud vastus |
---|---|---|
Loo tellimus. Üksuste arv = 1Kogus tellimisel |
|
|
Loo tellimus. Ei. üksustest> 1Kogus tellimisel |
|
|
Loo tellimusnumber. üksustest = 1Kogus tellimisel> Kogus db-l |
|
|
Kontrollige andmebaasi tellimuse olekut = aktiivne |
|
|
Kontrollige tellimuse olekut andmebaasis = Saadetud |
|
|
Kontrollige tellimuse statusOrder id = sobimatu |
|
|
Kontrollige toote saadavust Toote kogus> 0 |
|
|
Kontrollige toote saadavust Toote kogus = 0 |
|
|
Toote ID = vale |
|
|
2) integratsioonitase
Integreerimistaseme testijuhud viiakse läbi kasutajaliideses ja andmebaasis.
- Tellimuse loomine ühe üksusega -
- Kasutaja avab veebisaidi.
- Läheb tellimust esitama.
- Valib kehtiva toote ja koguse ning salvestab tellimuse.
- Tuleks kuvada teade, et tellimus on edukalt vormistatud.
- Kasutaja avab andmebaasi ja kontrollib, kas tellimuse üksikasjad on samad, mis veebisaidile sisestatud.
3) lõpust lõpuni
Ärivood ja kasutusjuhtumid täidetakse kasutajaliideses.
- Mitme üksusega tellimuse loomine -
- Kasutaja avab veebisaidi.
- Läheb tellimust esitama.
- Päring kehtiva toote kohta ja kogus lisab need ostukorvi.
- Muud kehtivad tooted lisatakse kehtivate kogustega ja tellimus salvestatakse. Maksmine toimub uue makseviisi abil ja tellimus esitatakse.
- Tuleks kuvada teade "Tellimus edukalt tehtud".
- Testija peaks kinnitama, et kogu voog toimub ilma andmete moonutamiseta.
Järeldus:
Visandades õige testimisstrateegia, ressursid, tööriistad ja vastavus hea teenuse pakkumiseks, võib SOA-testimine pakkuda täielikult ja täiuslikult testitud rakendust.