Što je SOA testiranje? Vodič s primjerom

Sadržaj:

Anonim

Što je SOA testiranje?

Testiranje SOA (Service Oriented Architecture) testiranje je arhitektonskog stila SOA u kojem su komponente aplikacije dizajnirane za komunikaciju putem komunikacijskih protokola obično preko mreže.

U ovom vodiču naučit ćete-

  • Što je SOA?
  • Što je usluga?
  • SOA testiranje
  • Strategija za SOA testiranje
  • SOA metode ispitivanja
  • Izazovi u SOA testiranju
  • SOA Alati za testiranje
  • Slučajevi upotrebe SOA testiranja

Što je SOA?

SOA je metoda integriranja poslovnih aplikacija i procesa kako bi se zadovoljile poslovne potrebe.

U softverskom inženjerstvu SOA pruža okretnost i fleksibilnost poslovnim procesima. Promjene u procesu ili aplikaciji mogu se usmjeriti na određenu komponentu bez utjecaja na cijeli sustav.

Programeri softvera u SOA-i ili razvijaju ili kupuju dijelove programa koji se nazivaju USLUGE.

Što je usluga?

  • Usluge mogu biti funkcionalna jedinica aplikacije ili poslovnog procesa, koju bilo koja druga aplikacija ili postupak može ponovno upotrijebiti ili ponoviti.

    (Na primjer, na gornjoj slici Payment Gateway usluga je koju bilo koja web lokacija za e-trgovinu može ponovno upotrijebiti. Kad god to treba izvršiti plaćanje, web lokacija za e-trgovinu poziva / zahtijeva uslugu Payment Gateway. Nakon što se plaćanje izvrši na pristupnik, odgovor se šalje web mjestu e-trgovine)

  • Usluge se lako sastavljaju i lako konfiguriraju komponente.
  • Usluge se mogu usporediti s blokovima. Oni mogu konstruirati bilo koju potrebnu aplikaciju. Jednostavno ih je dodati i ukloniti iz aplikacije ili poslovnog procesa.
  • Usluge su više definirane poslovnom funkcijom koju obavljaju, a ne kao dijelovi koda.

Web usluge

Web usluge su neovisne programske komponente koje su dostupne putem weba.

Mogu se objaviti, pronaći i koristiti na webu. Oni mogu komunicirati putem interneta.

  1. Davatelj usluga objavljuje uslugu na internetu.
  2. Klijent traži određenu web uslugu iz Registra web usluga
  3. Vraća se URL i WSDL za potrebnu web uslugu.

    >> Korištenjem WSDL-a i URL-a, komunikacija između davatelja usluga i podnositelja zahtjeva odvija se putem SOAP poruka. <<

  4. Kad potrošač nazove web uslugu, davatelju će se uspostaviti HTTP veza.

    Izrađuje se SOAP poruka koja upućuje davatelja usluga da poziva potrebnu logiku web usluge.

  5. Odgovor primljen od davatelja usluga je SOAP poruka koja će biti ugrađena u HTTP odgovor. Ovaj HTTP odgovor je format podataka koji je razumljiv potrošačkoj aplikaciji.

Primjer

Početna stranica web mjesta i tražilice prikazuju svakodnevno izvješće o vremenu. Umjesto da cijelo kodirate odjeljak o vremenskim izvješćima, usluga vremenskog izvješća može se kupiti od dobavljača i integrirati na stranice.

SOA testiranje

SOA se sastoji od različitih tehnologija. Aplikacije izrađene pomoću SOA-e imaju razne usluge koje su međusobno povezane.

SOA testiranje trebalo bi se usredotočiti na 3 sistemska sloja

Razina usluga

Ovaj se sloj sastoji od usluga, usluga koje izlaže sustav izveden iz poslovnih funkcija.

Na primjer -

Razmislite o wellness web mjestu koje se sastoji od

  1. Tragač težine
  2. Tragač za šećerom u krvi
  3. Tracker krvnog tlaka

Trackeri prikazuju odgovarajuće podatke i datum unosa. Sloj usluga sastoji se od usluga koje odgovarajuće podatke dobivaju iz baze podataka-

  • Usluga praćenja težine
  • Usluga praćenja šećera u krvi
  • Usluga praćenja krvnog tlaka
  • Usluga prijave

Sloj procesa

Sloj procesa sastoji se od procesa, prikupljanja usluga koje su dio jedne funkcionalnosti.

Procesi mogu biti dio korisničkog sučelja (za bivšu tražilicu), dio ETL alata (za dobivanje podataka iz baze podataka).

Glavni fokus ovog sloja bit će na korisničkom sučelju i procesu.

Korisničko sučelje uređaja za praćenje težine i njegova integracija s bazom podataka primarni je fokus.

Ispod će biti razmatrane funkcije

  1. Dodavanje novih podataka
  2. Uređivanje postojećih podataka
  3. Izrada novog tragača
  4. Brisanje podataka

Potrošački sloj

Ovaj se sloj uglavnom sastoji od korisničkih sučelja.

Na temelju sloja, testiranje SOA aplikacije podijeljeno je u tri razine.

  1. Razina usluge
  2. Razina sučelja
  3. Razina od kraja do kraja
  • Za dizajn testa koristi se pristup odozgo prema dolje.
  • Za izvršavanje testa koristi se pristup odozdo prema gore.

Strategija za SOA testiranje

Pristup planiranju ispitivanja,

  • Kompletnu arhitekturu aplikacije trebali bi razumjeti SOA testeri.
  • Aplikaciju je potrebno rastaviti na neovisne usluge (usluga koja ima vlastitu strukturu zahtjeva i odgovora i ne ovisi o bilo kojoj drugoj usluzi koja oblikuje odgovor).
  • Strukturu aplikacija treba reorganizirati u tri komponente - podatke, usluge i front-end aplikacije.
  • Sve komponente treba pažljivo analizirati, a poslovne scenarije treba ocrtati.
  • Poslovni scenariji trebaju se klasificirati kao uobičajeni scenariji i scenariji specifični za primjenu.
  • Treba pripremiti matricu sljedivosti, a sve ispitne slučajeve treba pratiti u poslovnim scenarijima.

Pristup izvođenju testa

  • Treba testirati svaku uslužnu komponentu.
  • Integracija Testiranje komponenata usluge trebalo bi obaviti radi provjere protoka podataka kroz usluge i integriteta podataka.
  • Testiranje sustava cjelovitog modela trebalo bi obaviti za provjeru protoka podataka između prednje aplikacije i baze podataka.
  • Treba izvršiti ispitivanje performansi radi finog podešavanja i optimalnih performansi.

SOA metode ispitivanja

1) Testiranje temeljeno na poslovnom scenariju,

  • Treba analizirati razne poslovne aspekte povezane sa sustavom.
  • Scenarije treba razviti na temelju integracije sustava
    • Razne web usluge aplikacije
    • Web usluge i aplikacija.
  • Postavljanje podataka treba izvršiti na temelju gore navedenih scenarija.
  • Postavljanje podataka treba obaviti tako da pokriva i scenarije od kraja do kraja.

2) Stubs

  • Za testiranje usluga stvorit će se glupava sučelja.
  • Kroz ta sučelja mogu se osigurati različiti ulazi, a izlazi mogu biti provjereni.
  • Kada aplikacija koristi sučelje s vanjskom uslugom koja nije na testiranju (usluga treće strane), za vrijeme integracijskog testiranja može se stvoriti kvar.

3) Ispitivanje regresije

  • Ispitivanje regresije na aplikaciji treba provesti kada postoji više izdanja kako bi se osigurala stabilnost i dostupnost sustava.
  • Stvorit će se sveobuhvatan regresijski testni paket koji obuhvaća usluge koje čine važan dio aplikacije.
  • Ovaj se testni paket može ponovno upotrijebiti u više izdanja projekta.

4) Ispitivanje razine usluge

Testiranje razine usluge uključuje testiranje komponente na funkcionalnost, sigurnost, izvedbu i interoperabilnost.

Svaku uslugu treba najprije testirati neovisno.

5) Funkcionalno ispitivanje

Funkcionalno testiranje treba obaviti na svakoj usluzi do

  • Osigurajte da usluga pruža pravi odgovor na svaki zahtjev.
  • Primaju se ispravne pogreške za zahtjeve s nevaljanim podacima, lošim podacima itd.
  • Provjerite svaki zahtjev i odgovor za svaku operaciju koju usluga mora izvršiti u vremenu izvođenja.
  • Provjerite valjanost poruka o pogreškama kada se pogreška dogodi na razini poslužitelja, klijenta ili mreže.
  • Potvrdite da su primljeni odgovori u pravom formatu.
  • Potvrdite da podaci primljeni u odgovoru odgovaraju traženim podacima.

6) Ispitivanje sigurnosti

Testiranje sigurnosti web usluge važan je aspekt tijekom testiranja razine usluge SOA aplikacije; to osigurava sigurnost primjene.

Tijekom testiranja treba pokriti sljedeće čimbenike:

  • Web usluga trebala bi se pridržavati industrijskog standarda definiranog testiranjem WS-Security.
  • Sigurnosne mjere trebale bi funkcionirati besprijekorno.
  • Šifriranje podataka i digitalni potpisi na dokumentima
  • Autentifikacija i autorizacija
  • SQL Injection, Malware, XSS, CSRF, ostale ranjivosti trebaju se testirati na XML-u.
  • Napadi uskraćivanja usluge

7) Ispitivanje performansi

Treba izvršiti testiranje performansi usluge, jer se usluge mogu ponovno koristiti, a više aplikacija možda koristi istu uslugu.

Tijekom ispitivanja uzimaju se u obzir sljedeći čimbenici:

  • 8) Izvedbu i funkcionalnost usluge treba testirati pod velikim opterećenjem.
  • Izvedbu usluge treba usporediti tijekom individualnog rada, a unutar aplikacije je povezano.
  • Treba izvršiti ispitivanje opterećenja usluge
    • za provjeru vremena odziva
    • provjeriti ima li uskih grla
    • za provjeru iskorištenosti CPU-a i memorije
    • za predviđanje skalabilnosti

9) Ispitivanje razine integracije

  • Ispitivanje razine usluge osigurava ispravan rad samo pojedinačnih usluga, a ne jamči rad spojenih komponenata.
  • Testiranje integracije vrši se usredotočujući se uglavnom na sučelja.
  • Ova faza pokriva sve moguće poslovne scenarije.
  • Nefunkcionalno testiranje aplikacije trebalo bi se obaviti još jednom u ovoj fazi. Sigurnost, usklađenost i ispitivanje performansi osiguravaju dostupnost i stabilnost sustava u svim aspektima.
  • Treba provjeriti komunikacijski i mrežni protokol kako bi se potvrdila dosljednost podatkovne komunikacije između usluga.

10) Testiranje od kraja do kraja

Ova faza osigurava da aplikacija potvrđuje poslovne zahtjeve i funkcionalno i nefunkcionalno.

Stavke u nastavku osiguravaju testiranje tijekom testiranja od kraja do kraja

  • Sve usluge rade prema očekivanjima nakon integracije
  • Rukovanje iznimkama
  • Korisničko sučelje aplikacije
  • Ispravan protok podataka kroz sve komponente
  • Poslovni proces

Izazovi u SOA testiranju

  • Nedostatak sučelja za usluge
  • Proces testiranja obuhvaća više sustava, što stvara složene potrebe za podacima
  • Aplikacija je zbirka različitih komponenata koja se nastoji mijenjati. Potreba za regresijskim ispitivanjem je češća.
  • Zbog višeslojne arhitekture teško je izolirati nedostatke.
  • Budući da će se usluga koristiti u različitim sučeljima, teško je predvidjeti opterećenje, što otežava planiranje ispitivanja performansi.
  • SOA je kolekcija heterogenih tehnologija. Testiranje SOA aplikacije zahtijeva ljude s različitim skupinama vještina što zauzvrat povećava troškove planiranja i izvršenja.
  • Budući da je aplikacija integracija više usluga, sigurnosno testiranje ima vlastiti udio. Provjera autentičnosti i autorizacije prilično je teška.

SOA Alati za testiranje

Na tržištu su dostupni mnogi SOA alati za testiranje koji pomažu testerima u testiranju SOA aplikacija. Evo nekoliko popularnih alata za testiranje SOA :

1) KORISNIČKO sučelje SAPUNA

"SOAP UI" je alat za funkcionalno testiranje otvorenog koda za testiranje usluga i API-ja.

  • Desktop aplikacija
  • Podržava više protokola - SOAP, REST, HTTP, JMS, AMF, JDBC
  • Web usluge mogu se razvijati, pregledavati i pozivati ​​na njih.
  • Može se koristiti i za ispitivanje opterećenja, automatizaciju i sigurnosno testiranje
  • Stubove može stvoriti MockServices
  • Zahtjevi i testovi za web usluge mogu se automatski generirati putem klijenta web usluge.
  • Imati ugrađene alate za izvještavanje
  • Razvio SmartBear

2) iTKO LISA

"LISA" je paket proizvoda koji nudi rješenje za funkcionalno testiranje distribuiranih sustava poput SOA.

  • Također se može koristiti za regresiju, integraciju, opterećenje i ispitivanje performansi.
  • Razvio iTKO (CA Technologies)
  • Može se koristiti za dizajniranje i izvršavanje testova.

3) HP servisni test

"Servisni test" funkcionalni je alat za testiranje koji podržava testiranje korisničkog sučelja i zajedničkih usluga

  • Funkcionalno i ispitivanje performansi usluga može se obaviti pomoću jedne skripte.
  • Integrirano s HP QC.
  • Golemom količinom usluga i podataka može se upravljati.
  • Podržava testiranje interoperabilnosti simulirajući klijentska okruženja JEE, AXIS i DotNet.
  • Razvio HP.

4) Parasoft SOA test

SOA Test paket je alata za testiranje i analizu razvijen za testiranje API-ja i API aplikacija.

  • Podržava web usluge, REST, JSON, MQ, JMS, TIBCO, HTTP, XML tehnologije.
  • Moguće su testiranje funkcionalnosti, jedinice, integracije, regresije, sigurnosti, interoperabilnosti, usklađenosti i izvedbe.
  • Stubs se mogu stvoriti pomoću Parasoft Virtualize, koji su inteligentniji od SOAP UI.
  • Razvio ParaSoft

Slučajevi upotrebe SOA testiranja

Razmislite o web mjestu e-trgovine koje sadrži sljedeće funkcije i podfunkcije:

Obrada narudžbe

FAZA 1

U prvoj fazi SOA testiranja, tj. Fazi strategije testiranja, aplikacija je podijeljena na Usluge i poslovne funkcije.

Razmotrimo u nastavku Usluge u aplikaciji.

  • Stvaranje narudžbe
  • Provjerite status kupca
  • Promjena statusa narudžbe
  • Provjerite status narudžbe
  • Provjerite zalihu

Poslovne funkcije su iste kao i funkcije web stranice.

Napomena: Dokument o strategiji ispitivanja sadržavao bi popis usluge i funkcije koje se moraju testirati.

FAZA 2

Faza planiranja ispitivanja. Test slučajevi su napisani za svaku razinu.

  1. Razina od kraja do kraja. Test slučajevi su napisani za svaki slučaj i tijek poslovne upotrebe.

    Ispod su primjeri test slučajeva

    • Stvorite narudžbu s aktivnim korisnikom.
    • Stvorite narudžbu s neaktivnim korisnikom.
    • Stvorite narudžbu s dostupnim proizvodom s količinom narudžbe
    • Stvorite narudžbu s dostupnim proizvodom s količinom narudžbe> dostupnom količinom.
    • Stvorite narudžbu s više stavki
    • Potpuno otkažite narudžbu.
    • Otkaži narudžbu djelomično.
  2. Razina integracije. Test slučajevi su napisani za integraciju baze podataka i korisničkog sučelja.

    Ispod su primjeri testnih slučajeva.

    • Stvorite novu narudžbu s jednom stavkom. Provjerite je li narudžba kreirana u bazi podataka.
    • Stvorite novu narudžbu s jednom stavkom. Provjerite je li cijena izračunata za narudžbu točna.
    • Stvorite novu narudžbu s jednom stavkom. Provjerite je li količina dostupnog proizvoda manja za iznos narudžbe.
    • Provjerite je li status narudžbe prikazan na korisničkom sučelju jednak statusu baze podataka.
    • Otkažite narudžbu i provjerite je li status narudžbe izmijenjen u bazi podataka.
    • Za prvo plaćanje provjerite jesu li podaci o plaćanju upisani u korisničkom sučelju spremljeni u bazu podataka.
    • Za vraćanje plaćanja provjerite jesu li detalji o plaćanju u bazi podataka prikazani na korisničkom sučelju.
  3. Razina usluge. Svaka usluga testirana je za sve uvjete podataka.

Ispod je nekoliko primjera.

Ne. Detalji narudžbe Stanje narudžbe
1 Stvaranje narudžbe. Broj predmeta = 1 Količina po narudžbi
2 Stvaranje narudžbe. Broj predmeta> 1 Količina po narudžbi
3 Izradite broj narudžbe predmeta = 1 Količina po narudžbi> Količina po bazi podataka
4 Provjerite status narudžbe Status u bazi podataka = aktivan
5 Provjerite status narudžbe Status u bazi podataka = Otpremljeno
6 Provjerite status narudžbe Status u bazi podataka = Otkazano
7 Provjerite status narudžbe ID narudžbe = nevažeći
8 Provjerite dostupnost proizvoda Količina proizvoda> 0
9 Provjerite dostupnost proizvoda Količina proizvoda = 0
10 Provjerite dostupnost proizvoda ID proizvoda = nevažeći

FAZA 3 - Izvođenje testa

Izvršenje testa koristi pristup odozdo prema gore, tj. Prvo se provodi testiranje na razini usluge, zatim razina integracije i na kraju ispitivanje od kraja do kraja.

1) Razina usluge

Uzmimo u obzir da se Soapui alat uzima u obzir za testiranje aplikacije.

WSDL i URL pregledavaju se u testnom prozoru SOAP-a.

Zahtjev za svaku uslugu prikazat će se u prozoru zahtjeva.

Izmjenom podataka prema testnim slučajevima razine usluge, kreiraju se zahtjevi za svaki testni slučaj.

Test slučaj

Zahtjev

Očekivani odgovor

Stvaranje narudžbe. Broj predmeta = 1Količina po narudžbi

x2 2

o3251 Uspješno

Stvori narudžbu.Ne. predmeta> 1Količina po narudžbi

y11 y2 3

o3251 Uspješno

Stvori narudžbu br. predmeta = 1Količina na narudžbi> Količina na db

x23 200

null Neuspješno

Provjerite status statusa narudžbe u bazi podataka = Aktivno

o9876

Active Uspješno

Provjerite status statusa narudžbe u bazi podataka = Otpremljeno

o9656

Dostupno Uspješno

Provjerite status narudžbe narudžbe = Nevaljano

y5686

null Neuspješno

Provjerite dostupnost proizvodaKoličina proizvoda> 0

d34

34 da Uspješno

Provjerite dostupnost proizvodaKoličina proizvoda = 0

y34

0no Uspješno

Provjerite dostupnost proizvoda ID proizvoda = nevažeći

sder

Neuspješno

2) Razina integracije

Test slučajevi na razini integracije izvršavaju se na korisničkom sučelju i bazi podataka.

  • Stvorite narudžbu s jednom stavkom -
  • Korisnik otvara web stranicu.
  • Ide naručiti.
  • Odabire valjani proizvod i količinu i sprema narudžbu.
  • Treba prikazati poruku u kojoj se kaže da je Narudžba uspješno poslana.
  • Korisnik otvara bazu podataka i provjerava jesu li detalji narudžbe isti kao oni uneseni na web mjestu.
3) Razina od kraja do kraja

Poslovni tokovi i slučajevi upotrebe izvršavaju se na korisničkom sučelju.

  • Stvorite narudžbu s više predmeta -
  • Korisnik otvara web stranicu.
  • Ide naručiti.
  • Raspituje se o važećem proizvodu i dodaje ih u košaricu.
  • Ostali važeći proizvodi dodaju se s važećim količinama i narudžba se sprema. Plaćanje se vrši novim načinom plaćanja i vrši se narudžba.
  • Trebala bi se prikazati poruka "Narudžba je uspješno poslana".
  • Tester bi trebao potvrditi da se cijeli tok obavlja bez iskrivljavanja podataka.

Zaključak:

Skiciranjem prave strategije za testiranje, resurse, alate i usklađenost za pružanje dobre usluge, SOA testiranje može pružiti potpuno i savršeno testiranu aplikaciju.