Mis on SOA testimine? Õpetus koos näitega

Lang L: none (table-of-contents):

Anonim

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.

  1. Teenusepakkuja avaldab teenuse Internetis.
  2. Klient otsib veebiteenuse registrist konkreetset veebiteenust
  3. Tagastatakse nõutava veebiteenuse URL ja WSDL.

    >> WSDL-i ja URL-i abil toimub teenusepakkuja ja taotleja vaheline suhtlus SOAP-sõnumite kaudu. <<

  4. Kui tarbija helistab veebiteenusele, luuakse pakkujaga HTTP-ühendus.

    Luuakse SOAP-teade, et õpetada pakkujat nõutava veebiteenuse loogika käivitamiseks.

  5. 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

  1. Kaalujälgija
  2. Veresuhkru jälgija
  3. 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

  1. Uute andmete lisamine
  2. Olemasolevate andmete muutmine
  3. Uue jälgija loomine
  4. Andmete kustutamine

Tarbijakiht

See kiht koosneb peamiselt kasutajaliidestest.

Kihi põhjal jaotatakse SOA-rakenduse testimine kolmele tasandile.

  1. Teenuse tase
  2. Liidese tase
  3. 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.

  1. 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.
  2. 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.
  3. 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

x2 2

o3251 õnnestus

Loo tellimus. Ei. üksustest> 1Kogus tellimisel

y11 y2 3

o3251 õnnestus

Loo tellimusnumber. üksustest = 1Kogus tellimisel> Kogus db-l

x23 200

null ebaõnnestus

Kontrollige andmebaasi tellimuse olekut = aktiivne

o9876

Active edukas

Kontrollige tellimuse olekut andmebaasis = Saadetud

o9656

Saadetud Edukas

Kontrollige tellimuse statusOrder id = sobimatu

y5686

täielik ebaõnnestus

Kontrollige toote saadavust Toote kogus> 0

d34

34 jah edukas

Kontrollige toote saadavust Toote kogus = 0

y34

0no edukas

Toote ID = vale

sder

ebaõnnestus

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.