Hvad er SOA-testning? Tutorial med eksempel

Hvad er SOA-testning?

SOA (serviceorienteret Architecture) Test er en test af SOA-arkitektonisk stil, hvor applikationskomponenterne er designet til at kommunikere via kommunikationsprotokoller typisk over et netvรฆrk.

Hvad er SOA?

SOA er en metode til at integrere forretningsapplikationer og processer sammen for at imรธdekomme forretningsbehovene.

I Software Engineering giver SOA agilitet og fleksibilitet til forretningsprocesser. ร†ndringerne af processen eller applikationen kan rettes til en bestemt komponent uden at pรฅvirke hele systemet.

Softwareudviklerne i SOA enten udvikler eller kรธber bidder af programmer kaldet TJENESTER.

Hvad er service?

SOA service

  • Tjenester kan vรฆre en funktionel enhed af applikationer eller forretningsprocesser, som kan genbruges eller gentages af enhver anden applikation eller proces. (Pรฅ billedet ovenfor er Payment Gateway f.eks. en tjeneste, der kan genbruges af ethvert e-handelswebsted. Nรฅr en betaling skal udfรธres, ringer/anmoder e-handelssiden til Payment Gateway-tjenesten. Efter betaling er foretaget pรฅ en gateway, sendes et svar til e-handelswebstedet)
  • Tjenester er nemme at samle og nemme at omkonfigurere komponenter.
  • Tjenester kan sammenlignes med byggeklodser. De kan konstruere enhver applikation, der er nรธdvendig. Det er nemt at tilfรธje og fjerne dem fra applikationen eller forretningsprocessen.
  • Tjenester defineres mere af den forretningsfunktion, de udfรธrer, snarere end som kodestykker.

Web Services

Webtjenester er uafhรฆngige applikationskomponenter, som er tilgรฆngelige over internettet.

De kan publiceres, findes og kan bruges pรฅ nettet. De kan kommunikere via internettet.

SOA Web Services

SOA Web Services

  1. Tjenesteudbyderen udgiver tjenesten pรฅ internettet.
  2. Klienten sรธger efter en bestemt webtjeneste fra webtjenesteregistret
  3. En URL og WSDL for den pรฅkrรฆvede webservice returneres. Ved at bruge WSDL og URL'en sker kommunikationen mellem tjenesteudbyderen og anmoderen gennem SOAP-meddelelser.
  4. Nรฅr en forbruger ringer til en webservice, etableres en HTTP-forbindelse til udbyderen.
    En SOAP-meddelelse oprettes for at instruere udbyderen om at pรฅkalde den nรธdvendige webservicelogik.
  5. Svaret modtaget fra udbyderen er en SOAP-meddelelse, som vil blive indlejret i HTTP-svaret. Dette HTTP-svar er dataformatet, som er forstรฅeligt af forbrugerapplikationen.

Eksempel

En hjemmeside for et websted og en sรธgemaskine viser daglige vejrrapporter. I stedet for at kode vejrrapportsektionen over det hele, kan en Service of vejrrapport kรธbes fra en leverandรธr og integreres i siderne.

Eksempel SOA Web Servicesg

SOA test

SOA bestรฅr af forskellige teknologier. Applikationer bygget ved hjรฆlp af SOA har forskellige tjenester, som er lรธst koblede.

SOA test

SOA-test skal fokusere pรฅ 3 systemlag

Tjenester lag

Dette lag bestรฅr af tjenesterne, tjenester eksponeret af et system afledt af forretningsfunktioner.

For eksempel -

Overvej et wellness-websted, som bestรฅr af

  1. Vรฆgt Tracker
  2. Blodsukker tracker
  3. Blodtryksmรฅler

Trackere viser de respektive data og dato, de er indtastet. Tjenestelaget bestรฅr af de tjenester, som henter de respektive data fra databasenโ€“

  • Weight Tracker service
  • Blood Sugar Tracker service
  • Blodtryksmรฅler service
  • Login service

Proceslag

Process Layer bestรฅr af processer, samling af tjenester, som er en del af en enkelt funktionalitet.

Processerne kan vรฆre en del af brugergrรฆnsefladen (f.eks. - En sรธgemaskine), en del af et ETL-vรฆrktรธj (til at hente data fra databasen).

Hovedfokus i dette lag vil vรฆre i brugergrรฆnseflader og proces.

Vรฆgttrackerens brugergrรฆnseflade og dens integration med databasen er det primรฆre fokus.

Nedenstรฅende funktioner vil komme i betragtning

  1. Tilfรธjelse af nye data
  2. Redigering af eksisterende data
  3. Oprettelse af ny tracker
  4. Sletning af data

Forbrugerlag

Dette lag bestรฅr hovedsageligt af brugergrรฆnseflader.

Forbrugerlag

Baseret pรฅ laget er testen af โ€‹โ€‹en SOA-applikation fordelt pรฅ tre niveauer.

  1. Serviceniveau
  2. Grรฆnsefladeniveau
  3. End to End niveau
  • Top Down tilgang bruges til testdesign.
  • Bottom Up-tilgangen bruges til testudfรธrelse.

Strategi for SOA-testning

Testplanlรฆgningstilgang,

  • Den komplette arkitektur af applikationen skal forstรฅs af SOA-testerne.
  • Ansรธgningen skal opdeles i uafhรฆngige tjenester (tjeneste, som har deres egen anmodnings- og svarstruktur og ikke er afhรฆngig af nogen anden tjeneste for at danne svar).
  • Applikationsstrukturen skal omorganiseres i tre komponenter โ€“ Data, Services og front-end-applikationer.
  • Alle komponenter skal analyseres omhyggeligt, og forretningsscenarier skal udskrives.
  • Forretningsscenarierne bรธr klassificeres som almindelige scenarier og applikationsspecifikke scenarier.
  • A Sporbarhedsmatrix bรธr forberedes, og alle testcases bรธr spores til forretningsscenarier.

Testudfรธrelsesmetode

  • Hver servicekomponent skal testes.
  • Integrationstest af servicekomponenterne bรธr gรธres for at validere datastrรธmmen gennem tjenesterne og dataintegriteten.
  • Systemtest af den komplette model bรธr gรธres for at validere datastrรธmmen mellem front-end applikation og database.
  • Test af ydeevne bรธr gรธres for finjustering og optimal ydeevne.

SOA-testmetoder

1) Forretningsscenariedrevet databaseret test,

  • Forskellige forretningsaspekter relateret til systemet bรธr analyseres.
  • Scenarier bรธr udvikles baseret pรฅ integration af
  • Various Webtjenester af ansรธgningen
  • Webtjenester og applikation.
  • Opsรฆtning af data bรธr udfรธres ud fra ovenstรฅende scenarier.
  • Opsรฆtning af data bรธr ogsรฅ udfรธres, sรฅ de dรฆkker ende-til-ende scenarier.

2) Stubber

  • Dummy-grรฆnseflader vil blive oprettet for at teste tjenester.
  • Forskellige input kan leveres gennem disse grรฆnseflader, og udgangene kan valideres.
  • Nรฅr en applikation bruger en grรฆnseflade til en ekstern tjeneste, som ikke er under test (tredjepartstjeneste), kan der oprettes en stub under Integrationstest.

3) Regressionstest

  • Regressionstest pรฅ applikationen bรธr gรธres, nรฅr der er flere udgivelser for at sikre stabiliteten og tilgรฆngeligheden af โ€‹โ€‹systemerne.
  • Der vil blive oprettet en omfattende regressionstestsuite, der dรฆkker de tjenester, som udgรธr en vigtig del af applikationen.
  • Denne testpakke kan genbruges i flere udgivelser af projektet.

4) Test af serviceniveau

Serviceniveautest omfatter test af komponenten for funktionalitet, sikkerhed, ydeevne og interoperabilitet.

Hver eneste service skal fรธrst testes uafhรฆngigt.

5) Funktionstest

Funktionel test skal udfรธres pรฅ hver service til

  • Sรธrg for, at tjenesten giver det rigtige svar pรฅ hver anmodning.
  • Der modtages rigtige fejl for anmodninger med ugyldige data, dรฅrlige data osv.
  • Tjek for hver anmodning og svar for hver eneste operation, som tjenesten skal udfรธre i lรธbetid.
  • Valider fejlmeddelelserne, nรฅr der opstรฅr en fejl pรฅ server-, klient- eller netvรฆrksniveau.
  • Bekrรฆft, at de modtagne svar er i det rigtige format.
  • Bekrรฆft, at de modtagne data pรฅ svaret svarer til de anmodede data.

6) Sikkerhedstest

Sikkerhedstest af webservicen er et vigtigt aspekt under serviceniveautest af SOA-applikationen; dette sikrer applikationens sikkerhed.

Fรธlgende faktorer skal dรฆkkes under test:

  • Branchestandarden defineret af WS-Security-test skal overholdes af webtjenesten.
  • Sikkerhedsforanstaltninger bรธr fungere upรฅklageligt.
  • Kryptering af data og Digital underskrifter pรฅ dokumenterne
  • Godkendelse og godkendelse
  • SQL Injection, Malware, XSS, CSRF, andre sรฅrbarheder skal testes pรฅ XML.
  • Denial of Service-angreb

7) Ydelsestest

Ydelsestest af tjenesten skal udfรธres, da tjenesterne kan genbruges, og flere applikationer kan bruge den samme tjeneste.

Fรธlgende faktorer tages i betragtning under testen:

  • Ydeevne og funktionalitet af tjenesten skal testes under stor belastning.
  • Ydelsen af โ€‹โ€‹tjenesten skal sammenlignes, mens du arbejder individuelt og inden for den applikation, den er koblet sammen med.
  • Belastningstest af service skal udfรธres
  • for at verificere responstiden
  • at tjekke for flaskehalse
  • for at verificere udnyttelsen af โ€‹โ€‹CPU og hukommelse
  • at forudsige skalerbarhed

8) Test af integrationsniveau

  • Test af serviceniveau sikrer, at kun tjenesterne fungerer korrekt, det garanterer ikke, at de koblede komponenter fungerer.
  • Integrationstest udfรธres primรฆrt med fokus pรฅ grรฆnseflader.
  • Denne fase dรฆkker alle mulige forretningsscenarier.
  • Den ikke-funktionelle test af applikationen bรธr udfรธres en gang til i denne fase. Sikkerhed, compliance og prรฆstationstest sikrer tilgรฆngeligheden og stabiliteten af โ€‹โ€‹systemet i alle aspekter.
  • Kommunikations- og netvรฆrksprotokollerne bรธr testes for at validere sammenhรฆngen i datakommunikationen mellem tjenesterne.

9) End-to-End-test

Denne fase sikrer, at applikationen bekrรฆfter forretningskravene bรฅde funktionelt og ikke-funktionelt.

Nedenstรฅende punkter er sikret at blive testet under ende til ende test

  • Alle tjenester fungerer som forventet efter integration
  • Undtagelse hรฅndtering
  • Brugergrรฆnseflade for applikationen
  • Korrekt dataflow gennem alle komponenterne
  • Forretningsproces

Udfordringer i SOA-test

  • Mangel pรฅ grรฆnseflader til tjenester
  • Testprocesser spรฆnder over flere systemer, hvilket skaber komplekse databehov
  • Applikationen er en samling af forskellige komponenter, som har en tendens til at รฆndre sig. Behovet for regressionstest er mere hyppigt.
  • Pรฅ grund af flerlagsarkitektur er det svรฆrt at isolere defekter.
  • Da tjenesten vil blive brugt i forskellige grรฆnseflader, er det svรฆrt at forudsige belastning, hvilket gรธr planlรฆgning af prรฆstationstest besvรฆrlig.
  • SOA er en samling af heterogene teknologier. Test af en SOA-applikation krรฆver folk med forskellige fรฆrdigheder, hvilket igen รธger planlรฆgnings- og eksekveringsomkostningerne.
  • Da applikationen er en integration af flere tjenester, har sikkerhedstest sin egen andel af problemer. Validering af godkendelse og godkendelse er ret meget vanskelig.

SOA-testvรฆrktรธjer

Der er mange SOA-testvรฆrktรธjer tilgรฆngelige pรฅ markedet for at hjรฆlpe testere med at teste SOA-applikationer. Her er nogle af de populรฆre SOA-testvรฆrktรธjer:

1) SOAP UI

"SOAP UI" er et open source funktionelt testvรฆrktรธj til tjenester og API-testning.

  • Desktop-applikation
  • Understรธtter flere protokoller - SOAP, REST, HTTP, JMS, AMF, JDBC
  • Webtjenester kan udvikles, inspiceres og pรฅberรฅbes.
  • Kan ogsรฅ bruges til belastningstest, Test af automatisering, og sikkerhedstest
  • Stubs kan oprettes af MockServices
  • Webserviceanmodninger og -test kan genereres automatisk gennem dens webserviceklient.
  • Har indbyggede rapporteringsvรฆrktรธjer
  • Udviklet af SmartBear

2) iTKO LISA

"LISA" er en produktsuite, som giver en funktionel testlรธsning til distribuerede systemer som SOA.

  • Kan ogsรฅ bruges til regression, integration, belastning og prรฆstationstest.
  • Udviklet af iTKO (CA Technologies)
  • Kan bruges til at designe og udfรธre tests.

3) HP Service Test

"Service Test" er et funktionelt testvรฆrktรธj, som understรธtter test af bรฅde brugergrรฆnseflade og delte tjenester

  • Bรฅde funktions- og ydeevnetest af tjenester kan udfรธres af et enkelt script.
  • Integreret med HP QC.
  • Den enorme mรฆngde service og data kan administreres.
  • Understรธtter interoperabilitetstest ved at simulere JEE-, AXIS- og DotNet-klientmiljรธer.
  • Udviklet af HP.

4) Parasoft SOA-test

SOA Test er en test- og analysevรฆrktรธjspakke udviklet til test af API- og API-applikationer.

  • Understรธtter webtjenester, REST, JSON, MQ, JMS, TIBCO, HTTP, XML-teknologier.
  • Funktionel, enhed, integration, regression, sikkerhed, interoperabilitet, compliance og ydeevnetest er mulige.
  • Stubs kan oprettes ved hjรฆlp af Parasoft Virtualize, som er intelligente end SOAP UI.
  • Udviklet af ParaSoft

SOA-testbrug

Overvej et e-handelswebsted, som indeholder nedenstรฅende funktioner og underfunktioner:

Ordrebehandling

Ordrebehandling

1 FASE

I den fรธrste fase af SOA-testning, dvs. teststrategifasen, er applikationen opdelt i tjenester og forretningsfunktioner.

Lad os overveje nedenfor er tjenesterne i applikationen.

  • Opret ordre
  • Tjek kundestatus
  • Skift ordrestatus
  • Tjek ordrestatus
  • Tjek beholdning

Forretningsfunktioner er de samme som funktionerne pรฅ hjemmesiden.

Bemรฆrk: Teststrategidokumentet ville indeholde listen over tjenesten og de funktioner, der skal testes.

2 FASE

Test Planlรฆgningsfase. Der skrives testcases for hvert niveau.

  1. End to End niveau. Testcaserne er skrevet for hver business use case og flow. Nedenfor er eksempler pรฅ testcases

    • Opret en ordre hos den aktive bruger.
    • Opret en ordre med en inaktiv bruger.
    • Opret en ordre med det tilgรฆngelige produkt med ordremรฆngde < tilgรฆngelig mรฆngde.
    • Opret en ordre med det tilgรฆngelige produkt med ordremรฆngde > tilgรฆngeligt antal.
    • Opret en ordre med flere varer
    • Annuller en ordre helt.
    • Annuller ordre delvist.
  2. Integrationsniveau. Testcases er skrevet til integration af database og brugergrรฆnseflade. Nedenfor er eksempler pรฅ testcases.

    • Opret en ny ordre med en enkelt vare. Kontroller, at ordren er oprettet i databasen.
    • Opret en ny ordre med en enkelt vare. Kontroller, at den beregnede pris for ordren er korrekt.
    • Opret en ny ordre med en enkelt vare. Bekrรฆft, at mรฆngden af โ€‹โ€‹det tilgรฆngelige produkt er mindre med ordrebelรธbet.
    • Bekrรฆft, at status for ordren, der vises pรฅ brugergrรฆnsefladen, er den samme som i databasen.
    • Annuller ordren og bekrรฆft, at status for ordren er รฆndret i databasen.
    • For fรธrste gangs betaling skal du kontrollere, at betalingsoplysningerne, der er indtastet i brugergrรฆnsefladen, er gemt i databasen.
    • For at returnere betalinger skal du kontrollere, at betalingsoplysningerne i databasen vises pรฅ brugergrรฆnsefladen.
  3. Serviceniveau. Hver tjeneste er testet for alle databetingelser.

Nedenfor er et par eksempler.

Nej. Ordre detaljer Ordretilstand
1 Opret ordre. Antal varer = 1 Antal pรฅ bestilling < Antal pรฅ database
2 Opret ordre. Antal varer > 1 Antal pรฅ ordre < Antal pรฅ database.
3 Opret ordrenummer af varer = 1 Antal pรฅ ordre > Antal pรฅ database
4 Tjek ordrestatus Status pรฅ database = Aktiv
5 Tjek ordrestatus Status pรฅ database = Sendt
6 Tjek ordrestatus Status pรฅ database = Annulleret
7 Tjek ordrestatus Ordre-id = Ugyldig
8 Tjek produktets tilgรฆngelighed Produktmรฆngde >0
9 Tjek produktets tilgรฆngelighed Mรฆngde af produkt =0
10 Tjek produktets tilgรฆngelighed Produkt-id = ugyldig

FASE 3 โ€“ Testudfรธrelse

Testudfรธrelse bruger bottom-up tilgang, dvs. test af serviceniveau udfรธres fรธrst, derefter integrationsniveau og til sidst End to End test.

1) Serviceniveau

Lad os overveje det Soapui vรฆrktรธj overvejes til test af applikationen.

wsdl og URL gennemses i SOAPs testvindue.

Anmodningen for hver tjeneste vil blive vist i anmodningsvinduet.

Ved at รฆndre dataene i henhold til serviceniveauets testcases, oprettes anmodninger for hver testcase.

Test sag Anmod om Forventet respons
Opret ordre. Antal varer = 1Antal pรฅ ordre < Antal pรฅ db x2 2 o3251 Vellykket
Opret ordrenr. af varer > 1Antal pรฅ ordre < Antal pรฅ db y1 1 y2 3 o3251 Vellykket
Opret ordrenr. af varer = 1Antal pรฅ ordre > Antal pรฅ db x23 200 nul Mislykket
Tjek ordrestatusStatus pรฅ database = Aktiv o9876 Aktiv Vellykket
Tjek ordrestatusStatus pรฅ database = afsendt o9656 Sendes Vellykket
Tjek ordrestatusOrdre-id = Ugyldig y5686 nul Mislykket
Tjek produkttilgรฆngelighed Produktmรฆngde >0 d34 34 Ja Vellykket
Tjek produkttilgรฆngelighed Mรฆngde af produkt =0 y34 0 ingen Vellykket
Tjek produkttilgรฆngelighed Produkt-id = ugyldig sder Mislykket
2) Integrationsniveau

Testcases pรฅ integrationsniveau udfรธres pรฅ brugergrรฆnsefladen og databasen.

  • Opret en ordre med en enkelt vare โ€“
  • En bruger รฅbner hjemmesiden.
  • Gรฅr for at afgive en ordre.
  • Vรฆlger et gyldigt produkt og antal og gemmer ordren.
  • Der skal vises en meddelelse om, at ordren er afgivet korrekt.
  • En bruger รฅbner databasen og tjekker, om detaljerne i ordren er de samme som dem, der er indtastet pรฅ hjemmesiden.
3) End to End niveau

Forretningsstrรธmmene og use cases udfรธres pรฅ brugergrรฆnsefladen.

  • Opret en ordre med flere varer โ€“
  • En bruger รฅbner en hjemmeside.
  • Gรฅr for at afgive en ordre.
  • Forespรธrgsler om et gyldigt produkt og antal tilfรธjer dem til indkรธbskurven.
  • Andre gyldige produkter tilfรธjes med gyldige mรฆngder, og ordren gemmes. Betaling sker via en ny betalingsmetode og ordren afgives.
  • En meddelelse, der siger "Ordre placeret med succes" skal vises.
  • En tester bรธr validere, at hele flowet er udfรธrt uden skรฆvvridning af data.

Konklusion

Ved at skitsere den rigtige strategi for test, ressourcer, vรฆrktรธjer og compliance for at yde god service, kan SOA-test levere en fuldstรฆndig og perfekt testet applikation.

Opsummer dette indlรฆg med: