Was ist SOA-Test? Tutorial mit Beispiel

Inhaltsverzeichnis:

Anonim

Was ist SOA-Test?

SOA-Tests (Service Oriented Architecture) sind Tests des SOA-Architekturstils, bei denen die Anwendungskomponenten für die Kommunikation über Kommunikationsprotokolle in der Regel über ein Netzwerk ausgelegt sind.

In diesem Tutorial lernen Sie:

  • Was ist SOA?
  • Was ist Service?
  • SOA-Test
  • Strategie für SOA-Tests
  • SOA-Testmethoden
  • Herausforderungen beim SOA-Testen
  • SOA-Testwerkzeuge
  • Anwendungsfälle für SOA-Tests

Was ist SOA?

SOA ist eine Methode zur Integration von Geschäftsanwendungen und -prozessen, um die Geschäftsanforderungen zu erfüllen.

In der Softwareentwicklung bietet SOA Agilität und Flexibilität für Geschäftsprozesse. Die Änderungen am Prozess oder an der Anwendung können auf eine bestimmte Komponente gerichtet werden, ohne das gesamte System zu beeinträchtigen.

Die Softwareentwickler in SOA entwickeln oder kaufen Teile von Programmen, die als DIENSTLEISTUNGEN bezeichnet werden.

Was ist Service?

  • Services können eine funktionale Einheit der Anwendung oder des Geschäftsprozesses sein, die von jeder anderen Anwendung oder jedem anderen Prozess wiederverwendet oder wiederholt werden kann.

    (In der obigen Abbildung ist Payment Gateway beispielsweise ein Dienst, der von jeder E-Commerce-Site wiederverwendet werden kann. Wenn eine Zahlung ausgeführt werden muss, ruft die E-Commerce-Site den Payment Gateway-Service an / fordert ihn an. Nach Zahlungseingang am ein Gateway, eine Antwort wird an die E-Commerce-Website gesendet)

  • Services sind einfach zu montieren und Komponenten neu zu konfigurieren.
  • Dienstleistungen können mit Bausteinen verglichen werden. Sie können jede benötigte Anwendung erstellen. Das Hinzufügen und Entfernen aus der Anwendung oder dem Geschäftsprozess ist einfach.
  • Services werden eher durch die Geschäftsfunktion definiert, die sie ausführen, als als Codestücke.

Internetdienste

Webdienste sind unabhängige Anwendungskomponenten, die über das Web verfügbar sind.

Sie können veröffentlicht, gefunden und im Internet verwendet werden. Sie können über das Internet kommunizieren.

  1. Der Dienstanbieter veröffentlicht den Dienst im Internet.
  2. Der Client sucht in der Webdienstregistrierung nach einem bestimmten Webdienst
  3. Eine URL und die WSDL für den erforderlichen Webdienst werden zurückgegeben.

    >> Über die WSDL und die URL erfolgt die Kommunikation zwischen dem Dienstanbieter und dem Anforderer über SOAP-Nachrichten. <<

  4. Wenn ein Verbraucher einen Webdienst aufruft, wird eine HTTP-Verbindung zum Anbieter hergestellt.

    Eine SOAP-Nachricht wird erstellt, um den Anbieter anzuweisen, die erforderliche Webdienstlogik aufzurufen.

  5. Die vom Anbieter empfangene Antwort ist eine SOAP-Nachricht, die in die HTTP-Antwort eingebettet wird. Diese HTTP-Antwort ist das Datenformat, das für die Verbraucheranwendung verständlich ist.

Beispiel

Auf einer Homepage einer Website und einer Suchmaschine wird der tägliche Wetterbericht angezeigt. Anstatt den gesamten Wetterbericht zu codieren, kann ein Service of Weather Report von einem Anbieter gekauft und in die Seiten integriert werden.

SOA-Test

SOA besteht aus verschiedenen Technologien. Mit SOA erstellte Anwendungen verfügen über verschiedene Dienste, die lose miteinander verbunden sind.

SOA-Tests sollten sich auf 3 Systemschichten konzentrieren

Serviceschicht

Diese Schicht besteht aus den Diensten, Diensten, die von einem aus Geschäftsfunktionen abgeleiteten System verfügbar gemacht werden.

Zum Beispiel -

Betrachten Sie eine Wellness-Website, die aus

  1. Weight Tracker
  2. Blutzucker-Tracker
  3. Blutdruckmessgerät

Tracker zeigen die jeweiligen Daten und das Datum ihrer Eingabe an. Die Serviceschicht besteht aus den Services, die die entsprechenden Daten aus der Datenbank abrufen.

  • Weight Tracker Service
  • Blutzucker-Tracker-Service
  • Blutdruckmesserservice
  • Anmeldedienst

Prozessschicht

Die Prozessschicht besteht aus den Prozessen und der Sammlung von Diensten, die Teil einer einzelnen Funktionalität sind.

Die Prozesse können Teil der Benutzeroberfläche (z. B. einer Suchmaschine) oder eines ETL-Tools (zum Abrufen von Daten aus der Datenbank) sein.

Das Hauptaugenmerk in dieser Ebene liegt auf Benutzeroberflächen und Prozessen.

Die Benutzeroberfläche des Weight Trackers und seine Integration in die Datenbank stehen im Vordergrund.

Die folgenden Funktionen werden berücksichtigt

  1. Neue Daten hinzufügen
  2. Vorhandene Daten bearbeiten
  3. Neuen Tracker erstellen
  4. Daten löschen

Verbraucherebene

Diese Schicht besteht hauptsächlich aus Benutzeroberflächen.

Basierend auf der Schicht wird das Testen einer SOA-Anwendung auf drei Ebenen verteilt.

  1. Service Level
  2. Schnittstellenebene
  3. Ende zu Ende Ebene
  • Der Top-Down-Ansatz wird für das Testdesign verwendet.
  • Der Bottom-Up-Ansatz wird für die Testausführung verwendet.

Strategie für SOA-Tests

Testplanungsansatz,

  • Die vollständige Architektur der Anwendung sollte von den SOA-Testern verstanden werden.
  • Die Anwendung muss in unabhängige Dienste unterteilt werden (Dienst, der über eine eigene Anforderungs- und Antwortstruktur verfügt und nicht von einem anderen Dienst abhängig ist, um eine Antwort zu bilden).
  • Die Anwendungsstruktur muss in drei Komponenten unterteilt werden: Daten, Dienste und Front-End-Anwendungen.
  • Alle Komponenten müssen sorgfältig analysiert und Geschäftsszenarien festgelegt werden.
  • Die Geschäftsszenarien sollten als allgemeine Szenarien und anwendungsspezifische Szenarien klassifiziert werden.
  • Eine Rückverfolgbarkeitsmatrix sollte erstellt werden, und alle Testfälle sollten auf Geschäftsszenarien zurückgeführt werden.

Testausführungsansatz

  • Jede Servicekomponente sollte getestet werden.
  • Integration Tests der Servicekomponenten sollten durchgeführt werden, um den Datenfluss durch die Services und die Datenintegrität zu validieren.
  • Systemtests des gesamten Modells sollten durchgeführt werden, um den Datenfluss zwischen Front-End-Anwendung und Datenbank zu validieren.
  • Leistungstests sollten durchgeführt werden, um eine Feinabstimmung und eine optimale Leistung zu erzielen.

SOA-Testmethoden

1) Geschäftsszenario-gesteuertes datenbasiertes Testen,

  • Verschiedene Geschäftsaspekte im Zusammenhang mit dem System sollten analysiert werden.
  • Szenarien sollten basierend auf der Integration von entwickelt werden
    • Verschiedene Webdienste der Anwendung
    • Webdienste und Anwendung.
  • Die Daten sollten auf der Grundlage der oben genannten Szenarien eingerichtet werden.
  • Die Daten sollten so eingerichtet werden, dass sie auch End-to-End-Szenarien abdecken.

2) Stubs

  • Dummy-Schnittstellen werden erstellt, um Dienste zu testen.
  • Über diese Schnittstellen können verschiedene Eingänge bereitgestellt und die Ausgänge validiert werden.
  • Wenn eine Anwendung eine Schnittstelle zu einem externen Dienst verwendet, der nicht getestet wird (Dienst eines Drittanbieters), kann während des Integrationstests ein Stub erstellt werden.

3) Regressionstests

  • Regressionstests für die Anwendung sollten durchgeführt werden, wenn mehrere Releases vorhanden sind, um die Stabilität und Verfügbarkeit der Systeme sicherzustellen.
  • Es wird eine umfassende Regressionstestsuite erstellt, die die Dienste abdeckt, die einen wichtigen Bestandteil der Anwendung bilden.
  • Diese Testsuite kann in mehreren Versionen des Projekts wiederverwendet werden.

4) Service Level Testing

Das Testen des Servicelevels umfasst das Testen der Komponente auf Funktionalität, Sicherheit, Leistung und Interoperabilität.

Jeder einzelne Service muss zuerst unabhängig getestet werden.

5) Funktionsprüfung

Funktionstests sollten für jeden Service bis durchgeführt werden

  • Stellen Sie sicher, dass der Service auf jede Anfrage die richtige Antwort liefert.
  • Bei Anfragen mit ungültigen Daten, fehlerhaften Daten usw. werden richtige Fehler empfangen.
  • Überprüfen Sie jede Anforderung und Antwort für jede Operation, die der Dienst zur Laufzeit ausführen muss.
  • Überprüfen Sie die Fehlermeldungen, wenn ein Fehler auf Server-, Client- oder Netzwerkebene auftritt.
  • Überprüfen Sie, ob die empfangenen Antworten das richtige Format haben.
  • Überprüfen Sie, ob die in der Antwort empfangenen Daten den angeforderten Daten entsprechen.

6) Sicherheitstests

Sicherheitstests des Webdienstes sind ein wichtiger Aspekt beim Testen des Servicelevels der SOA-Anwendung. Dies gewährleistet die Sicherheit der Anwendung.

Folgende Faktoren müssen beim Testen berücksichtigt werden:

  • Der durch WS-Sicherheitstests definierte Industriestandard sollte vom Webdienst eingehalten werden.
  • Sicherheitsmaßnahmen sollten einwandfrei funktionieren.
  • Verschlüsselung von Daten und digitalen Signaturen auf den Dokumenten
  • Authentifizierung und Autorisierung
  • SQL Injection, Malware, XSS, CSRF, andere Schwachstellen sollen im XML getestet werden.
  • Denial-of-Service-Angriffe

7) Leistungstests

Leistungstests des Dienstes müssen durchgeführt werden, da die Dienste wiederverwendbar sind und mehrere Anwendungen möglicherweise denselben Dienst verwenden.

Folgende Faktoren werden beim Testen berücksichtigt:

  • 8) Leistung und Funktionalität des Dienstes müssen unter hoher Last getestet werden.
  • Die Leistung des Dienstes muss verglichen werden, während einzeln und innerhalb der Anwendung gearbeitet wird.
  • Lasttests des Dienstes sollten durchgeführt werden
    • um die Antwortzeit zu überprüfen
    • auf Engpässe prüfen
    • um die Auslastung von CPU und Speicher zu überprüfen
    • Skalierbarkeit vorhersagen

9) Testen der Integrationsebene

  • Das Testen des Servicelevels stellt sicher, dass nur die Services einzeln ordnungsgemäß funktionieren, und garantiert nicht das Funktionieren der gekoppelten Komponenten.
  • Integrationstests werden hauptsächlich mit Schwerpunkt auf den Schnittstellen durchgeführt.
  • Diese Phase deckt alle möglichen Geschäftsszenarien ab.
  • In dieser Phase sollte der nicht funktionale Test der Anwendung noch einmal durchgeführt werden. Sicherheit, Compliance und Leistungstests gewährleisten die Verfügbarkeit und Stabilität des Systems in allen Aspekten.
  • Die Kommunikations- und Netzwerkprotokolle sollten getestet werden, um die Konsistenz der Datenkommunikation zwischen den Diensten zu überprüfen.

10) End-to-End-Tests

Diese Phase stellt sicher, dass die Anwendung die Geschäftsanforderungen sowohl funktional als auch nicht funktional bestätigt.

Es wird sichergestellt, dass die folgenden Punkte während des End-to-End-Tests getestet werden

  • Alle Dienste funktionieren nach der Integration wie erwartet
  • Ausnahmebehandlung
  • Benutzeroberfläche der Anwendung
  • Ordnungsgemäßer Datenfluss durch alle Komponenten
  • Geschäftsprozess

Herausforderungen beim SOA-Testen

  • Fehlende Schnittstellen für Dienste
  • Der Testprozess erstreckt sich über mehrere Systeme und schafft so komplexe Datenanforderungen
  • Die Anwendung ist eine Sammlung verschiedener Komponenten, die sich tendenziell ändern. Regressionstests sind häufiger erforderlich.
  • Aufgrund der Multilayer-Architektur ist es schwierig, Fehler zu isolieren.
  • Da der Dienst in verschiedenen Schnittstellen verwendet wird, ist es schwierig, die Last vorherzusagen, was die Planung von Leistungstests umständlich macht.
  • SOA ist eine Sammlung heterogener Technologien. Das Testen einer SOA-Anwendung erfordert Personen mit unterschiedlichen Fähigkeiten, was wiederum die Planungs- und Ausführungskosten erhöht.
  • Da es sich bei der Anwendung um eine Integration mehrerer Dienste handelt, haben Sicherheitstests ihre eigenen Probleme. Die Validierung der Authentifizierung und Autorisierung ist ziemlich schwierig.

SOA-Testwerkzeuge

Auf dem Markt sind viele SOA-Testtools verfügbar, die Testern beim Testen von SOA-Anwendungen helfen. Hier sind einige der beliebtesten SOA-Testtools :

1) SOAP-Benutzeroberfläche

"SOAP UI" ist ein Open Source-Funktionstest-Tool für Services und API-Tests.

  • Desktopanwendung
  • Unterstützt mehrere Protokolle - SOAP, REST, HTTP, JMS, AMF, JDBC
  • Webdienste können entwickelt, überprüft und aufgerufen werden.
  • Kann auch für Lasttests, Automatisierungstests und Sicherheitstests verwendet werden
  • Stubs können von MockServices erstellt werden
  • Webdienstanforderungen und -tests können automatisch über den Webdienstclient generiert werden.
  • Integrierte Berichterstellungstools
  • Entwickelt von SmartBear

2) iTKO LISA

"LISA" ist eine Produktsuite, die eine Funktionstestlösung für verteilte Systeme wie SOA bietet.

  • Kann auch für Regression, Integration, Last und Leistungstests verwendet werden.
  • Entwickelt von iTKO (CA Technologies)
  • Kann zum Entwerfen und Ausführen von Tests verwendet werden.

3) HP Servicetest

"Service Test" ist ein Funktionstest-Tool, das sowohl UI- als auch Shared Services-Tests unterstützt

  • Sowohl Funktions- als auch Leistungstests von Diensten können mit einem einzigen Skript durchgeführt werden.
  • Integriert in HP QC.
  • Die enorme Menge an Service und Daten kann verwaltet werden.
  • Unterstützt Interoperabilitätstests durch Simulation von JEE-, AXIS- und DotNet-Clientumgebungen.
  • Entwickelt von HP.

4) Parasoft SOA-Test

SOA Test ist eine Test- und Analyse-Tool-Suite, die für das Testen von APIs und API-Anwendungen entwickelt wurde.

  • Unterstützt Webdienste, REST-, JSON-, MQ-, JMS-, TIBCO-, HTTP- und XML-Technologien.
  • Funktions-, Einheiten-, Integrations-, Regressions-, Sicherheits-, Interoperabilitäts-, Compliance- und Leistungstests sind möglich.
  • Stubs können mit Parasoft Virtualize erstellt werden, die intelligenter als die SOAP-Benutzeroberfläche sind.
  • Entwickelt von ParaSoft

Anwendungsfälle für SOA-Tests

Stellen Sie sich eine E-Commerce-Website vor, die die folgenden Funktionen und Unterfunktionen enthält:

Auftragsbearbeitung

PHASE 1

In der ersten Phase des SOA-Tests, dh der Teststrategiephase, wird die Anwendung in Services und Geschäftsfunktionen unterteilt.

Betrachten wir nachfolgend die Dienste in der Anwendung.

  • Bestellung anlegen
  • Überprüfen Sie den Kundenstatus
  • Bestellstatus ändern
  • Bestellstatus überprüfen
  • Inventar prüfen

Geschäftsfunktionen sind die gleichen wie die Funktionen der Website.

Hinweis: Das Teststrategiedokument enthält die Liste des Dienstes und der zu testenden Funktionen.

PHASE 2

Testplanungsphase. Testfälle werden für jede Ebene geschrieben.

  1. Ende zu Ende Ebene. Die Testfälle werden für jeden Geschäftsanwendungsfall und -ablauf geschrieben.

    Unten finden Sie ein Beispiel für Testfälle

    • Erstellen Sie eine Bestellung mit dem aktiven Benutzer.
    • Erstellen Sie eine Bestellung mit einem inaktiven Benutzer.
    • Erstellen Sie eine Bestellung mit dem verfügbaren Produkt mit der Bestellmenge
    • Erstellen Sie eine Bestellung mit dem verfügbaren Produkt mit Bestellmenge> verfügbare Menge.
    • Erstellen Sie eine Bestellung mit mehreren Artikeln
    • Stornieren Sie eine Bestellung vollständig.
    • Bestellung teilweise stornieren.
  2. Integrationsstufe. Testfälle werden für die Integration von Datenbank und Benutzeroberfläche geschrieben.

    Unten finden Sie Beispiel-Testfälle.

    • Erstellen Sie eine neue Bestellung mit einem einzelnen Artikel. Stellen Sie sicher, dass die Bestellung in der Datenbank erstellt wurde.
    • Erstellen Sie eine neue Bestellung mit einem einzelnen Artikel. Stellen Sie sicher, dass der für die Bestellung berechnete Preis korrekt ist.
    • Erstellen Sie eine neue Bestellung mit einem einzelnen Artikel. Stellen Sie sicher, dass die Menge des verfügbaren Produkts um den Bestellbetrag geringer ist.
    • Stellen Sie sicher, dass der Status der auf der Benutzeroberfläche angezeigten Bestellung mit dem in der Datenbank übereinstimmt.
    • Stornieren Sie die Bestellung und überprüfen Sie, ob der Status der Bestellung in der Datenbank geändert wurde.
    • Stellen Sie bei der erstmaligen Zahlung sicher, dass die auf der Benutzeroberfläche eingegebenen Zahlungsdetails in der Datenbank gespeichert sind.
    • Überprüfen Sie für die Rückgabe von Zahlungen, ob die Zahlungsdetails in der Datenbank auf der Benutzeroberfläche angezeigt werden.
  3. Service Level. Jeder Dienst wird auf alle Datenbedingungen getestet.

Nachfolgend einige Beispiele.

Nein. Bestelldetails Bestellbedingung
1 Bestellung anlegen. Anzahl der Artikel = 1 Bestellmenge
2 Bestellung anlegen. Anzahl der Artikel> 1 Bestellmenge
3 Bestellnummer der Artikel erstellen = 1 Bestellmenge> Bestellmenge in Datenbank
4 Bestellstatus überprüfen Status in der Datenbank = Aktiv
5 Bestellstatus überprüfen Status in der Datenbank = Versand
6 Bestellstatus überprüfen Status in der Datenbank = Abgebrochen
7 Bestellstatus überprüfen Bestellnummer = ungültig
8 Überprüfen Sie die Produktverfügbarkeit Produktmenge> 0
9 Überprüfen Sie die Produktverfügbarkeit Produktmenge = 0
10 Überprüfen Sie die Produktverfügbarkeit Produkt-ID = ungültig

PHASE 3 - Testausführung

Die Testausführung verwendet einen Bottom-up-Ansatz, dh zuerst werden Tests auf Service-Ebene, dann auf Integrationsebene und zuletzt End-to-End-Tests durchgeführt.

1) Service Level

Betrachten wir, dass das Soapui-Tool zum Testen der Anwendung in Betracht gezogen wird.

Die WSDL und die URL werden im Testfenster von SOAP durchsucht.

Die Anforderung für jeden Dienst wird im Anforderungsfenster angezeigt.

Durch Ändern der Daten gemäß den Service Level-Testfällen werden Anforderungen für jeden Testfall erstellt.

Testfall

Anfrage

Erwartete Antwort

Bestellung anlegen. Stückzahl = 1 Menge auf Bestellung

x2 2

o3251 Erfolgreich

Order.No erstellen. Stückzahl> 1 Menge auf Bestellung

y1 1 y2 3

o3251 Erfolgreich

Bestellnummer erstellen. Stückzahl = 1 Menge auf Bestellung> Menge auf db

x23 200

null Nicht erfolgreich

Überprüfen Sie Order statusStatus on database = Active

o9876

Active Erfolgreich

Überprüfen Sie den BestellstatusStatus in der Datenbank = Versand

o9656

Versand Erfolgreich

Überprüfen Sie den AuftragsstatusBestellungs-ID = Ungültig

y5686

null Nicht erfolgreich

Produktverfügbarkeit prüfenProduktmenge> 0

d34

34 Ja Erfolgreich

Produktverfügbarkeit prüfenProduktmenge = 0

y34

0 no Erfolgreich

Produktverfügbarkeit prüfenProdukt-ID = ungültig

sder

Nicht erfolgreich

2) Integrationsebene

Die Testfälle auf Integrationsebene werden auf der Benutzeroberfläche und der Datenbank ausgeführt.

  • Erstellen Sie eine Bestellung mit einem einzelnen Artikel -
  • Ein Benutzer öffnet die Website.
  • Geht, um eine Bestellung aufzugeben.
  • Wählt ein gültiges Produkt und eine gültige Menge aus und speichert die Bestellung.
  • Eine Meldung, dass die Bestellung erfolgreich aufgegeben wurde, sollte angezeigt werden.
  • Ein Benutzer öffnet die Datenbank und prüft, ob die Details der Bestellung mit den auf der Website eingegebenen übereinstimmen.
3) Ende zu Ende Ebene

Die Geschäftsabläufe und Anwendungsfälle werden auf der Benutzeroberfläche ausgeführt.

  • Erstellen Sie eine Bestellung mit mehreren Artikeln -
  • Ein Benutzer öffnet eine Website.
  • Geht, um eine Bestellung aufzugeben.
  • Erkundigt sich nach einem gültigen Produkt und legt die Menge in den Warenkorb.
  • Andere gültige Produkte werden mit gültigen Mengen hinzugefügt und die Bestellung wird gespeichert. Die Zahlung erfolgt über eine neue Zahlungsmethode und die Bestellung wird aufgegeben.
  • Eine Meldung mit der Aufschrift "Bestellung erfolgreich aufgegeben" sollte angezeigt werden.
  • Ein Tester sollte überprüfen, ob der gesamte Ablauf ohne Datenverzerrung erfolgt.

Fazit:

Durch das Skizzieren der richtigen Strategie für Tests, Ressourcen, Tools und Compliance für einen guten Service können SOA-Tests vollständig und perfekt getestete Anwendungen liefern.