Was ist SOA-Test? Tutorial mit Beispiel

Was ist SOA-Test?

SOA (Serviceorientiert). ArchiBeim Architekturtesten handelt es sich um das Testen des SOA-Architekturstils, bei dem die Anwendungskomponenten so konzipiert sind, dass sie über Kommunikationsprotokolle (normalerweise über ein Netzwerk) kommunizieren.

Was ist SOA?

SOA ist eine Methode zur Integration von Geschäftsanwendungen und -prozessen, um den Geschäftsanforderungen gerecht zu werden.

Im Software Engineering sorgt SOA für Agilität und Flexibilität bei Geschäftsprozessen. Die Änderungen am Prozess oder an der Anwendung können auf eine bestimmte Komponente gerichtet werden, ohne dass sich dies auf das gesamte System auswirkt.

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

Was ist Dienst?

SOA-Service

  • Dienste können eine funktionale Einheit einer Anwendung oder eines 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. Wann immer eine Zahlung erfolgen muss, ruft die E-Commerce-Website den Payment Gateway-Dienst auf bzw. fordert ihn an. Nachdem die Zahlung auf einem Gateway erfolgt ist, wird eine Antwort an die E-Commerce-Website gesendet.
  • Die Dienstleistungen sind einfach zu montieren und die Komponenten lassen sich leicht neu 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.
  • Dienste werden eher durch die Geschäftsfunktion definiert, die sie ausführen, als durch Codeblöcke.

Web Services

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

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

SOA-Webdienste

SOA-Webdienste

  1. Der Dienstanbieter veröffentlicht den Dienst im Internet.
  2. Der Client sucht in der Web Service Registry nach einem bestimmten Webdienst
  3. Es werden eine URL und die WSDL für den erforderlichen Webdienst zurückgegeben. Mithilfe der WSDL und der 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 aufgebaut.
    Es wird eine SOAP-Nachricht erstellt, um den Anbieter anzuweisen, die erforderliche Webdienstlogik aufzurufen.
  5. Die vom Anbieter erhaltene 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 der Startseite einer Website und einer Suchmaschine werden alltägliche Wetterberichte angezeigt. Anstatt den Wetterberichtsabschnitt komplett zu programmieren, kann ein Wetterberichtsdienst von einem Anbieter gekauft und in die Seiten integriert werden.

Beispiel SOA Web Servicesg

SOA-Tests

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

SOA-Tests

SOA-Tests sollten sich auf drei Systemschichten konzentrieren

Diensteschicht

Diese Schicht besteht aus den Diensten, Diensten, die von einem System bereitgestellt werden, das von Geschäftsfunktionen abgeleitet ist.

Beispielsweise -

Betrachten Sie eine Wellness-Website, die Folgendes umfasst:

  1. Gewichts-Tracker
  2. Blutzucker-Tracker
  3. Blutdruck-Tracker

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

  • Gewichts-Tracker-Service
  • Blutzucker-Tracker-Dienst
  • Blutdruck-Tracker-Dienst
  • Anmeldedienst

Prozessschicht

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

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

Der Schwerpunkt dieser Ebene liegt auf Benutzeroberflächen und Prozessen.

Im Vordergrund steht die Benutzeroberfläche des Gewichtstrackers und seine Integration in die Datenbank.

Die folgenden Funktionen werden berücksichtigt

  1. Hinzufügen neuer Daten
  2. Bearbeiten vorhandener Daten
  3. Neuen Tracker erstellen
  4. Löschen von Daten

Verbraucherschicht

Diese Schicht besteht hauptsächlich aus Benutzeroberflächen.

Verbraucherschicht

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

  1. Service Level
  2. Schnittstellenebene
  3. End-to-End-Level
  • Für das Testdesign wird der Top-Down-Ansatz verwendet.
  • Für die Testausführung wird der Bottom-Up-Ansatz verwendet.

Strategie für SOA-Tests

Testplanungsansatz,

  • Die SOA-Tester sollten die gesamte Architektur der Anwendung verstehen.
  • Die Anwendung muss in unabhängige Dienste unterteilt werden (Dienst, der über eine eigene Anforderungs- und Antwortstruktur verfügt und für die Antwortbildung nicht von einem anderen Dienst abhängig ist).
  • Die Anwendungsstruktur muss in drei Komponenten neu organisiert werden: Daten, Dienste und Front-End-Anwendungen.
  • Alle Komponenten müssen sorgfältig analysiert und Geschäftsszenarien entworfen werden.
  • Die Geschäftsszenarien sollten in allgemeine Szenarien und anwendungsspezifische Szenarien unterteilt werden.
  • A Rückverfolgbarkeitsmatrix sollten vorbereitet werden und alle Testfälle sollten auf Geschäftsszenarien zurückgeführt werden.

Testausführungsansatz

  • Jede Servicekomponente sollte getestet werden.
  • Integrationstests Die Überprüfung der Servicekomponenten sollte durchgeführt werden, um den Datenfluss durch die Services und die Datenintegrität zu validieren.
  • Systemtest Es sollte eine Analyse des gesamten Modells durchgeführt werden, um den Datenfluss zwischen Front-End-Anwendung und Datenbank zu validieren.
  • Performance Testing Dies sollte für eine Feinabstimmung und optimale Leistung erfolgen.

SOA-Testmethoden

1) Geschäftsszenariogesteuertes datenbasiertes Testen,

  • Verschiedene geschäftliche Aspekte im Zusammenhang mit dem System sollten analysiert werden.
  • Es sollten Szenarien entwickelt werden, die auf der Integration von basieren
  • Verschiedene Web-Services der Bewerbung
  • Webdienste und Anwendung.
  • Die Dateneinrichtung sollte auf der Grundlage der oben genannten Szenarien erfolgen.
  • Die Dateneinrichtung sollte so erfolgen, dass sie auch End-to-End-Szenarien abdeckt.

2) Stubs

  • Zum Testen von Diensten werden Dummy-Schnittstellen erstellt.
  • Über diese Schnittstellen können verschiedene Eingaben bereitgestellt und die Ausgaben validiert werden.
  • Wenn eine Anwendung eine Schnittstelle zu einem externen Dienst verwendet, der nicht getestet wird (Drittanbieterdienst), kann während des Integrationstests ein Stub erstellt werden.

3) Regressionstests

  • Regressionstests Bei mehreren Releases sollte eine Optimierung der Anwendung erfolgen, um die Stabilität und Verfügbarkeit der Systeme sicherzustellen.
  • Es wird eine umfassende Regressionstestsuite erstellt, die die Dienste abdeckt, die einen wichtigen Teil der Anwendung bilden.
  • Diese Testsuite kann in mehreren Versionen des Projekts wiederverwendet werden.

4) Service-Level-Tests

Beim Service Level Testing wird die Komponente auf Funktionalität, Sicherheit, Leistung und Interoperabilität geprüft.

Jeder einzelne Dienst muss zunächst unabhängig getestet werden.

5) Funktionsprüfung

Für jeden Dienst sollten Funktionstests durchgeführt werden

  • Stellen Sie sicher, dass der Dienst auf jede Anfrage die richtige Antwort liefert.
  • Für Anfragen mit ungültigen Daten, fehlerhaften Daten usw. werden korrekte Fehler empfangen.
  • Überprüfen Sie jede Anforderung und Antwort auf jeden einzelnen Vorgang, den der Dienst zur Laufzeit ausführen muss.
  • Validieren 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

Das Testen der Sicherheit des Webservices ist ein wichtiger Aspekt beim Service-Level-Testen 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 DigiUnterschriften auf den Dokumenten
  • Authentifizierung und Autorisierung
  • SQL-Injection, Malware, XSS, CSRF und andere Schwachstellen sollen im XML getestet werden.
  • Denial-of-Service-Angriffe

7) Leistungstests

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

Folgende Faktoren werden bei der Prüfung berücksichtigt:

  • Leistung und Funktionalität des Dienstes müssen unter hoher Belastung getestet werden.
  • Die Leistung des Dienstes muss sowohl beim Arbeiten einzeln als auch innerhalb der Anwendung, mit der er gekoppelt ist, verglichen werden.
  • Es sollten Auslastungstests des Dienstes durchgeführt werden
  • um die Reaktionszeit zu überprüfen
  • um nach Engpässen zu suchen
  • um die Auslastung von CPU und Speicher zu überprüfen
  • Skalierbarkeit vorherzusagen

8) Prüfung der Integrationsebene

  • Service-Level-Tests stellen nur die ordnungsgemäße Funktion der einzelnen Dienste sicher, sie garantieren nicht die Funktion der gekoppelten Komponenten.
  • Integrationstests werden durchgeführt und konzentrieren sich hauptsächlich auf die Schnittstellen.
  • Diese Phase deckt alle möglichen Geschäftsszenarien ab.
  • Der nichtfunktionale Test der Anwendung sollte in dieser Phase 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 validieren.

9) End-to-End-Tests

In dieser Phase wird sichergestellt, dass die Anwendung die Geschäftsanforderungen sowohl funktional als auch nicht funktional erfüllt.

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

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

Herausforderungen beim SOA-Testen

  • Fehlende Schnittstellen für Dienste
  • Der Testprozess erstreckt sich über mehrere Systeme und schafft somit komplexe Datenanforderungen
  • Die Anwendung ist eine Sammlung verschiedener Komponenten, die dazu neigt, sich zu ändern. Der Bedarf an Regressionstests ist häufiger.
  • Aufgrund der mehrschichtigen Architektur ist es schwierig, Defekte zu isolieren.
  • Da der Dienst in verschiedenen Schnittstellen verwendet wird, ist es schwierig, die Auslastung 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, bringen Sicherheitstests ihre eigenen Probleme mit sich. Die Validierung der Authentifizierung und Autorisierung ist ziemlich schwierig.

SOA-Testtools

Es gibt viele SOA-Testtools auf dem Markt, 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-Funktionstesttool für Dienste 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 verwendet werden, Automatisierungstestsund Sicherheitstests
  • Stubs können von MockServices erstellt werden
  • Webdienstanfragen und -tests können automatisch über den Webdienstclient generiert werden.
  • Verfügen über integrierte Berichtstools
  • 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 Regressions-, Integrations-, 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 Funktionstesttool, 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 Diensten 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, XML-Technologien.
  • Funktions-, Unit-, 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:

Auftragsabwicklung

Auftragsabwicklung

PHASE 1

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

Betrachten wir im Folgenden die Dienste in der Anwendung.

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

Geschäftsfunktionen sind dieselben wie die Funktionen der Website.

Hinweis: Das Teststrategiedokument würde die Liste des Dienstes und der Funktionen enthalten, die getestet werden müssen.

PHASE 2

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

  1. End-to-End-Level. Die Testfälle werden für jeden Geschäftsanwendungsfall und Ablauf geschrieben. Nachfolgend finden Sie Beispiele 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 Bestellmenge < verfügbare Menge.
    • Erstellen Sie eine Bestellung mit dem verfügbaren Produkt mit Bestellmenge > verfügbare Menge.
    • Erstellen Sie eine Bestellung mit mehreren Artikeln
    • Eine Bestellung vollständig stornieren.
    • Bestellung teilweise stornieren.
  2. Integrationsebene. Für die Integration von Datenbank und Benutzeroberfläche werden Testfälle geschrieben. Nachfolgend finden Sie Beispieltestfälle.

    • Erstellen Sie eine neue Bestellung mit einem einzelnen Artikel. Stellen Sie sicher, dass die Bestellung in der Datenbank erstellt wird.
    • Erstellen Sie eine neue Bestellung mit einem einzelnen Artikel. Überprüfen Sie, ob 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 Bestellwert geringer ist.
    • Überprüfen Sie, ob der auf der Benutzeroberfläche angezeigte Status der 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.
    • Überprüfen Sie bei der ersten Zahlung, ob die auf der Benutzeroberfläche eingegebenen Zahlungsdetails in der Datenbank gespeichert sind.
    • Überprüfen Sie bei der 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 finden Sie einige Beispiele.

Nein. Bestelldetails Bestellbedingung
1 Bestellung anlegen. Anzahl der Artikel = 1 Bestellmenge < Menge in der Datenbank
2 Bestellung anlegen. Anzahl der Artikel > 1 Bestellmenge < Menge in der Datenbank.
3 Bestellnummer der Artikel erstellen = 1 Bestellmenge > Menge in der Datenbank
4 Bestellstatus überprüfen Status der Datenbank = Aktiv
5 Bestellstatus überprüfen Status in der Datenbank = Ausgeliefert
6 Bestellstatus überprüfen Status in der Datenbank = Abgebrochen
7 Bestellstatus überprüfen Bestell-ID = 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 – Testdurchführung

Bei der Testausführung wird ein Bottom-up-Ansatz verwendet, d. h. zuerst wird der Service-Level-Test durchgeführt, dann der Integrations-Level und schließlich der Test End-to-End-Tests.

1) Serviceniveau

Lassen Sie uns das bedenken Soapui Das Tool wird zum Testen der Anwendung in Betracht gezogen.

Die wsdl und URL werden in das Testfenster von SOAP gebrowst.

Die Anfrage für jeden Dienst wird im Anfragefenster angezeigt.

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

Testfall PREISANFRAGE (Request) Erwartete Antwort
Bestellung anlegen. Anzahl der Artikel = 1 Bestellmenge < Bestellmenge x2 2 o3251 Erfolgreich
Bestellnr. anlegen Anzahl der Artikel > 1 Bestellmenge < Bestellmenge y1 1 y2 3 o3251 Erfolgreich
Bestellnr. erstellen der Artikel = 1 Bestellmenge > Menge auf DB x23 200 Null Erfolglos
Überprüfen Sie den Bestellstatus. Status in der Datenbank = Aktiv o9876 Aktiv Erfolgreich
Überprüfen Sie den Bestellstatus. Status in der Datenbank = Versandt o9656 Ausgeliefert Erfolgreich
Überprüfen Sie den Bestellstatus. Bestell-ID = Ungültig y5686 Null Erfolglos
Produktverfügbarkeit prüfenProduktmenge >0 d34 34 Ja Erfolgreich
Produktverfügbarkeit prüfenProduktmenge =0 y34 0 NEIN Erfolgreich
Produktverfügbarkeit prüfenProdukt-ID = ungültig sder Erfolglos
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.
  • Es sollte eine Meldung angezeigt werden, dass die Bestellung erfolgreich aufgegeben wurde.
  • Ein Benutzer öffnet die Datenbank und überprüft, ob die Bestelldetails mit denen übereinstimmen, die auf der Website eingegeben wurden.
3) End-to-End-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 einer gültigen Menge und fügt es dem Warenkorb hinzu.
  • Weitere 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.
  • Es sollte die Meldung „Bestellung erfolgreich aufgegeben“ angezeigt werden.
  • Ein Tester sollte überprüfen, ob der gesamte Ablauf ohne Datenverzerrungen erfolgt.

Fazit

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