Ce este testarea SOA? Tutorial cu Exemplu
Ce este testarea SOA?
SOA (Orientat pe servicii Architectura) Testarea este o testare a stilului arhitectural SOA รฎn care componentele aplicaศiei sunt proiectate sฤ comunice prin protocoale de comunicaศie, de obicei, printr-o reศea.
Ce este SOA?
SOA este o metodฤ de integrare a aplicaศiilor ศi proceselor de afaceri รฎmpreunฤ, astfel รฎncรขt sฤ rฤspundฤ nevoilor afacerii.
รn Inginerie Software, SOA oferฤ agilitate ศi flexibilitate proceselor de afaceri. Modificฤrile aduse procesului sau aplicaศiei pot fi direcศionate cฤtre o anumitฤ componentฤ fฤrฤ a afecta รฎntregul sistem.
Dezvoltatorii de software din SOA fie dezvoltฤ, fie cumpฤrฤ bucฤศi de programe numite SERVICII.
Ce este Serviciul?
- Serviciile pot fi o unitate funcศionalฤ a aplicaศiei sau a procesului de afaceri, care poate fi reutilizatฤ sau repetatฤ de orice altฤ aplicaศie sau proces. (De exemplu, รฎn imaginea de mai sus, Payment Gateway este un serviciu care poate fi reutilizat de orice site de comerศ electronic. Ori de cรขte ori trebuie sฤ facฤ o platฤ, site-ul de comerศ electronic apeleazฤ/Solicitฤ serviciul Gateway de platฤ. Dupฤ ce plata este efectuatฤ pe un gateway, un rฤspuns este trimis cฤtre site-ul de comerศ electronic)
- Serviciile sunt uศor de asamblat ศi uศor de reconfigurat componente.
- Serviciile pot fi comparate cu blocuri de construcศie. Ei pot construi orice aplicaศie necesarฤ. Adฤugarea ศi eliminarea acestora din aplicaศie sau din procesul de afaceri este uศor.
- Serviciile sunt definite mai degrabฤ de funcศia de afaceri pe care o รฎndeplinesc, decรขt ca bucฤศi de cod.
Servicii Web
Serviciile web sunt componente independente ale aplicaศiei, care sunt disponibile pe web.
Ele pot fi publicate, gฤsite ศi pot fi folosite pe web. Ei pot comunica prin internet.
- Furnizorul de servicii publicฤ serviciul pe internet.
- Clientul cautฤ un anumit serviciu web din Registrul de servicii web
- A URL ศi se returneazฤ WSDL-ul pentru serviciul web necesar. Folosind WSDL-ul ศi URLComunicarea dintre furnizorul de servicii ศi solicitant se face prin mesaje SOAP.
- Cรขnd un consumator apeleazฤ un serviciu web, se va stabili o conexiune HTTP cu furnizorul.
Un mesaj SOAP este creat pentru a instrui furnizorul sฤ invoce logica serviciului web necesarฤ. - Rฤspunsul primit de la furnizor este un mesaj SOAP care va fi รฎncorporat รฎn rฤspunsul HTTP. Acest rฤspuns HTTP este formatul de date care este de รฎnศeles de cฤtre aplicaศia de consum.
Exemplu
O paginฤ de pornire a unui site web ศi a unui motor de cฤutare afiศeazฤ un raport meteo zilnic. รn loc sฤ codificaศi secศiunea de buletin meteo peste tot, un serviciu de buletin meteo poate fi cumpฤrat de la un furnizor ศi integrat รฎn pagini.
Testarea SOA
SOA constฤ din diverse tehnologii. Aplicaศiile construite folosind SOA au diverse servicii care sunt slab cuplate.
Testarea SOA ar trebui sฤ se concentreze pe 3 straturi de sistem
Stratul de servicii
Acest nivel este format din serviciile, serviciile expuse de un sistem derivat din funcศiile de business.
De exemplu -
Luaศi รฎn considerare un site web de wellness care constฤ din
- Greutate Tracker
- Zahฤr din sรขnge Tracker
- Tensiune arterialฤ Tracker
TracKerurile afiศeazฤ datele respective ศi data la care au fost introduse. Stratul Servicii este format din serviciile care preiau datele respective din baza de date โ
- Greutate Tracserviciu ker
- Zahฤr din sรขnge Tracserviciu ker
- Tensiune arterialฤ Tracserviciu ker
- Serviciu de autentificare
Stratul de proces
Stratul de proces constฤ din procesele, colecศia de servicii care fac parte dintr-o singurฤ funcศionalitate.
Procesele pot fi o parte a interfeศei utilizator (de exemplu โ Un motor de cฤutare), o parte a unui instrument ETL (pentru obศinerea datelor din baza de date).
Accentul principal รฎn acest strat va fi รฎn interfeศele utilizator ศi proces.
Interfaศa cu utilizatorul a greutฤศii tracker ศi integrarea sa cu baza de date este obiectivul principal.
Funcศiile de mai jos vor fi luate รฎn considerare
- Adฤugarea de date noi
- Editarea datelor existente
- Crearea de noi tracker
- ศtergerea datelor
Stratul Consumatorului
Acest strat cuprinde รฎn principal interfeศe cu utilizatorul.
Pe baza stratului, testarea unei aplicaศii SOA este distribuitฤ pe trei niveluri.
- Nivel de servicii
- Nivelul interfeศei
- Nivel de la capฤt la capฤt
- Abordarea de sus รฎn jos este utilizatฤ pentru proiectarea testelor.
- Abordarea de jos รฎn sus este utilizatฤ pentru execuศia testului.
Strategie pentru testarea SOA
Abordarea de planificare a testelor,
- Arhitectura completฤ a aplicaศiei ar trebui sฤ fie รฎnศeleasฤ de cฤtre testerii SOA.
- Aplicaศia trebuie รฎmpฤrศitฤ รฎn servicii independente (Serviciul, care are propria sa structurฤ de solicitare ศi rฤspuns ศi nu depinde de niciun alt serviciu pentru a forma rฤspuns).
- Structura aplicaศiei trebuie reorganizatฤ รฎn trei componente โ date, servicii ศi aplicaศii front-end.
- Toate componentele trebuie analizate cu atenศie, iar scenariile de afaceri ar trebui elaborate.
- Scenariile de afaceri ar trebui clasificate ca scenarii comune ศi scenarii specifice aplicaศiei.
- A TracMatricea de eficienศฤ ar trebui pregฤtite ศi toate cazurile de testare ar trebui sฤ fie tracadaptat la scenarii de afaceri.
Abordarea executฤrii testelor
- Fiecare componentฤ a serviciului trebuie testatฤ.
- Testare de integrare a componentelor serviciului ar trebui fฤcut pentru a valida fluxul de date prin servicii ศi integritatea datelor.
- Testarea sistemului a modelului complet ar trebui fฤcut pentru a valida fluxul de date dintre aplicaศia front-end ศi baza de date.
- Test de performanta ar trebui fฤcut pentru reglaj fin ศi performanศฤ optimฤ.
Metode de testare SOA
1) Testare bazatฤ pe date bazate pe scenarii de afaceri,
- Ar trebui analizate diverse aspecte de afaceri legate de sistem.
- Scenariile ar trebui dezvoltate pe baza integrฤrii
- Variat servicii web a cererii
- Servicii web ศi aplicaศie.
- Configurarea datelor ar trebui sฤ se facฤ pe baza scenariilor de mai sus.
- Configurarea datelor ar trebui fฤcutฤ astfel รฎncรขt sฤ acopere ศi scenariile cap la cap.
2) cioturi
- Vor fi create interfeศe simulate pentru a testa serviciile.
- Prin aceste interfeศe pot fi furnizate diverse intrฤri, iar ieศirile pot fi validate.
- Cรขnd o aplicaศie foloseศte o interfaศฤ cu un serviciu extern, care nu este testat (serviciu terศฤ parte), se poate crea un stub รฎn timpul testฤrii integrฤrii.
3) Testarea regresiei
- Testarea regresiei pe aplicaศie ar trebui fฤcutฤ atunci cรขnd existฤ mai multe versiuni astfel รฎncรขt sฤ se asigure stabilitatea ศi disponibilitatea sistemelor.
- Va fi creatฤ o suitฤ cuprinzฤtoare de teste de regresie care acoperฤ serviciile care formeazฤ o parte importantฤ a aplicaศiei.
- Aceastฤ suitฤ de teste poate fi reutilizatฤ รฎn mai multe versiuni ale proiectului.
4) Testarea nivelului de serviciu
Testarea la nivel de serviciu include testarea componentei pentru funcศionalitate, securitate, performanศฤ ศi interoperabilitate.
Fiecare serviciu trebuie mai รฎntรขi testat independent.
5) Testare funcศionalฤ
Testarea funcศionalฤ ar trebui fฤcutฤ pentru fiecare serviciu cฤtre
- Asiguraศi-vฤ cฤ serviciul oferฤ rฤspunsul corect la fiecare solicitare.
- Se primesc erori corecte pentru cereri cu date invalide, date proaste etc.
- Verificaศi fiecare cerere ศi rฤspuns pentru fiecare operaศiune pe care serviciul trebuie sฤ o efectueze รฎn timpul de execuศie.
- Validaศi mesajele de eroare atunci cรขnd apare o eroare la nivel de server, client sau reศea.
- Verificaศi dacฤ rฤspunsurile primite sunt รฎn formatul corect.
- Validaศi cฤ datele primite pe rฤspuns corespund datelor solicitate.
6) Testare de securitate
Testarea de securitate a serviciului web este un aspect important รฎn timpul testฤrii la nivel de serviciu a aplicaศiei SOA; aceasta asigurฤ siguranศa aplicaศiei.
Urmฤtorii factori trebuie acoperiศi รฎn timpul testฤrii:
- Standardul industrial definit de testarea WS-Security ar trebui sฤ fie respectat de Serviciul Web.
- Mฤsurile de securitate ar trebui sฤ funcศioneze impecabil.
- Criptarea datelor ศi Digital semnฤturi pe documente
- Autentificare ศi autorizare
- SQL Injection, Malware, XSS, CSRF, alte vulnerabilitฤศi urmeazฤ sฤ fie testate pe XML.
- Atacuri de negare a serviciului
7) Testarea performanศei
Testarea performanศei serviciului trebuie fฤcutฤ, deoarece serviciile sunt reutilizabile ศi mai multe aplicaศii pot folosi acelaศi serviciu.
Urmฤtorii factori sunt luaศi รฎn considerare รฎn timpul testฤrii:
- Performanศa ศi funcศionalitatea serviciului trebuie testate sub sarcinฤ grea.
- Performanศa serviciului trebuie comparatฤ รฎn timp ce se lucreazฤ individual ศi รฎn cadrul aplicaศiei, aceasta este cuplatฤ.
- Trebuie efectuatฤ testarea la sarcinฤ a serviciului
- pentru a verifica timpul de rฤspuns
- pentru a verifica blocajele
- pentru a verifica utilizarea CPU ศi a memoriei
- pentru a prezice scalabilitatea
8) Testarea nivelului de integrare
- Testarea nivelului de service asigurฤ funcศionarea corectฤ numai a serviciilor รฎn mod individual, nu garanteazฤ funcศionarea componentelor cuplate.
- Testarea de integrare se face concentrรขndu-se รฎn principal pe interfeศe.
- Aceastฤ fazฤ acoperฤ toate scenariile de afaceri posibile.
- Testarea non-funcศionalฤ a aplicaศiei ar trebui fฤcutฤ รฎncฤ o datฤ รฎn aceastฤ fazฤ. Securitatea, conformitatea ศi testarea performanศei asigurฤ disponibilitatea ศi stabilitatea sistemului รฎn toate aspectele.
- Protocoalele de comunicare ศi de reศea ar trebui testate pentru a valida consistenศa comunicฤrii de date รฎntre servicii.
9) Testare de la capฤt la capฤt
Aceastฤ fazฤ asigurฤ cฤ aplicaศia confirmฤ cerinศele de afaceri atรขt din punct de vedere funcศional, cรขt ศi nefuncศional.
Elementele de mai jos sunt asigurate cฤ vor fi testate รฎn timpul testฤrii de la capฤt la capฤt
- Toate serviciile funcศioneazฤ conform aศteptฤrilor dupฤ integrare
- Manevrarea excepศiilor
- Interfaศa de utilizator a aplicaศiei
- Fluxul adecvat de date prin toate componentele
- Procesul de afaceri
Provocฤri รฎn testarea SOA
- Lipsa interfeศelor pentru Servicii
- Procesul de testare se รฎntinde pe mai multe sisteme, creรขnd astfel nevoi complexe de date
- Aplicaศia este o colecศie de diferite componente care tinde sฤ se schimbe. Necesitatea testelor de regresie este mai frecventฤ.
- Datoritฤ arhitecturii multistrat, este dificil sฤ izolaศi defectele.
- Deoarece serviciul va fi utilizat รฎn diferite interfeศe, este dificil sฤ se prezicฤ sarcina, ceea ce face ca planificarea testelor de performanศฤ sฤ fie greoaie.
- SOA este o colecศie de tehnologii eterogene. Testarea unei aplicaศii SOA necesitฤ oameni cu seturi diferite de abilitฤศi care, la rรขndul lor, cresc costurile de planificare ศi execuศie.
- Deoarece aplicaศia este o integrare a mai multor servicii, testarea de securitate are propria sa parte de probleme. Validarea autentificฤrii ศi autorizฤrii este destul de dificilฤ.
Instrumente de testare SOA
Existฤ multe instrumente de testare SOA disponibile pe piaศฤ pentru a ajuta testerii รฎn testarea aplicaศiilor SOA. Iatฤ cรขteva dintre cele populare Instrumente de testare SOA:
1) SOAP UI
SOAP UIโeste un instrument open source de testare funcศionalฤ pentru Servicii ศi Testare API.
- Aplicaศie desktop
- Suporta mai multe protocoale โ SOAP, REST, HTTP, JMS, AMF, JDBC
- Serviciile web pot fi dezvoltate, inspectate ศi invocate.
- Poate fi folosit ศi pentru testarea sarcinii, Testarea automatizฤrii, ศi teste de securitate
- Stub-urile pot fi create de MockServices
- Cererile ศi testele serviciului web pot fi generate automat prin clientul serviciului web.
- Au instrumente de raportare รฎncorporate
- Dezvoltat de SmartBear
2) iTKO LISA
โLISAโ este o suitฤ de produse care oferฤ o soluศie de testare funcศionalฤ pentru sistemele distribuite precum SOA.
- Poate fi folosit ศi pentru regresie, integrare, รฎncฤrcare ศi testare a performanศei.
- Dezvoltat de iTKO (CA Technologies)
- Poate fi folosit pentru a proiecta ศi executa teste.
3) Test de service HP
โService Testโ este un instrument de testare funcศional, care acceptฤ atรขt testarea interfeศei de utilizare, cรขt ศi a serviciilor partajate
- Atรขt testarea funcศionalฤ, cรขt ศi cea de performanศฤ a serviciilor pot fi realizate printr-un singur script.
- Integrat cu HP QC.
- Cantitatea masivฤ de servicii ศi date poate fi gestionatฤ.
- Acceptฤ testarea interoperabilitฤศii prin simularea mediilor client JEE, AXIS ศi DotNet.
- Dezvoltat de HP.
4) Testul SOA Parasoft
SOA Test este o suitฤ de instrumente de testare ศi analizฤ dezvoltatฤ pentru testarea aplicaศiilor API ศi API.
- Suportฤ tehnologii Web Services, REST, JSON, MQ, JMS, TIBCO, HTTP, XML.
- Sunt posibile teste funcศionale, unitare, de integrare, regresie, securitate, interoperabilitate, conformitate ศi performanศฤ.
- Stub-urile pot fi create folosind Parasoft Virtualize, care sunt mai inteligente decรขt SOAP UI.
- Dezvoltat de ParaSoft
Cazuri de utilizare pentru testarea SOA
Luaศi รฎn considerare un site de comerศ electronic, care conศine urmฤtoarele funcศii ศi subfuncศii:
Procesarea comenzilor
Faza 1
รn prima fazฤ a testฤrii SOA, adicฤ faza de testare a strategiei, aplicaศia este รฎmpฤrศitฤ รฎn servicii ศi funcศii de afaceri.
Sฤ luฤm รฎn considerare mai jos serviciile din aplicaศie.
- Creaศi comandฤ
- Verificaศi starea clientului
- Modificaศi starea comenzii
- Verificaศi starea comenzii
- Verificaศi inventarul
Funcศiile de afaceri fiind aceleaศi cu funcศiile Site-ului.
Notฤ: Documentul de strategie de testare ar conศine lista serviciului ศi funcศiile care trebuie testate.
Faza 2
Faza de planificare a testului. Cazurile de testare sunt scrise pentru fiecare nivel.
- Nivel de la capฤt la final. Cazurile de testare sunt scrise pentru fiecare caz de utilizare ศi flux de afaceri. Mai jos sunt exemple de cazuri de testare
- Creaศi o comandฤ cu utilizatorul activ.
- Creaศi o comandฤ cu un utilizator inactiv.
- Creaศi o comandฤ cu produsul disponibil cu cantitatea de comandฤ < cantitatea disponibilฤ.
- Creaศi o comandฤ cu produsul disponibil cu cantitatea de comandฤ > cantitatea disponibilฤ.
- Creaศi o comandฤ cu mai multe articole
- Anulaศi o comandฤ complet.
- Anulaศi parศial comanda.
- Nivel de integrare. Cazurile de testare sunt scrise pentru integrarea bazei de date ศi a interfeศei cu utilizatorul. Mai jos sunt exemple de cazuri de testare.
- Creaศi o nouฤ comandฤ cu un singur articol. Verificaศi dacฤ comanda este creatฤ รฎn baza de date.
- Creaศi o nouฤ comandฤ cu un singur articol. Verificaศi dacฤ preศul calculat pentru comandฤ este corect.
- Creaศi o nouฤ comandฤ cu un singur articol. Verificaศi dacฤ cantitatea de produs disponibilฤ este mai micฤ cu valoarea comenzii.
- Verificaศi dacฤ starea comenzii afiศatฤ pe UI este aceeaศi cu cea din baza de date.
- Anulaศi comanda ศi verificaศi dacฤ starea comenzii este modificatฤ รฎn baza de date.
- Pentru prima platฤ, verificaศi dacฤ detaliile de platฤ introduse รฎn UI sunt salvate รฎn baza de date.
- Pentru returnarea plฤศilor, verificaศi dacฤ detaliile de platฤ din baza de date sunt afiศate รฎn UI.
- Nivel de servicii. Fiecare serviciu este testat pentru toate condiศiile de date.
Mai jos sunt cรขteva exemple.
| Nu. | Comanda Detalii | Starea comenzii |
|---|---|---|
| 1 | Creaศi comanda. Nr. articole = 1 | Cantitate la comandฤ < Cantitate pe baza de date |
| 2 | Creaศi comanda. Numฤr de articole > 1 | Cantitate pe comandฤ < Cantitate pe baza de date. |
| 3 | Creaศi numฤrul de comandฤ de articole = 1 | Cantitate pe comandฤ > Cantitate pe baza de date |
| 4 | Verificaศi starea comenzii | Stare pe baza de date = Activ |
| 5 | Verificaศi starea comenzii | Stare pe baza de date = Expediat |
| 6 | Verificaศi starea comenzii | Stare pe baza de date = Anulat |
| 7 | Verificaศi starea comenzii | ID comandฤ = Invalid |
| 8 | Verificaศi disponibilitatea produsului | Cantitatea de produs >0 |
| 9 | Verificaศi disponibilitatea produsului | Cantitatea de produs =0 |
| 10 | Verificaศi disponibilitatea produsului | ID produs = invalid |
FAZA 3 โ Executarea testului
Execuศia testului foloseศte abordarea de jos รฎn sus, adicฤ testarea la nivel de serviciu este efectuatฤ mai รฎntรขi, apoi nivelul de integrare ศi รฎn sfรขrศit Testare de la capฤt la capฤt.
1) Nivel de serviciu
Sฤ luฤm รฎn considerare asta Soapui instrumentul este luat รฎn considerare pentru testarea aplicaศiei.
wsdl ศi URL sunt accesate รฎn fereastra de testare a SOAP.
Cererea pentru fiecare serviciu va fi afiศatฤ รฎn fereastra de solicitare.
Prin modificarea datelor conform cazurilor de testare la nivel de serviciu, cererile sunt create pentru fiecare caz de testare.
| Caz de testare | Cerere | Rฤspuns aศteptat |
|---|---|---|
| Creaศi comanda. Nr. Articole = 1Cantitate pe comanda < Cantitate pe db | x2 2 | o3251 De succes |
| Creare comanda.Nr. de articole > 1Cantitate pe comandฤ < Cantitate pe db | y1 1 y2 3 | o3251 De succes |
| Creare comanda nr. de articole = 1Cantitate pe comandฤ > Cantitate pe db | x23 200 | nul Fฤrฤ succes |
| Verificaศi starea comenzii Stare pe baza de date = Activ | o9876 | Activ De succes |
| Verificaศi starea comenzii Stare pe baza de date = Expediat | o9656 | Expediat De succes |
| Verificaศi starea comenzii Id-ul comenzii = Invalid | y5686 | nul Fฤrฤ succes |
| Verificaศi disponibilitatea produsuluiCantitatea de produs >0 | d34 | 34 da De succes |
| Verificaศi disponibilitatea produsuluiCantitatea de produs =0 | y34 | 0 Nu De succes |
| Verificaศi disponibilitatea produsului ID produs = invalid | sder | Fฤrฤ succes |
2) Nivelul de integrare
Cazurile de testare la nivel de integrare sunt executate pe interfaศa utilizator ศi baza de date.
- Creaศi o comandฤ cu un singur articol -
- Un utilizator deschide site-ul web.
- Merge sฤ plaseze o comandฤ.
- Selecteazฤ un produs ศi o cantitate validฤ ศi salveazฤ comanda.
- Ar trebui sฤ fie afiศat un mesaj care spune cฤ comanda a fost plasatฤ cu succes.
- Un utilizator deschide baza de date ศi verificฤ dacฤ detaliile comenzii sunt aceleaศi cu cele introduse pe site.
3) Nivel de la capฤt la final
Fluxurile de afaceri ศi cazurile de utilizare sunt executate pe interfaศa cu utilizatorul.
- Creaศi o comandฤ cu mai multe articole -
- Un utilizator deschide un site web.
- Merge sฤ plaseze o comandฤ.
- รntrebฤri despre un produs valid ศi cantitatea le adaugฤ รฎn coศ.
- Se adauga si alte produse valabile cu cantitati valabile si comanda este salvata. Plata se face printr-o nouฤ metodฤ de platฤ ศi se plaseazฤ comanda.
- Ar trebui sฤ fie afiศat un mesaj care spune โComandฤ plasatฤ cu succesโ.
- Un tester ar trebui sฤ valideze cฤ รฎntregul flux este realizat fฤrฤ denaturarea datelor.
Concluzie
Prin schiศarea strategiei potrivite pentru testare, resurse, instrumente ศi conformitate pentru a oferi servicii bune, testarea SOA poate oferi aplicaศii complet ศi perfect testate.







