Kas yra SOA testavimas? Pamoka su pavyzdžiu

Kas yra SOA testavimas?

SOA („Service Oriented Architecture“) testavimas yra SOA architektūros stiliaus testavimas, kai programos komponentai yra skirti bendrauti per ryšio protokolus, paprastai tinkle.

Šioje pamokoje sužinosite

  • Kas yra SOA?
  • Kas yra paslauga?
  • SOA testavimas
  • SOA testavimo strategija
  • SOA testavimo metodai
  • SOA testavimo iššūkiai
  • SOA testavimo įrankiai
  • SOA testavimo naudojimo atvejai

Kas yra SOA?

SOA yra verslo programų ir procesų integravimo metodas, siekiant patenkinti verslo poreikius.

Programinės įrangos inžinerijos srityje SOA suteikia verslo procesams lankstumo ir lankstumo. Proceso ar programos pakeitimai gali būti nukreipti į tam tikrą komponentą, nepaveikiant visos sistemos.

SOA programinės įrangos kūrėjai kuria arba perka programų, vadinamų „ SERVICES“, dalis.

Kas yra paslauga?

  • Paslaugos gali būti funkcinis programos ar verslo proceso vienetas, kurį gali pakartotinai naudoti ar pakartoti bet kuri kita programa ar procesas.

    (Pavyzdžiui, aukščiau pateiktame paveikslėlyje „Payment Gateway“ yra paslauga, kuria gali pakartotinai naudotis bet kuri el. Prekybos svetainė. Kai reikia atlikti mokėjimą, el. Prekybos svetainė paskambina / paprašo „Payment Gateway“ paslaugos. Atlikus mokėjimą vartai, atsakymas siunčiamas į elektroninės prekybos svetainę)

  • Paslaugas lengva surinkti ir lengvai pertvarkyti komponentus.
  • Paslaugas galima palyginti su statybinėmis medžiagomis. Jie gali sukurti bet kokią reikalingą programą. Lengva juos pridėti ir pašalinti iš programos ar verslo proceso.
  • Paslaugos apibrėžiamos labiau pagal jų atliekamą verslo funkciją, o ne kaip kodo dalis.

Žiniatinklio paslaugos

Žiniatinklio paslaugos yra nepriklausomi programų komponentai, pasiekiami internete.

Juos galima paskelbti, rasti ir naudoti internete. Jie gali bendrauti internetu.

  1. Paslaugų teikėjas skelbia paslaugą internete.
  2. Klientas ieško tam tikros žiniatinklio paslaugos iš žiniatinklio paslaugų registro
  3. Grąžinamas reikalingos žiniatinklio paslaugos URL ir WSDL.

    >> Naudojant WSDL ir URL, ryšys tarp paslaugų teikėjo ir prašytojo vyksta per SOAP pranešimus. <<

  4. Kai vartotojas paskambins į interneto paslaugą, bus užmegztas HTTP ryšys su teikėju.

    Sukuriamas SOAP pranešimas, nurodantis paslaugų teikėjui iškviesti reikiamą žiniatinklio paslaugų logiką.

  5. Iš teikėjo gautas atsakymas yra SOAP pranešimas, kuris bus įterptas į HTTP atsakymą. Šis HTTP atsakymas yra duomenų formatas, kurį supranta vartotojo programa.

Pavyzdys

Svetainės ir paieškos sistemos pagrindiniame puslapyje pateikiama kasdienių orų ataskaita. Užuot kodavę orų pranešimų skiltį, orų ataskaitos paslaugą galima įsigyti iš pardavėjo ir integruoti į puslapius.

SOA testavimas

SOA susideda iš įvairių technologijų. Naudojant SOA sukurtos programos turi įvairias laisvai sujungtas paslaugas.

SOA testavimas turėtų būti sutelktas į 3 sistemos sluoksnius

Paslaugų sluoksnis

Šį sluoksnį sudaro paslaugos, paslaugos, kurias veikia sistema, gaunama iš verslo funkcijų.

Pavyzdžiui -

Apsvarstykite „Wellness“ svetainę, kurią sudaro

  1. Svorio matuoklis
  2. Cukraus kiekis kraujyje
  3. Kraujospūdžio matuoklis

Sekėjai rodo atitinkamus duomenis ir jų įvedimo datą. Paslaugų sluoksnį sudaro paslaugos, kurios gauna atitinkamus duomenis iš duomenų bazės.

  • Svorio matuoklio paslauga
  • „Blood Sugar Tracker“ paslauga
  • Kraujo spaudimo stebėjimo paslauga
  • Prisijungimo paslauga

Proceso sluoksnis

Procesų sluoksnį sudaro procesai, paslaugų rinkimas, kurie yra vienos funkcijos dalis.

Procesai gali būti vartotojo sąsajos dalis (buvusiai paieškos sistemai), ETL įrankio dalis (duomenims gauti iš duomenų bazės).

Pagrindinis dėmesys šiame sluoksnyje bus skiriamas vartotojo sąsajoms ir procesams.

Svorio matuoklio vartotojo sąsaja ir jos integravimas su duomenų baze yra pagrindinis dėmesys.

Toliau nurodytos funkcijos bus svarstomos

  1. Pridedami nauji duomenys
  2. Redaguoti esamus duomenis
  3. Kuriamas naujas stebėjimo įrankis
  4. Ištrinami duomenys

Vartotojo sluoksnis

Šį sluoksnį daugiausia sudaro vartotojo sąsajos.

Remiantis sluoksniu, SOA programos testavimas yra paskirstytas į tris lygius.

  1. Aptarnavimo lygis
  2. Sąsajos lygis
  3. Pabaiga iki pabaigos
  • Bandant projektuoti naudojamas „iš viršaus į apačią“ metodas.
  • Bandymo vykdymui naudojamas „iš apačios į viršų“ metodas.

SOA testavimo strategija

Bandymo planavimo metodas,

  • SOA testuotojai turėtų suprasti visą programos architektūrą.
  • Programą reikia suskirstyti į nepriklausomas paslaugas (tarnyba, kuri turi savo užklausų ir atsakymų struktūrą ir nepriklauso nuo kitų tarnybų, kad suformuotų atsakymą).
  • Programos struktūrą reikia pertvarkyti į tris komponentus - „Data“, „Services“ ir „front-end“ programas.
  • Reikia kruopščiai išanalizuoti visus komponentus ir išsiaiškinti verslo scenarijus.
  • Verslo scenarijai turėtų būti klasifikuojami kaip įprasti scenarijai ir konkrečios programos scenarijai.
  • Turėtų būti parengta atsekamumo matrica, o visi bandomieji atvejai turėtų būti atsekti pagal verslo scenarijus.

Bandymo vykdymo metodas

  • Kiekvienas paslaugos komponentas turėtų būti išbandytas.
  • Integracija Norint patikrinti duomenų srautą per paslaugas ir duomenų vientisumą, reikia patikrinti paslaugų komponentus.
  • Turėtų būti atliktas viso modelio bandymas, siekiant patvirtinti duomenų srautą tarp „front-end“ programos ir duomenų bazės.
  • Norint tiksliai sureguliuoti ir optimaliai eksploatuoti, reikia atlikti našumo testus.

SOA testavimo metodai

1) Verslo scenarijumi pagrįstas duomenimis pagrįstas testavimas,

  • Reikėtų išanalizuoti įvairius su sistema susijusius verslo aspektus.
  • Scenarijai turėtų būti parengti remiantis integracija
    • Įvairios programos žiniatinklio paslaugos
    • Žiniatinklio paslaugos ir programos.
  • Duomenys turėtų būti nustatomi remiantis aukščiau nurodytais scenarijais.
  • Duomenys turėtų būti nustatyti taip, kad apimtų ir pabaigos iki pabaigos scenarijus.

2) Stubai

  • Paslaugoms išbandyti bus sukurtos manekeno sąsajos.
  • Per šias sąsajas galima pateikti įvairius įėjimus ir patvirtinti išvestis.
  • Kai programa naudoja sąsają su išorine paslauga, kuri nėra bandoma (trečiosios šalies paslauga), atliekant integravimo bandymą galima sukurti šabloną.

3) Regresijos testavimas

  • Programos regresijos bandymai turėtų būti atliekami, kai yra keli leidimai, kad būtų užtikrintas sistemų stabilumas ir prieinamumas.
  • Bus sukurtas išsamus regresijos testų rinkinys, apimantis paslaugas, kurios yra svarbi programos dalis.
  • Šis bandomasis rinkinys gali būti pakartotinai naudojamas keliuose projekto leidimuose.

4) Paslaugų lygio testavimas

Paslaugų lygio testavimas apima komponento funkcionalumo, saugumo, našumo ir sąveikumo testavimą.

Kiekvieną paslaugą pirmiausia reikia išbandyti nepriklausomai.

5) Funkcinis testavimas

Funkciniai bandymai turėtų būti atliekami kiekvienai tarnybai

  • Užtikrinkite, kad tarnyba tinkamai atsakys į kiekvieną užklausą.
  • Teisingos klaidos gaunamos už užklausas su neteisingais duomenimis, blogais duomenimis ir kt.
  • Patikrinkite kiekvieną užklausą ir atsakymą už kiekvieną operaciją, kurią paslauga turi atlikti vykdymo metu.
  • Patvirtinkite klaidos pranešimus, kai įvyksta klaida serverio, kliento ar tinklo lygiu.
  • Patikrinkite, ar gauti atsakymai yra tinkamo formato.
  • Patvirtinkite, kad gauti duomenys apie atsakymą atitinka prašomus duomenis.

6) Saugumo testavimas

Tinklo paslaugos saugumo testavimas yra svarbus aspektas atliekant SOA programos paslaugų lygio testavimą; tai užtikrina programos saugumą.

Bandant reikia atsižvelgti į šiuos veiksnius:

  • Pramonės standartą, apibrėžtą „WS-Security“ bandymuose, turėtų laikytis žiniatinklio tarnyba.
  • Saugumo priemonės turėtų veikti nepriekaištingai.
  • Duomenų ir skaitmeninių parašų šifravimas dokumentuose
  • Autentifikavimas ir įgaliojimas
  • SQL injekcijos, kenkėjiškos programos, XSS, CSRF ir kitos spragos turi būti išbandytos XML.
  • Paslaugų atsisakymo atakos

7) Našumo testavimas

Paslaugos našumas turi būti patikrintas, nes paslaugos yra daugkartinio naudojimo ir kelias programas gali naudoti ta pati paslauga.

Bandant atsižvelgiama į šiuos veiksnius:

  • 8) Paslaugos veikimą ir funkcionalumą reikia išbandyti esant didelei apkrovai.
  • Paslaugos našumą reikia palyginti dirbant atskirai ir taikant programą.
  • Turėtų būti atliekamas paslaugos apkrovos bandymas
    • patikrinti atsakymo laiką
    • patikrinti, ar nėra kliūčių
    • patikrinti procesoriaus ir atminties naudojimą
    • numatyti mastelį

9) Integracijos lygio testavimas

  • Aptarnavimo lygio testavimas užtikrina tinkamą tik atskirų paslaugų veikimą, negarantuoja sujungtų komponentų veikimo.
  • Integracijos testavimas atliekamas daugiausia sutelkiant dėmesį į sąsajas.
  • Šis etapas apima visus galimus verslo scenarijus.
  • Šiame etape nefunkcinis programos testavimas turėtų būti atliekamas dar kartą. Saugumas, atitikimas ir našumo testavimas užtikrina sistemos prieinamumą ir stabilumą visais aspektais.
  • Ryšio ir tinklo protokolai turėtų būti išbandyti, kad būtų patvirtintas duomenų perdavimo tarp tarnybų nuoseklumas.

10) Testavimas nuo pabaigos iki pabaigos

Šis etapas užtikrina, kad programa funkciniu ir nefunkciniu požiūriu patvirtina verslo reikalavimus.

Užtikrinama, kad toliau išvardyti elementai būtų išbandyti bandymų pabaigoje

  • Visos tarnybos po integracijos veikia taip, kaip tikėtasi
  • Išimčių tvarkymas
  • Programos vartotojo sąsaja
  • Tinkamas duomenų srautas per visus komponentus
  • Verslo procesas

SOA testavimo iššūkiai

  • Paslaugų sąsajų trūkumas
  • Testavimo procesas apima kelias sistemas ir taip sukuria sudėtingus duomenų poreikius
  • Programa yra įvairių komponentų rinkinys, kuris linkęs keistis. Regresijos testavimo poreikis yra dažnesnis.
  • Dėl daugiasluoksnės architektūros sunku išskirti defektus.
  • Kadangi paslauga bus naudojama skirtingose ​​sąsajose, sunku numatyti apkrovą, todėl našumo testų planavimas tampa sudėtingas.
  • SOA yra nevienalyčių technologijų kolekcija. Norint išbandyti SOA programą, reikia skirtingų įgūdžių turinčių žmonių, o tai savo ruožtu padidina planavimo ir vykdymo išlaidas.
  • Kadangi programa yra kelių paslaugų integracija, saugumo bandymai turi savo dalį bėdų. Patvirtinti autentifikavimą ir autorizaciją yra gana sunku.

SOA testavimo įrankiai

Rinkoje yra daugybė SOA testavimo įrankių, kurie padės testuotojams išbandyti SOA programas. Štai keletas populiarių SOA testavimo įrankių :

1) Muilo vartotojo sąsaja

„SOAP UI“ yra atvirojo kodo funkcinis testavimo įrankis paslaugoms ir API testavimui.

  • Darbalaukio programa
  • Palaiko kelis protokolus - SOAP, REST, HTTP, JMS, AMF, JDBC
  • Internetines paslaugas galima kurti, tikrinti ir jomis pasinaudoti.
  • Taip pat gali naudoti apkrovos testavimui, automatikos testavimui ir saugumo testavimui
  • Kaklus gali sukurti „MockServices“
  • „Web Service“ užklausas ir testus galima generuoti automatiškai per jos žiniatinklio paslaugų klientą.
  • Turėkite integruotų ataskaitų teikimo įrankių
  • Sukūrė „SmartBear“

2) „iTKO LISA“

„LISA“ yra produktų rinkinys, teikiantis funkcinį testavimo sprendimą paskirstytoms sistemoms, tokioms kaip SOA.

  • Taip pat gali naudoti regresijos, integravimo, apkrovos ir našumo testavimui.
  • Sukūrė iTKO (CA Technologies)
  • Gali būti naudojamas bandymams kurti ir vykdyti.

3) HP aptarnavimo testas

„Service Test“ yra funkcinis testavimo įrankis, palaikantis vartotojo sąsajos ir bendrų paslaugų testavimą

  • Tiek funkcinį, tiek paslaugų efektyvumo testą galima atlikti vienu scenarijumi.
  • Integruota su „HP QC“.
  • Galima valdyti didžiulį paslaugų ir duomenų kiekį.
  • Palaiko sąveikumo testavimą imituojant JEE, AXIS ir DotNet kliento aplinkas.
  • Sukūrė HP.

4) „Parasoft“ SOA testas

SOA testas yra testavimo ir analizės įrankių rinkinys, sukurtas API ir API programų testavimui.

  • Palaiko žiniatinklio paslaugas, REST, JSON, MQ, JMS, TIBCO, HTTP, XML technologijas.
  • Galimi funkciniai, vieneto, integravimo, regresijos, saugumo, sąveikumo, atitikties ir našumo testai.
  • Kaklus galima sukurti naudojant „Parasoft Virtualize“, kurie yra intelektualūs nei SOAP UI.
  • Sukūrė „ParaSoft“

SOA testavimo naudojimo atvejai

Apsvarstykite elektroninės prekybos svetainę, kurioje yra šios funkcijos ir subfunkcijos:

užsakymo procesas

FAZĖ 1

Pirmajame SOA testavimo etape, ty Testavimo strategijos etape, programa suskirstyta į Paslaugas ir verslo funkcijas.

Leiskite mums apsvarstyti toliau pateiktas programos paslaugas.

  • Sukurti užsakymą
  • Patikrinkite kliento būseną
  • Keisti užsakymo būseną
  • Patikrinkite užsakymo būseną
  • Patikrinkite atsargas

Verslo funkcijos sutampa su Svetainės funkcijomis.

Pastaba: Testavimo strategijos dokumente būtų paslaugos ir funkcijų, kurias reikia išbandyti, sąrašas.

2 ETAPAS

Bandymo planavimo etapas. Testiniai atvejai rašomi kiekvienam lygiui.

  1. Pabaiga iki pabaigos. Testiniai atvejai rašomi kiekvienam verslo naudojimo atvejui ir srautui.

    Žemiau pateikiamas bandymų atvejų pavyzdys

    • Sukurkite užsakymą su aktyviu vartotoju.
    • Sukurkite užsakymą pas neaktyvų vartotoją.
    • Sukurkite užsakymą su turimu produktu, kurio užsakymo kiekis yra
    • Sukurkite užsakymą su turimu produktu su užsakymo kiekiu> turimu kiekiu.
    • Sukurkite užsakymą su keliais elementais
    • Visiškai atšaukti užsakymą.
    • Dalinai atšaukti užsakymą.
  2. Integracijos lygis. Testavimo atvejai yra parašyti duomenų bazės ir vartotojo sąsajos integravimui.

    Žemiau pateikiami bandymo atvejų pavyzdžiai.

    • Sukurkite naują užsakymą su vienu elementu. Patikrinkite, ar užsakymas sukurtas duomenų bazėje.
    • Sukurkite naują užsakymą su vienu elementu. Patikrinkite, ar užsakymui apskaičiuota kaina yra teisinga.
    • Sukurkite naują užsakymą su vienu elementu. Patikrinkite, ar turimo produkto kiekis yra mažesnis už užsakymo sumą.
    • Patikrinkite, ar vartotojo sąsajoje rodomo užsakymo būsena yra tokia pati kaip duomenų bazėje.
    • Atšaukite užsakymą ir patikrinkite, ar duomenų bazėje pakeista užsakymo būsena.
    • Pirmą kartą mokėdami patikrinkite, ar vartotojo sąsajoje įvesta išsami mokėjimo informacija yra išsaugota duomenų bazėje.
    • Jei norite grąžinti mokėjimus, patikrinkite, ar duomenų bazėje esanti mokėjimo informacija rodoma vartotojo sąsajoje.
  3. Aptarnavimo lygis. Kiekviena paslauga tikrinama atsižvelgiant į visas duomenų sąlygas.

Toliau pateikiami keli pavyzdžiai.

Nr. Išsami užsakymo informacija Užsakymo sąlyga
1 Sukurti užsakymą. Prekių skaičius = 1 Kiekis pagal užsakymą
2 Sukurti užsakymą. Prekių skaičius> 1 Kiekis pagal užsakymą
3 Sukurti elementų užsakymo skaičių = 1 Kiekis pagal užsakymą> Kiekis duomenų bazėje
4 Patikrinkite užsakymo būseną Būsena duomenų bazėje = ​​aktyvi
5 Patikrinkite užsakymo būseną Statusas duomenų bazėje = ​​išsiųstas
6 Patikrinkite užsakymo būseną Būsena duomenų bazėje = ​​Atšaukta
7 Patikrinkite užsakymo būseną Užsakymo ID = neteisingas
8 Patikrinkite produkto prieinamumą Produkto kiekis> 0
9 Patikrinkite produkto prieinamumą Produkto kiekis = 0
10 Patikrinkite produkto prieinamumą Produkto ID = neteisingas

3 fazė - testo vykdymas

Bandymų vykdymas naudoja metodą „iš apačios į viršų“, ty pirmiausia atliekamas paslaugų lygio testavimas, tada - integracijos lygis ir galiausiai - testavimas nuo pabaigos iki pabaigos.

1) Aptarnavimo lygis

Pasvarstykime, kad „Soapui“ įrankis yra skirtas testuoti programą.

WSDL ir URL naršomi SOAP bandymo lange.

Užklausa kiekvienai paslaugai bus rodoma užklausos lange.

Modifikuojant duomenis pagal paslaugų lygio bandymo atvejus, kiekvienam bandymo atvejui sukuriamos užklausos.

Bandomasis atvejis

Prašymas

Laukiamas atsakymas

Sukurti užsakymą. Prekių skaičius = 1 Kiekis užsakyme

x2 2

o3251 <žinutė> pavyko

Sukurkite užsakymą. Ne. elementų> 1Kiekis užsakyme

y11 y2 3

o3251 <žinutė> pavyko

Sukurkite „OrderNo“. elementų = 1Klausos kiekis užsakyme> Kiekis db

x23 200

null <žinutė> nesėkminga

Patikrinkite užsakymo statusą duomenų bazėje = ​​aktyvus

o9876

Active sėkmingas

Patikrinkite užsakymo statusą duomenų bazėje = ​​išsiųsta

o9656

Shipped sėkmingas

Patikrinkite užsakymo statusąOrder id = Neteisingas

y5686

null <žinutė> nesėkminga

Patikrinkite prieinamumą Produkto kiekis> 0

d34

34 taip sėkmingas

Produkto kiekis = 0

y34

0no <žinutė> sėkminga

Patikrinkite produkto prieinamumąProdukto ID = neteisingas

sder

<žinutė> nesėkminga

2) Integracijos lygis

Integracijos lygio bandymo atvejai vykdomi vartotojo sąsajoje ir duomenų bazėje.

  • Sukurkite užsakymą su vienu elementu -
  • Vartotojas atidaro svetainę.
  • Eina pateikti užsakymą.
  • Parenka galiojantį produktą ir kiekį bei išsaugo užsakymą.
  • Turėtų būti rodomas pranešimas, kuriame sakoma, kad užsakymas sėkmingai pateiktas.
  • Vartotojas atidaro duomenų bazę ir patikrina, ar užsakymo duomenys yra tokie patys, kaip įvesta svetainėje.
3) nuo pabaigos iki pabaigos

Verslo srautai ir naudojimo atvejai vykdomi Vartotojo sąsajoje.

  • Sukurkite užsakymą su keliais elementais -
  • Vartotojas atidaro svetainę.
  • Eina pateikti užsakymą.
  • Pasiteiravus apie galiojantį produktą, jų kiekis įtraukiamas į krepšelį.
  • Kiti galiojantys produktai pridedami su tinkamais kiekiais ir užsakymas išsaugomas. Mokėjimas atliekamas naudojant naują mokėjimo metodą ir pateikiamas užsakymas.
  • Turėtų būti rodomas pranešimas, kuriame sakoma „Užsakymas sėkmingai pateiktas“.
  • Testuotojas turėtų patvirtinti, kad visas srautas atliekamas be iškreiptų duomenų.

Išvada:

Pateikdamas tinkamą testavimo strategiją, išteklius, įrankius ir atitikimą, kad būtų galima teikti gerą aptarnavimą, SOA testavimas gali pateikti visiškai ir puikiai patikrintą programą.

Įdomios straipsniai...