Mis on SOA testimine? Õpetus koos näitega
Mis on SOA testimine?
SOA (teenusele orienteeritud ArchiTecture) Testimine on SOA arhitektuurse stiili testimine, mille puhul rakenduse komponendid on loodud suhtlema sideprotokollide kaudu tavaliselt võrgu kaudu.
Mis on SOA?
SOA on meetod ärirakenduste ja -protsesside integreerimiseks ärivajaduste rahuldamiseks.
Tarkvaratehnikas pakub SOA äriprotsessidele paindlikkust ja paindlikkust. Protsessi või rakenduse muudatusi saab suunata konkreetsele komponendile, ilma et see mõjutaks kogu süsteemi.
SOA tarkvaraarendajad kas arendavad või ostavad tükke nimega programme TEENUSED.
Mis on Teenus?
- Teenused võivad olla rakenduse või äriprotsessi funktsionaalne üksus, mida saab taaskasutada või korrata mis tahes muu rakenduse või protsessiga. (Näiteks ülaloleval pildil on Payment Gateway teenus, mida saab taaskasutada mis tahes e-kaubandussait. Kui makse on vaja teha, helistab e-kaubanduse sait/taotleb teenust Payment Gateway. Kui lüüsis on makse sooritatud, saadetakse vastus e-kaubanduse veebisaidile.
- Teenuseid on lihtne kokku panna ja komponente on lihtne ümber konfigureerida.
- Teenuseid võib võrrelda ehitusplokkidega. Nad saavad ehitada mis tahes vajalikku rakendust. Nende lisamine ja eemaldamine rakendusest või äriprotsessist on lihtne.
- Teenused on määratletud pigem ärifunktsiooni järgi, mida nad täidavad, mitte kooditükkidena.
Web Services
Veebiteenused on sõltumatud rakenduskomponendid, mis on saadaval veebis.
Neid saab avaldada, leida ja veebis kasutada. Nad saavad suhelda Interneti kaudu.
- Teenusepakkuja avaldab teenuse Internetis.
- Klient otsib veebiteenuste registrist teatud veebiteenust
- Tagatakse nõutava veebiteenuse URL ja WSDL. WSDL-i ja URL-i kasutades toimub side teenusepakkuja ja taotleja vahel SOAP-sõnumite kaudu.
- Kui tarbija helistab veebiteenusele, luuakse teenusepakkujaga HTTP-ühendus.
Luuakse SOAP-sõnum, mis juhendab pakkujat nõutava veebiteenuse loogika käivitamiseks. - Pakkujalt saadud vastus on SOAP-sõnum, mis manustatakse HTTP vastusesse. See HTTP-vastus on andmevorming, mis on tarbijarakendusele arusaadav.
Näide
Veebisaidi ja otsingumootori avalehel kuvatakse igapäevane ilmateade. Ilmateate jaotise täieliku kodeerimise asemel saab müüjalt osta ilmateate teenuse ja integreerida see lehtedele.
SOA testimine
SOA koosneb erinevatest tehnoloogiatest. SOA abil loodud rakendustel on erinevad teenused, mis on lõdvalt seotud.
SOA testimine peaks keskenduma kolmele süsteemikihile
Teenuste kiht
See kiht koosneb teenustest, teenustest, mida paljastab ärifunktsioonidest tuletatud süsteem.
Näiteks -
Kaaluge terviseveebisaiti, 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 kogumist, mis on osa ühest funktsionaalsusest.
Protsessid võivad olla osa kasutajaliidest (nt otsingumootor), osa ETL-i tööriistast (andmebaasist andmete hankimiseks).
Selle kihi põhirõhk on kasutajaliidestel ja protsessidel.
Põhirõhk on kaalujälgija kasutajaliidesel ja selle integreerimisel andmebaasiga.
Arvesse võetakse allolevaid funktsioone
- Uute andmete lisamine
- Olemasolevate andmete redigeerimine
- Uue jälgija loomine
- Andmete kustutamine
Tarbijakiht
See kiht koosneb peamiselt kasutajaliidest.
Kihi põhjal jaotatakse SOA-rakenduse testimine kolmele tasemele.
- Teenuse tase
- Liidese tase
- Lõpust lõpuni
- Testide kavandamisel kasutatakse ülalt alla lähenemisviisi.
- Testi läbiviimiseks kasutatakse alt üles lähenemisviisi.
SOA testimise strateegia
katsete planeerimise lähenemisviis,
- SOA testijad peaksid aru saama rakenduse täielikust arhitektuurist.
- Rakendus tuleb jaotada sõltumatuteks teenusteks (teenus, millel on oma päringu ja vastuse struktuur ning mis ei sõltu vastuse moodustamiseks ühestki teisest teenusest).
- Rakenduse struktuur tuleb ümber korraldada kolmeks komponendiks – andmed, teenused ja esiotsarakendused.
- Kõiki komponente tuleb hoolikalt analüüsida ja äristsenaariumid tuleks välja mõelda.
- Äristsenaariumid tuleks liigitada tavalisteks ja rakendusspetsiifilisteks stsenaariumideks.
- A Jälgitavuse maatriks tuleks ette valmistada ja kõik testjuhtumid tuleks jälgida äristsenaariumitele.
Testi teostamise lähenemisviis
- Iga teenusekomponenti tuleks testida.
- Integratsiooni testimine teenusekomponentide osa tuleks teha teenuste kaudu toimuva andmevoo ja andmete terviklikkuse kinnitamiseks.
- Süsteemi testimine Esialgse rakenduse ja andmebaasi vahelise andmevoo valideerimiseks tuleks teha täielik mudel.
- Jõudluse testimine tuleks teha peenhäälestamiseks ja optimaalseks jõudluseks.
SOA testimismeetodid
1) äristsenaariumipõhine andmepõhine testimine,
- Analüüsida tuleks erinevaid süsteemiga seotud äriaspekte.
- Stsenaariumid tuleks välja töötada integreerimise põhjal
- Eri Veebiteenused rakendusest
- Veebiteenused ja rakendused.
- Andmete seadistamine peaks toimuma ülaltoodud stsenaariumide alusel.
- Andmed tuleks seadistada nii, et need hõlmaksid ka otsast lõpuni.
2) Kärnid
- Teenuste testimiseks luuakse näilikud liidesed.
- Nende liideste kaudu saab pakkuda erinevaid sisendeid ja väljundeid saab valideerida.
- Kui rakendus kasutab liidest välisteenusega, mis pole testimisel (kolmanda osapoole teenus), saab integratsioonitestimise käigus luua tünni.
3) Regressioonitest
- Regressioonitestimine süsteemide stabiilsuse ja kättesaadavuse tagamiseks tuleks teha mitu versiooni.
- Luuakse põhjalik regressioonitestide komplekt, mis hõlmab teenuseid, mis moodustavad rakenduse olulise osa.
- Seda testkomplekti saab projekti mitmes versioonis uuesti kasutada.
4) Teenusetaseme testimine
Teenusetaseme testimine hõlmab komponendi funktsionaalsuse, turvalisuse, jõudluse ja koostalitlusvõime testimist.
Iga teenust tuleb esmalt iseseisvalt testida.
5) Funktsionaalne testimine
Funktsionaalne testimine tuleks läbi viia iga teenuse puhul
- Veenduge, et teenus annaks igale päringule õige vastuse.
- Kehtetute andmete, vigaste andmete jms päringu puhul saadakse õiged vead.
- Kontrollige iga taotlust ja vastust iga toimingu jaoks, mida teenus peab tööajal sooritama.
- Kontrollige veateateid, kui serveri, kliendi või võrgu tasandil ilmneb tõrge.
- Kontrollige, kas saadud vastused on õiges vormingus.
- Kinnitage, et vastusele saadud andmed vastavad taotletud andmetele.
6) Turvatestimine
Veebiteenuse turvatestimine on oluline aspekt SOA rakenduse teenusetaseme testimisel; see tagab rakenduse ohutuse.
Katsetamise ajal tuleb arvesse võtta järgmisi tegureid:
- Veebiteenus peaks järgima WS-Security testimisega määratletud tööstusstandardit.
- Turvameetmed peaksid töötama laitmatult.
- Andmete krüpteerimine ja Digital allkirjad dokumentidel
- Autentimine ja autoriseerimine
- XML-is tuleb testida SQL-i süstimist, pahavara, XSS-i, CSRF-i ja muid turvaauke.
- Teenuse keelamise rünnakud
7) Toimivuse testimine
Teenuse jõudlust tuleb testida, kuna teenused on korduvkasutatavad ja sama teenust võivad kasutada mitu rakendust.
Katsetamisel võetakse arvesse järgmisi tegureid:
- Teenuse jõudlust ja funktsionaalsust tuleb testida suure koormuse all.
- Teenuse toimivust tuleb võrrelda nii individuaalselt kui ka rakendusesiseselt töötades, sellega kaasneb.
- Teenuse koormustest tuleb läbi viia
- reageerimisaja kontrollimiseks
- kitsaskohtade kontrollimiseks
- et kontrollida protsessori ja mälu kasutamist
- mastaapsuse ennustamiseks
8) Integratsioonitaseme testimine
- Teenusetaseme testimine tagab ainult teenuste korraliku toimimise eraldi, see ei garanteeri ühendatud komponentide tööd.
- Integratsiooni testimine keskendub peamiselt liidestele.
- See etapp hõlmab kõiki võimalikke äristsenaariume.
- Rakenduse mittefunktsionaalset testimist tuleks selles etapis teha veel üks kord. Turvalisus, vastavus ja jõudluse testimine tagavad süsteemi kättesaadavuse ja stabiilsuse kõigis aspektides.
- Side- ja võrguprotokolle tuleks testida, et kinnitada andmeside järjepidevust teenuste vahel.
9) End-to End testimine
See etapp tagab, et rakendus vastab ärinõuetele nii funktsionaalselt kui ka mittefunktsionaalselt.
Allpool toodud üksusi testitakse lõpuni testimise ajal
- Kõik teenused töötavad pärast integreerimist ootuspäraselt
- Erandite käsitlemine
- Rakenduse kasutajaliides
- Korralik andmevoog läbi kõigi komponentide
- Äriprotsess
Väljakutsed SOA testimisel
- Liideste puudumine teenuste jaoks
- Testimisprotsess hõlmab mitut süsteemi, luues 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 koormust raske ennustada, mistõttu on jõudlustestide planeerimine tülikas.
- SOA on heterogeensete tehnoloogiate kogum. SOA-rakenduse testimiseks on vaja erinevate oskustega inimesi, mis omakorda suurendab planeerimis- ja teostuskulusid.
- Kuna rakendus on mitme teenuse integratsioon, on turvatestimisel omajagu probleeme. Autentimise ja autoriseerimise kinnitamine on üsna keeruline.
SOA testimise tööriistad
Turul on palju SOA testimistööriistu, mis aitavad testijatel SOA rakendusi testida. Siin on mõned populaarsed SOA testimise tööriistad:
1) SEEBI kasutajaliides
"SOAP UI" on avatud lähtekoodiga funktsionaalne testimise tööriist teenuste ja API testimine.
- Töölauarakendus
- Toetab mitut protokolli – SOAP, REST, HTTP, JMS, AMF, JDBC
- Veebiteenuseid saab arendada, kontrollida ja kasutada.
- Võib kasutada ka koormustestimiseks, Automatiseerimise testimineja turvatestid
- Stub saab luua MockServices
- Veebiteenuse taotlusi ja teste saab selle veebiteenuse kliendi kaudu automaatselt genereerida.
- Sisseehitatud aruandlustööriistad
- Arendanud SmartBear
2) iTKO LISA
“LISA” on tootekomplekt, mis pakub funktsionaalset testimislahendust hajutatud süsteemidele nagu SOA.
- Saab kasutada ka regressiooniks, integreerimiseks, koormuseks ja jõudluse testimiseks.
- Arendaja iTKO (CA Technologies)
- Saab kasutada testide kavandamiseks ja läbiviimiseks.
3) HP teenindustest
"Teenuste test" on funktsionaalne testimistööriist, mis toetab nii kasutajaliidese kui ka jagatud teenuste testimist
- Nii teenuste funktsionaalset kui ka jõudlustesti saab teha ühe skripti abil.
- Integreeritud HP QC-ga.
- Hallatav on tohutu hulk teenuseid ja andmeid.
- Toetab koostalitlusvõime testimist, simuleerides JEE, AXIS ja DotNet kliendikeskkondi.
- Arendanud HP.
4) Parasoft SOA test
SOA Test on API ja API rakenduste testimiseks välja töötatud testimis- ja analüüsitööriistade komplekt.
- Toetab veebiteenuseid, REST, JSON, MQ, JMS, TIBCO, HTTP, XML tehnoloogiaid.
- Funktsionaalne, ühik, integratsioon, regressioon, turvalisus, koostalitlusvõime, vastavus ja jõudluse testimine on võimalikud.
- Tükke saab luua Parasoft Virtualize'i abil, mis on intelligentsed kui SOAP UI.
- Arendaja ParaSoft
SOA testimise kasutusjuhtumid
Mõelge e-kaubanduse veebisaidile, mis sisaldab järgmisi funktsioone ja alamfunktsioone:
Tellimuste töötlemine
1i faas
SOA testimise esimeses faasis ehk testimisstrateegia etapis jagatakse rakendus teenusteks ja ärifunktsioonideks.
Vaatleme allpool rakenduses sisalduvaid teenuseid.
- Loo tellimus
- Kontrollige kliendi olekut
- Muuda tellimuse olekut
- Kontrollige tellimuse olekut
- Kontrollige laoseisu
Ärifunktsioonid on samad, mis veebisaidi funktsioonid.
Märge: Testistrateegia dokument sisaldab teenuse ja funktsioonide loendit, mida tuleb testida.
2i faas
Testi planeerimise etapp. Testjuhtumid on kirjutatud iga taseme jaoks.
- Lõpust lõpuni. Testjuhtumid on kirjutatud iga ärikasutusjuhtumi ja -voo jaoks. Allpool on toodud testjuhtumite näide
- Koostage aktiivse kasutajaga tellimus.
- Looge tellimus mitteaktiivse kasutajaga.
- Koostage saadaoleva tootega tellimus, mille kogus on < saadaval kogus.
- Looge saadaoleva tootega tellimus tellimuse kogus > saadaolev kogus.
- Looge tellimus mitme kaubaga
- Tühista tellimus täielikult.
- Tühista tellimus osaliselt.
- Integratsiooni tase. Testjuhtumid on kirjutatud andmebaasi ja kasutajaliidese integreerimiseks. Allpool on toodud testjuhtumite näited.
- Looge uus tellimus ühe kaubaga. Veenduge, et tellimus on andmebaasis loodud.
- Looge uus tellimus ühe kaubaga. Veenduge, et tellimusele arvutatud hind on õige.
- Looge uus tellimus ühe kaubaga. Veenduge, et saadaoleva toote kogus on tellimuse summa võrra väiksem.
- Veenduge, et kasutajaliideses kuvatava tellimuse olek oleks sama, mis andmebaasis.
- Tühista tellimus ja veendu, et tellimuse olekut on andmebaasis muudetud.
- Esmakordsel maksmisel veenduge, et kasutajaliidesesse sisestatud makseandmed on andmebaasi salvestatud.
- Maksete tagastamiseks veenduge, et kasutajaliideses kuvatakse andmebaasis olevad makseandmed.
- Teenuse tase. Iga teenust testitakse kõigi andmetingimuste suhtes.
Allpool on mõned näited.
Ei. | Tellimuse üksikasjad | Tellimuse seisukord |
---|---|---|
1 | Loo tellimus. Kaupade arv = 1 | Tellimuse kogus < Kogus andmebaasis |
2 | Loo tellimus. Toodete arv > 1 | Tellimuse kogus < Kogus andmebaasis. |
3 | Loo kaubatellimuse 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 = kehtetu |
3. FAAS – Testi läbiviimine
Test Execution kasutab alt-üles lähenemist, st esmalt tehakse teenusetaseme testimine, seejärel integratsioonitase ja lõpuks End to End testimine.
1) Teenindustase
Mõelgem sellele Seep tööriista kasutatakse rakenduse testimiseks.
. wsdl ja URL sirvitakse SOAPi testiaknasse.
Taotluse aknas kuvatakse iga teenuse taotlus.
Andmete muutmisel vastavalt teenusetaseme testjuhtumitele luuakse päringud iga testjuhtumi jaoks.
Testjuhtum | Küsi | Oodatud vastus |
---|---|---|
Loo tellimus. Artiklite arv = 1 Tellimuse kogus < Kogus db | x2 2 | o3251 Edukas |
Loo tellimus.Nr. üksustest > 1 Tellimuse kogus < db kogus | y1 1 y2 3 | o3251 Edukas |
Loo tellimuse nr. üksustest = 1Tellimuse kogus > db kogus | x23 200 | null Ebaõnnestunud |
Kontrolli tellimuse olekut Status andmebaasis = Aktiivne | o9876 | Aktiivne Edukas |
Kontrolli tellimuse olekut Status andmebaasis = Saadetud | o9656 | Saadetud Edukas |
Kontrolli tellimuse olekut Tellimuse id = Kehtetu | y5686 | null Ebaõnnestunud |
Kontrolli toote saadavust Toote kogus >0 | d34 | 34 jah Edukas |
Kontrolli toote saadavust Toote kogus =0 | y34 | 0 ei Edukas |
Kontrollige toote saadavustToote ID = vigane | sder | Ebaõnnestunud |
2) Integratsioonitase
Integratsioonitaseme testjuhtumid täidetakse kasutajaliideses ja andmebaasis.
- Looge tellimus ühe kaubaga –
- Kasutaja avab veebisaidi.
- Läheb tellimust esitama.
- Valib sobiva toote ja koguse ning salvestab tellimuse.
- Kuvatakse teade, et tellimus on edukalt esitatud.
- Kasutaja avab andmebaasi ja kontrollib, kas tellimuse andmed on samad, mis saidile sisestatud.
3) End to End tase
Ärivood ja kasutusjuhtumid teostatakse kasutajaliideses.
- Mitme kaubaga tellimuse koostamine –
- Kasutaja avab veebisaidi.
- Läheb tellimust esitama.
- Küsib kehtiva toote ja koguse kohta lisab need ostukorvi.
- Muud kehtivad tooted lisatakse kehtivate kogustega ja tellimus salvestatakse. Tasumine toimub uue makseviisi kaudu ja tellimus vormistatakse.
- Kuvatakse teade "Tellimus on edukalt sooritatud".
- Testija peaks kinnitama, et kogu voog tehakse ilma andmeid moonutamata.
Järeldus
Hea teenuse pakkumiseks õige testimisstrateegia, ressursside, tööriistade ja nõuetele vastavuse visandamise abil saab SOA testimine pakkuda täielikult ja täiuslikult testitud rakendusi.