soa testing tutorial
SOA-Test-Tutorial:
In diesem Artikel werden die Testtechniken für eine SOA-Architektur erläutert.
Aktuelle Software ist so vielseitig und anfällig für sich ändernde Benutzererwartungen, dass ein eigenständiges Modell nicht sinnvoll ist.
Hier passt SOA genau als Lösung.
Dies ist der Grund, warum viele Unternehmen den SOA-Ansatz aufgrund seiner Vorteile wie z. Kostensenkung, geschäftliche Flexibilität, einfache Wartung usw. Angesichts des bevorstehenden Marktes voller SOA-Architektur ist es für die modernen Tester erforderlich, sich ein faires Bild von den SOA-Tests zu machen.
informatica Interview Fragen und Antworten für 5 Jahre Erfahrung
In diesem Artikel werden wir die Grundlagen von SOA anhand von Beispielen behandeln.
Dies würde den Lesern eine grundlegende Vorstellung von SOA geben. Darauf würde der Implementierungsansatz der Webdienste folgen. Schließlich werden wir uns mit dem Testprozess befassen, der für ein SOA-Architekturmodell verfolgt werden kann.
Was du lernen wirst:
- Was ist SOA?
- Beispiele für SOA
- Internetdienste
- SOA-Testprozess
- Herausforderungen beim SOA-Testen
- SOA-Testwerkzeuge
- Literatur-Empfehlungen
Was ist SOA?
SOA oder Sevice-Oriented-Architecture ist eine flexible / agile / effiziente Methode zur Integration verschiedener Anwendungen / Dienste, um bestimmte Geschäftsanforderungen zu erfüllen.
- Im Gegensatz zu anderen komplizierten Systemen besteht SOA aus kleineren Komponenten / Diensten / Mikrodiensten, die miteinander verbunden sind, um die Geschäftsanforderungen zu erfüllen.
- Die Dienste sind die Einheiten, die das System vollständig machen, und wenn eine Änderung erforderlich ist, anstatt das gesamte System zu ändern, wird der spezifische Dienst geändert.
- Ein Dienst ist eine Komponente, die eine Aufgabe ausführen kann.
- Diese Architektur ist verkaufsfähiger als das Altsystem, da der Endbenutzer nur die erforderlichen Dienste erhält, um seine Anforderungen zu erfüllen. Er muss nicht das ganze System bekommen.
- Die Dienste / Mikrodienste sind lose gekoppelt, wiederverwendbar und zustandslos, wodurch das System noch robuster wird.
- Dieses Modell ist in Bezug auf Bereitstellung, Entwicklung und Wartung äußerst kosteneffizient.
Beispiele für SOA
Geschäftsanforderungen: Eine Anwendung, bei der sich ein Benutzer basierend auf der Geolocation anmelden und nach Restaurants suchen kann. Laden Sie die Restaurantdetails und das Menü vom Server herunter, sobald die Suche abgeschlossen ist, und schließlich kann eine Zahlung für die Bestellung erfolgen.
Dieser Geschäftsbedarf kann durch die Implementierung von SOA erreicht werden.
Es kann Dienste / Mikrodienste wie folgt geben, um verschiedene Aufgaben auszuführen:
- Während der Anmeldung wird als Dienst 'Authentifizierungsdienst' verwendet.
- Die Suche nach Restaurants würde über den Geo-Locator-Service erfolgen.
- Das Herunterladen des Menüs sollte über den Menü-Downloader-Dienst erfolgen.
- Schließlich würde die Zahlung über den Zahlungsdienst erfolgen.
Jeder der oben genannten Dienste führt etwas Einzigartiges aus, damit das System funktioniert und das liefert, was es tun soll. Wenn ein Kunde nur das Restaurant und seine Speisekarte sehen muss, aber keine Payment Gateway-Schnittstelle benötigt, würde er nur die ersten drei Services kaufen / bereitstellen.
Dies macht die Arbeit für Entwicklung, Bereitstellung, Vertrieb, Wartung und schließlich für den Kunden / Endbenutzer einfach.
Internetdienste
- Dies sind APIs (Application Programming Interfaces), die die Interaktion zwischen verschiedenen Softwareprogrammen erleichtern.
- Es gibt einen Dienstanbieter, der den Dienst im Web hostet. Im Rahmen des Hostings wird eine WSDL vom Anbieter gehostet.
- Wenn der Client eine Anforderungsnachricht an den Dienstanbieter sendet, wird die Kommunikation unter Verwendung der URL / WSDL hergestellt.
- Im folgenden Beispiel hostet der Geolocation-Server einen Webdienst, der vom Dienstanforderer verwendet wird.
SOA-Testprozess
Jedes Produkt, Modell und jede Infrastruktur muss die Testphase durchlaufen, um den Endbenutzer mit einem qualitativ hochwertigen Produkt zufrieden zu stellen. SOA-Tests beschränken sich nicht nur auf das Testen / Testen von Webdienstprotokollen einer Schicht. Dies ist das allgemeine Testen der Architektur und jedes winzigen Teils davon.
Der Testansatz kann dem des normalen Testprozesses ähnlich sein. d.h.
- Anforderungsüberprüfungsprozess
- Testplanung
- Testdesign
- Umgebungs-Setup
- Ausführungsphase
- Berichtsphase
Der SOA-Testprozess umfasst drei Ebenen in der Architektur:
- Service-Verbraucher
- Prozessschichten
- Service-Schichten
Mit dem gleichen Beispiel oben können wir unsere Ebenen wie folgt haben:
- Die Service-Consumer-Schicht hilft bei der Interaktion mit dem Verbraucher. Dies hilft beim Lesen der Eingaben des Endbenutzers und beim Zurückgeben der entsprechenden Antwort für die empfangene Anforderung. Mit anderen Worten, dies hat im Grunde die UI-Oberfläche.
- Dies ist die Ebene, die sich auf die Implementierungsfront konzentriert. Diese Ebene in unserem Beispiel verfügt über Authentifizierungsmethoden, die Erstellung eines Benutzers usw.
- Service-Layer sind die Geschäftsfunktionen in Bezug auf Services. Alle Dienste, die tatsächlich aufgerufen werden, wenn eine bestimmte Aufgabe ausgeführt wird, befinden sich in dieser Schicht.
Die Prüfung kann grundsätzlich in 4 verschiedene Stufen unterteilt werden;
Tier # 1
1) Service Level Testing:
- Jeder am System beteiligte Dienst wird einzeln anhand einer Anforderungs- und Antwortmethode getestet.
- Dieser Test ist obligatorisch und sehr wichtig, um mit anderen Testprozessen fortzufahren.
2) Funktionsprüfung:
- Der Test wird für Dienste durchgeführt, die ihren geschäftlichen Anforderungen entsprechen, um festzustellen, ob die empfangene Antwort korrekt ist.
- Die Geschäftsanforderungen werden zuerst in die Testfälle konvertiert und die Anforderungsanweisungen werden gebildet.
- Anschließend werden die Anforderungsanweisungen verarbeitet, um festzustellen, ob die erhaltenen Antworten korrekt sind.
- Bei ungültigen Eingabedaten sollte der richtige Fehlercode ausgegeben oder eine richtige Fehlermeldung ausgelöst werden.
- Die Formate der Antwort sowie die negativen Szenarien müssen ausgeführt werden.
3) Sicherheitstests:
- Wenn es um einen Webdienst geht, spielen Sicherheitstests eine Schlüsselrolle für den Erfolg des Testprozesses.
- Authentifizierungsgateways, Zahlungsgateways usw. sollten beim Analysieren der Daten verschlüsselt werden.
- Wenn es um XML geht, sollten Schwachstellen wie CSRF und SQL Injection überprüft werden.
4) Leistungstests:
- In der Architektur verwendete Dienste werden gehostet, sodass viele andere Anwendungen davon Gebrauch machen können. Leistungstests stellen die Glaubwürdigkeit dieser Dienste sicher.
- Das Testen der Dienste sollte durchgeführt werden, um die folgenden Ergebnissätze herauszufinden;
- Um die Stabilität der Dienste zu bestimmen.
- Überprüfung der Skalierbarkeit der Dienste.
- Wartungsverhalten unter Spitzenlastbedingungen
- So ermitteln Sie die Antwortzeiten für alle Dienste
Rang 2
1) Prozesstests:
- Dieser Prozess beinhaltet das Testen verschiedener Geschäftsprozesse.
- Dies sollte die Integrationsszenarien der Webdienste und -anwendungen umfassen, die die Geschäftsanforderungen abdecken
- Die Verwendung von Simulatoren sollte erfolgen, um Probeneingabedaten zu generieren, und die Validierung sollte für die jeweiligen Ausgaben erfolgen.
- Der Datenfluss von verschiedenen Ebenen sollte durchgeführt werden, um ein reibungsloses Funktionieren des Systems bei seiner Integration zu gewährleisten.
Stufe 3
1) End-to-End-Tests:
Beste kostenlose Software zur Optimierung der PC-Leistung
- Diese Phase soll die Geschäftsanforderungen sowohl funktional als auch nicht funktional validieren.
- Die Benutzeroberfläche der Anwendung wird validiert.
- Der Geschäftsprozess wird getestet.
- Der End-to-End-Datenfluss wird in dieser Phase validiert.
- Die Arbeit mit allen Diensten, wenn die Dienste ineinander integriert sind, wird validiert.
Stufe 4
1) Regressionstests:
- Die Stabilität des Systems in inkrementellen Build-Releases wird durch diese Tests überprüft.
- Dies kann entweder durch manuelles Testen / Automatisierungstest erreicht werden.
Herausforderungen beim SOA-Testen
Jemand sagte zu Recht: „Größer das Netz; Größer ist das Chaos! “. SOA kann ein sehr komplexes Kind werden, das nach Aufmerksamkeit hungert.
Mit anderen Worten, bei so vielen winzigen Teilen, die die SOA-Architektur ausmachen, wird es zu einer wirklich schwierigen Aufgabe, sie in Testing zu zertifizieren.
- Es ist schwierig, die Testumgebungen zu simulieren, um den Testprozess voranzutreiben.
- Die am Modell beteiligten Produkte können von derselben Technologie / demselben Anbieter sein. Sie können aber auch unterschiedlich sein. Weitere Probleme?
- Testkombinationen schießen mit der Anzahl der beteiligten Services / Komponenten nach oben.
- Komplexität im Modell
- Die Reproduktion / Prüfung von Problemen ist eine schwierige Aufgabe.
- Im Gegensatz zu anderen Modellen sollte der Hauptfokus des Testens eher auf dem Geschäftsumfang als auf dem Service und seinen Funktionen liegen.
SOA-Testwerkzeuge
Es gibt zahlreiche Anwendungen für SOA-Tests. SOA-Testwerkzeuge werden aufgrund ihrer genauen Ergebnisse und besseren Produktivität ausgewählt.
- SoapUI: Dies ist ein kostenloses Tool zum Testen von Webdiensten. SoapUI ist in der Lage, Funktionstests, Leistungstests und Lasttests durchzuführen
- Apache Jmeter: Dies ist auch ein Dienstprogramm OPEN SOURCE, mit dem die Leistung des SOAP-Aufrufs analysiert wird.
- JProfiler: Dies wird verwendet, um den Speicherverlust zu stoppen oder zu erkennen, Leistungsengpässe zu finden usw.
- HP Servicetest: Dies ist in HP QC integriert. Dies ist ein Funktionstest-Tool, das auch UI- und Shared-Service-Tests unterstützt
Durch diesen Artikel haben wir die Singularität des Modells verstanden. Dies unterscheidet sich stark vom Legacy-Modell und der Artikel gibt eine gute Vorstellung davon. Dieser Artikel beleuchtet auch das SOA-Verfahren und die Möglichkeiten, mit dem Testen fortzufahren.
Über den Autor: Dies ist ein Gastbeitrag von Subhasis. Er arbeitet als Teamleiter mit über 8 Jahren Unternehmenserfahrung für Fortune 500-IT-Unternehmen.
Veröffentlichen Sie Ihre Fragen / Kommentare zu SOA-Tests unten.
Alles Gute!
Literatur-Empfehlungen
- Beste Software-Test-Tools 2021 (QA Test Automation Tools)
- Testen von Primer eBook Download
- Tutorial für zerstörende Tests und zerstörungsfreie Tests
- Funktionstests gegen nichtfunktionale Tests
- Ausführliche Eclipse-Tutorials für Anfänger
- Top 15 SOA-Testwerkzeuge für Tester
- Tutorial zum paarweisen Testen oder Testen aller Paare mit Tools und Beispielen
- Tutorial zum WAVE Accessibility Testing Tool