Što je SOA testiranje? Vodič s primjerom
Što je SOA testiranje?
SOA (Service Oriented Architecture) Testiranje je testiranje SOA arhitektonskog stila u kojem su komponente aplikacije dizajnirane za komunikaciju putem komunikacijskih protokola obično preko mreže.
Što je SOA?
SOA je metoda integracije poslovnih aplikacija i procesa kako bi se zadovoljile poslovne potrebe.
U softverskom inženjerstvu, SOA pruža agilnost i fleksibilnost poslovnih procesa. Promjene u procesu ili aplikaciji mogu se usmjeriti na određenu komponentu bez utjecaja na cijeli sustav.
Razvojni programeri u SOA-i ili razvijaju ili kupuju dijelove programa tzv USLUGE.
Što je usluga?
- Usluge mogu biti funkcionalna jedinica aplikacije ili poslovnog procesa, koju može ponovno upotrijebiti ili ponoviti bilo koja druga aplikacija ili proces. (Na primjer, na gornjoj slici, Payment Gateway je usluga koju može ponovno upotrijebiti bilo koje mjesto za e-trgovinu. Kad god treba izvršiti plaćanje, web-mjesto e-trgovine poziva/zahtijeva uslugu Payment Gateway. Nakon što se plaćanje izvrši na pristupniku, odgovor se šalje web-mjestu e-trgovine)
- Usluge je lako sastaviti i lako rekonfigurirati komponente.
- Usluge se mogu usporediti s građevinskim elementima. Oni mogu konstruirati bilo koju potrebnu aplikaciju. Dodavanje i uklanjanje iz aplikacije ili poslovnog procesa je jednostavno.
- Usluge su definirane više poslovnom funkcijom koju obavljaju, a ne kao dijelovi koda.
Web usluge
Web usluge su neovisne komponente aplikacije, koje su dostupne preko weba.
Mogu se objaviti, pronaći i koristiti na webu. Oni mogu komunicirati putem interneta.
- Pružatelj usluga objavljuje uslugu na internetu.
- Klijent traži određenu web uslugu iz Registra web usluga
- Vraćaju se URL i WSDL za potrebnu web uslugu. Korištenjem WSDL-a i URL-a, komunikacija između davatelja usluge i podnositelja zahtjeva odvija se putem SOAP poruka.
- Kada potrošač nazove web uslugu, uspostavit će se HTTP veza s pružateljem.
SOAP poruka se stvara kako bi uputila davatelja za pozivanje potrebne logike web usluge. - Odgovor primljen od pružatelja 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 stranice i tražilice prikazuje svakodnevnu vremensku prognozu. Umjesto kodiranja odjeljka s vremenskim izvješćima po cijelom dijelu, usluga vremenskog izvješća može se kupiti od dobavljača i integrirati u stranice.
SOA testiranje
SOA se sastoji od različitih tehnologija. Aplikacije izrađene pomoću SOA-e imaju različite usluge koje su slabo povezane.
SOA testiranje treba se usredotočiti na 3 sloja sustava
Sloj usluga
Ovaj se sloj sastoji od usluga, usluga koje izlaže sustav izveden iz poslovnih funkcija.
Na primjer -
Razmislite o Wellness web stranici koja se sastoji od
- Tragač težine
- Praćenje šećera u krvi
- Tragač za krvnim pritiskom
Pratioci prikazuju odgovarajuće podatke i datum kada su uneseni. Sloj usluga sastoji se od usluga koje dobivaju odgovarajuće podatke iz baze podataka –
- Usluga praćenja težine
- Usluga praćenja šećera u krvi
- Usluga mjerenja krvnog tlaka
- Usluga prijave
Procesni sloj
Procesni sloj sastoji se od procesa, skupa usluga koji su dio jedinstvene funkcionalnosti.
Procesi mogu biti dio korisničkog sučelja (npr. tražilica), dio ETL alata (za dobivanje podataka iz baze podataka).
Glavni fokus u ovom sloju bit će na korisničkim sučeljima i procesu.
Korisničko sučelje uređaja za praćenje težine i njegova integracija s bazom podataka primarni je fokus.
Sljedeće funkcije će se uzeti u obzir
- Dodavanje novih podataka
- Uređivanje postojećih podataka
- Izrada novog tragača
- Brisanje podataka
Potrošački sloj
Ovaj sloj se uglavnom sastoji od korisničkih sučelja.
Na temelju sloja, testiranje SOA aplikacije podijeljeno je u tri razine.
- Razina usluge
- Razina sučelja
- Od kraja do kraja razine
- Pristup odozgo prema dolje koristi se za dizajn testa.
- Pristup odozdo prema gore koristi se za izvođenje testa.
Strategija za SOA testiranje
Pristup planiranju testiranja,
- Ispitivači SOA-e trebali bi razumjeti kompletnu arhitekturu aplikacije.
- Aplikaciju je potrebno razdvojiti na neovisne usluge (Servis koji ima vlastitu strukturu zahtjeva i odgovora i ne ovisi o bilo kojem drugom servisu za formiranje odgovora).
- Strukturu aplikacije potrebno je reorganizirati u tri komponente – podatke, usluge i front-end aplikacije.
- Sve komponente treba pažljivo analizirati i iscrtati poslovne scenarije.
- Poslovni scenariji trebaju se klasificirati kao uobičajeni scenariji i scenariji specifični za primjenu.
- A Matrica sljedivosti treba pripremiti, a sve testne slučajeve treba pratiti prema poslovnim scenarijima.
Pristup izvođenju testa
- Svaku komponentu usluge treba ispitati.
- Ispitivanje integracije komponenti usluge treba učiniti kako bi se potvrdio protok podataka kroz usluge i integritet podataka.
- Ispitivanje sustava cjelovitog modela treba napraviti za provjeru valjanosti protoka podataka između front-end aplikacije i baze podataka.
- Ispitivanje performansi treba učiniti za fino ugađanje i optimalnu izvedbu.
SOA metode testiranja
1) Testiranje temeljeno na podacima temeljeno na poslovnom scenariju,
- Treba analizirati različite poslovne aspekte vezane uz sustav.
- Scenariji bi se trebali razvijati na temelju integracije
- raznovrstan Web usluge aplikacije
- Web usluge i aplikacije.
- Podatke treba postaviti na temelju gore navedenih scenarija.
- Podatke treba postaviti tako da pokrivaju i krajnje scenarije.
2) Stubovi
- Izradit će se lažna sučelja za testiranje usluga.
- Kroz ova sučelja mogu se osigurati različiti ulazi, a izlazi se mogu potvrditi.
- Kada aplikacija koristi sučelje za vanjsku uslugu, koja nije u fazi testiranja (usluga treće strane), dopuna se može stvoriti tijekom testiranja integracije.
3) Regresijsko testiranje
- Ispitivanje regresije na aplikaciji treba učiniti kada postoji više izdanja kako bi se osigurala stabilnost i dostupnost sustava.
- Izradit će se sveobuhvatan paket regresijskih testova koji pokriva usluge koje čine važan dio aplikacije.
- Ovaj testni paket može se ponovno koristiti u više izdanja projekta.
4) Testiranje razine usluge
Testiranje razine usluge uključuje testiranje komponente na funkcionalnost, sigurnost, performanse i interoperabilnost.
Svaku pojedinu uslugu potrebno je prvo testirati neovisno.
5) Funkcionalno testiranje
Funkcionalno testiranje treba provesti na svakoj usluzi
- Osigurajte da usluga isporučuje pravi odgovor na svaki zahtjev.
- Prave pogreške se primaju za zahtjeve s nevažećim podacima, lošim podacima itd.
- Provjerite svaki zahtjev i odgovor za svaku pojedinu operaciju koju usluga mora izvesti u vremenu izvođenja.
- Provjera valjanosti poruka o pogreškama kada se pogreška dogodi na razini poslužitelja, klijenta ili mreže.
- Provjerite jesu li primljeni odgovori u ispravnom formatu.
- Potvrdite da podaci primljeni u odgovoru odgovaraju traženim podacima.
6) Sigurnosno testiranje
Sigurnosno testiranje web usluge važan je aspekt tijekom testiranja razine usluge SOA aplikacije; ovo osigurava sigurnost aplikacije.
Tijekom testiranja potrebno je pokriti sljedeće čimbenike:
- Web usluga treba poštovati industrijski standard definiran WS-Security testiranjem.
- Sigurnosne mjere trebale bi funkcionirati besprijekorno.
- Šifriranje podataka i Digitalnih potpisa na dokumentima
- Autentifikacija i autorizacija
- SQL Injection, Malware, XSS, CSRF, druge ranjivosti treba testirati na XML-u.
- Napadi uskraćivanja usluge
7) Testiranje izvedbe
Potrebno je izvršiti testiranje performansi usluge jer se usluge mogu ponovno koristiti i više aplikacija može koristiti istu uslugu.
Tijekom ispitivanja uzimaju se u obzir sljedeći čimbenici:
- Izvedbu i funkcionalnost usluge potrebno je testirati pod velikim opterećenjem.
- Učinkovitost usluge treba uspoređivati tijekom rada pojedinačno i unutar aplikacije, s kojom je povezana.
- Trebalo bi provesti testiranje opterećenja usluge
- za provjeru vremena odgovora
- provjeriti ima li uskih grla
- za provjeru iskorištenosti procesora i memorije
- za predviđanje skalabilnosti
8) Testiranje razine integracije
- Testiranje razine usluge osigurava pravilan rad samo pojedinačnih usluga, ne jamči rad spojenih komponenti.
- Testiranje integracije provodi se uglavnom s fokusom na sučelja.
- Ova faza pokriva sve moguće poslovne scenarije.
- Nefunkcionalno testiranje aplikacije treba obaviti još jednom u ovoj fazi. Sigurnost, usklađenost i testiranje performansi osiguravaju dostupnost i stabilnost sustava u svim aspektima.
- Komunikacijski i mrežni protokoli trebaju se testirati kako bi se potvrdila dosljednost podatkovne komunikacije između usluga.
9) End to End testiranje
Ova faza osigurava da aplikacija funkcionalno i nefunkcionalno odgovara poslovnim zahtjevima.
Stavke u nastavku se moraju testirati tijekom testiranja od kraja do kraja
- Sve usluge rade prema očekivanjima nakon integracije
- Rukovanje izuzecima
- Korisničko sučelje aplikacije
- Ispravan protok podataka kroz sve komponente
- Poslovni proces
Izazovi u SOA testiranju
- Nedostatak sučelja za usluge
- Proces testiranja proteže se kroz više sustava, što stvara složene potrebe za podacima
- Aplikacija je skup različitih komponenti koje su sklone promjenama. Potreba za regresijskim testiranjem 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 testiranja izvedbe.
- SOA je zbirka heterogenih tehnologija. Testiranje SOA aplikacije zahtijeva ljude s različitim skupovima vještina što zauzvrat povećava troškove planiranja i izvedbe.
- Budući da je aplikacija integracija više usluga, sigurnosno testiranje ima svoje probleme. Validacija autentifikacije i autorizacije prilično je teška.
Alati za testiranje SOA-e
Na tržištu su dostupni mnogi alati za testiranje SOA-e koji pomažu ispitivačima u testiranju SOA aplikacija. Evo nekih od popularnih Alati za testiranje SOA-e:
1) SOAP UI
“SOAP UI” je alat otvorenog koda za funkcionalno testiranje za usluge i API testiranje.
- Desktop aplikacija
- Podržava više protokola – SOAP, REST, HTTP, JMS, AMF, JDBC
- Web usluge se mogu razvijati, pregledavati i pozivati.
- Može se koristiti i za testiranje opterećenja, Testiranje automatizacijei sigurnosno testiranje
- Stubove može izraditi MockServices
- Zahtjevi i testovi web usluge mogu se automatski generirati putem klijenta web usluge.
- Imaju ugrađene alate za izvješćivanje
- Razvio SmartBear
2) iTKO LISA
“LISA” je paket proizvoda koji pruža rješenje za funkcionalno testiranje distribuiranih sustava kao što je SOA.
- Također se može koristiti za regresiju, integraciju, opterećenje i testiranje performansi.
- Razvio iTKO (CA Technologies)
- Može se koristiti za dizajn i izvođenje testova.
3) HP servisni test
"Service Test" je alat za funkcionalno testiranje koji podržava testiranje korisničkog sučelja i dijeljenih usluga
- Ispitivanje funkcionalnosti i performansi usluga može se izvršiti jednom skriptom.
- Integriran s HP QC.
- Može se upravljati ogromnom količinom usluga i podataka.
- Podržava testiranje interoperabilnosti simulacijom klijentskih okruženja JEE, AXIS i DotNet.
- Razvio HP.
4) Parasoft SOA test
SOA Test je paket 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 je testiranje funkcionalnosti, jedinice, integracije, regresije, sigurnosti, interoperabilnosti, usklađenosti i izvedbe.
- Stubovi se mogu izraditi pomoću Parasoft Virtualizea, koji je inteligentniji od SOAP UI.
- Razvio ParaSoft
Slučajevi korištenja SOA testiranja
Razmotrite web mjesto e-trgovine koje sadrži funkcije i podfunkcije u nastavku:
Obrada narudžbe
FAZA 1
U prvoj fazi testiranja SOA-e, odnosno fazi strategije testiranja, aplikacija se dijeli na usluge i poslovne funkcije.
Razmotrimo u nastavku usluge u aplikaciji.
- Stvorite narudžbu
- Provjerite status korisnika
- Promjena statusa narudžbe
- Provjerite status narudžbe
- Provjerite zalihu
Poslovne funkcije su iste kao i funkcije web stranice.
Bilješka: Dokument strategije testiranja sadržavao bi popis usluga i funkcija koje treba testirati.
FAZA 2
Faza planiranja testa. Test slučajevi su napisani za svaku razinu.
- Od kraja do kraja razine. Testni slučajevi napisani su za svaki slučaj poslovne upotrebe i tijek. Ispod su primjeri testnih slučajeva
- Kreirajte narudžbu s aktivnim korisnikom.
- Kreirajte narudžbu s neaktivnim korisnikom.
- Kreirajte narudžbu s dostupnim proizvodom s količinom narudžbe < dostupnom količinom.
- Napravite narudžbu s dostupnim proizvodom s količinom narudžbe > dostupnom količinom.
- Napravite narudžbu s više stavki
- Otkažite narudžbu u potpunosti.
- Djelomično poništi narudžbu.
- Razina integracije. Test slučajevi su napisani za integraciju baze podataka i korisničkog sučelja. Ispod su primjeri testnih slučajeva.
- Napravite novu narudžbu s jednom stavkom. Provjerite je li narudžba stvorena u bazi podataka.
- Napravite novu narudžbu s jednom stavkom. Provjerite je li cijena izračunata za narudžbu točna.
- Napravite 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 isti kao i u bazi podataka.
- Otkažite narudžbu i provjerite je li status narudžbe promijenjen u bazi podataka.
- Za prvo plaćanje provjerite jesu li podaci o plaćanju uneseni na korisničkom sučelju spremljeni u bazi podataka.
- Za vraćanje plaćanja provjerite jesu li podaci o plaćanju u bazi podataka prikazani na korisničkom sučelju.
- Razina usluge. Svaka usluga testirana je za sve podatkovne uvjete.
Dolje je nekoliko primjera.
Ne. | Detalji narudžbe | Uvjet narudžbe |
---|---|---|
1 | Stvorite narudžbu. Broj stavki = 1 | Količina po narudžbi < Količina po bazi podataka |
2 | Stvorite narudžbu. Broj stavki > 1 | Količina u narudžbi < Količina u bazi podataka. |
3 | Kreirajte narudžbu br. stavki = 1 | Količina u narudžbi > Količina u bazi podataka |
4 | Provjerite status narudžbe | Status u bazi podataka = Aktivno |
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 razine usluge, zatim razina integracije i na kraju End to End testiranje.
1) Razina usluge
Razmotrimo to Soapui alat se uzima u obzir za testiranje aplikacije.
The wsdl i URL pregledavaju se u testnom prozoru SOAP-a.
Zahtjev za svaku uslugu bit će prikazan u prozoru zahtjeva.
Izmjenom podataka prema testnim slučajevima razine usluge, kreiraju se zahtjevi za svaki testni slučaj.
Testni slučaj | Zatražite | Očekivani odgovor |
---|---|---|
Stvorite narudžbu. Broj stavki = 1 Količina po narudžbi < Količina po db | x2 2 | o3251 Uspješno |
Izradi br. narudžbe artikala > 1Količina po narudžbi < Količina po db | y1 1 y2 3 | o3251 Uspješno |
Napravite narudžbu br. artikala = 1 količina po narudžbi > količina po db | x23 200 | ništavan Neuspješno |
Provjerite status narudžbeStatus u bazi podataka = Aktivno | o9876 | Aktivan Uspješno |
Provjerite status narudžbeStatus u bazi podataka = Otpremljeno | o9656 | Otpremljeno Uspješno |
Provjerite status narudžbe. ID narudžbe = Nevažeći | y5686 | ništavan Neuspješno |
Provjerite dostupnost proizvoda Količina proizvoda >0 | d34 | 34 Da Uspješno |
Provjerite dostupnost proizvoda Količina proizvoda =0 | y34 | 0 Ne Uspješno |
Provjerite dostupnost proizvoda ID proizvoda = nevažeći | sder | Neuspješno |
2) Razina integracije
Testni slučajevi razine integracije izvode se na korisničkom sučelju i bazi podataka.
- Napravite narudžbu s jednom stavkom –
- Korisnik otvara web stranicu.
- Ide naručiti.
- Odabire važeći proizvod i količinu te sprema narudžbu.
- Trebala bi se prikazati poruka da je Narudžba uspješno postavljena.
- Korisnik otvara bazu podataka i provjerava jesu li detalji narudžbe isti onima unesenim na web stranici.
3) Razina od kraja do kraja
Poslovni tokovi i slučajevi upotrebe izvršavaju se na korisničkom sučelju.
- Napravite narudžbu s više stavki –
- Korisnik otvara web stranicu.
- Ide naručiti.
- Upit o valjanom proizvodu i količini dodaje u košaricu.
- Ostali važeći proizvodi dodaju se s važećim količinama i narudžba je spremljena. Plaćanje se vrši novim načinom plaćanja i narudžba je poslana.
- Trebala bi se prikazati poruka "Narudžba je uspješno poslana".
- Ispitivač bi trebao potvrditi da je cijeli tok učinjen bez iskrivljenja podataka.
Zaključak
Skiciranjem prave strategije za testiranje, resursa, alata i usklađenosti za pružanje dobre usluge, SOA testiranje može isporučiti potpuno i savršeno testiranu aplikaciju.