Was ist System Integration Testing?
System Integration Testing (SIT) ist das übergreifende Testen des gesamten Systems, das sich aus vielen Subsystemen zusammensetzt. Das Hauptziel von SIT ist es, sicherzustellen, dass alle Softwaremodul-Abhängigkeiten ordnungsgemäß funktionieren und die Datenintegrität zwischen den einzelnen Modulen des Gesamtsystems erhalten bleibt.
SUT (System Under Test) kann aus Hardware, Datenbank, Software, einer Kombination aus Hardware und Software oder einem System, das menschliche Interaktion erfordert (HITL – Human in the Loop Testing), bestehen.
Aus dem Kontext des Software-Engineerings und des Software-Testens kann SIT als ein Testverfahren betrachtet werden, das das Zusammenwirken des Softwaresystems mit anderen prüft.
SIT setzt voraus, dass mehrere zugrundeliegende integrierte Systeme bereits einem Systemtest unterzogen wurden und diesen bestanden haben. SIT testet dann die erforderlichen Interaktionen zwischen diesen Systemen als Ganzes. Die Ergebnisse des SIT werden an den UAT (User Acceptance Testing) weitergegeben.
Notwendigkeit von Systemintegrationstests
Die Hauptfunktion des SIT ist es, Abhängigkeiten zwischen verschiedenen Systemkomponenten zu testen, und daher sind Regressionstests ein wichtiger Teil des SIT.
Bei Verbundprojekten ist SIT ein Teil des STLC (Software Testing Lifecycle). In der Regel wird eine Pre-SIT-Runde vom Softwareanbieter durchgeführt, bevor der Kunde seine eigenen SIT-Testfälle ausführt.
In den meisten Organisationen, die in IT-Projekten nach dem agilen Sprint-Modell arbeiten, wird vor jedem Release eine SIT-Runde vom QA-Team durchgeführt. Die im SIT gefundenen Fehler werden an das Entwicklungsteam zurückgeschickt, das dann an der Behebung arbeitet.
Das MVP (Minimum Viable Product) aus dem Sprint wird erst freigegeben, wenn es das SIT durchlaufen hat.
SIT ist erforderlich, um die Fehler aufzudecken, die bei der Interaktion zwischen den integrierten Teilsystemen auftreten.
Es gibt mehrere Komponenten, die im System verwendet werden und die nicht einzeln getestet werden können. Selbst wenn die Einheit einzeln getestet wird, besteht die Möglichkeit, dass sie bei der Kombination im System versagt, da es viele Probleme gibt, die auftreten, wenn Subsysteme miteinander interagieren.
Daher ist SIT sehr wichtig, um die Fehler aufzudecken und zu beheben, bevor das System beim Benutzer eingesetzt wird. SIT deckt die Fehler in einem frühen Stadium auf und spart so Zeit und Kosten für die spätere Behebung. Es hilft Ihnen auch, früher ein Feedback über die Akzeptanz des Moduls zu erhalten.
Die Granularität von SIT
SIT kann auf drei verschiedenen Granularitätsebenen durchgeführt werden:
(i) Intra-System Testing: Dies ist eine niedrige Ebene von Integrationstests, die darauf abzielt, die Module zu einem einheitlichen System zu verschmelzen.
(ii) Inter-System-Tests: Dies ist ein High-Level-Test, bei dem es darum geht, unabhängig getestete Systeme miteinander zu verbinden.
(iii) Paarweises Testen: Hier werden jeweils nur zwei miteinander verbundene Subsysteme des Gesamtsystems getestet. Damit soll sichergestellt werden, dass die beiden Teilsysteme gut funktionieren, wenn sie miteinander kombiniert werden, vorausgesetzt, dass die anderen Teilsysteme bereits gut funktionieren.
Wie führt man Systemintegrationstests durch?
Die einfachste Art, SIT durchzuführen, ist die datengesteuerte Methode. Sie erfordert einen minimalen Einsatz von Software-Testwerkzeugen.
Zuerst findet ein Datenaustausch (Datenimport und -export) zwischen den Systemkomponenten statt und dann wird das Verhalten jedes Datenfeldes innerhalb der einzelnen Schicht untersucht.
Wenn die Software integriert ist, gibt es drei Hauptzustände des Datenflusses, wie unten erwähnt:
#1) Datenzustand innerhalb der Integrationsschicht
Die Integrationsschicht fungiert als Schnittstelle zwischen dem Datenimport und -export. Die Durchführung von SIT in dieser Schicht erfordert einige Grundkenntnisse über bestimmte Technologien wie Schema (XSD), XML, WSDL, DTD und EDI.
Die Leistung des Datenaustauschs kann in dieser Schicht durch die folgenden Schritte untersucht werden:
- Validieren Sie die Dateneigenschaften innerhalb dieser Schicht gegen BRD/ FRD/ TRD (Business requirement document/ Functional requirement document/ Technical requirement document).
- Überprüfen Sie die Web-Service-Anfrage anhand von XSD und WSDL.
- Lassen Sie einige Unit-Tests laufen und validieren Sie die Daten-Mappings und -Anfragen.
- Prüfen Sie die Middleware-Protokolle.
#2) Datenzustand innerhalb der Datenbank-Schicht
Die Durchführung von SIT in dieser Schicht erfordert grundlegende Kenntnisse von SQL und Stored Procedures.
Die Leistung des Datenaustauschs in dieser Schicht kann anhand der folgenden Schritte überprüft werden:
- Prüfen Sie, ob alle Daten aus der Integrationsschicht erfolgreich in der Datenbankschicht angekommen sind und festgeschrieben wurden.
- Validieren Sie die Tabellen- und Spalteneigenschaften anhand von BRD/ FRD/ TRD.
- Validieren Sie die in der Datenbank angewendeten Beschränkungen und Datenvalidierungsregeln gemäß den Geschäftsspezifikationen.
- Prüfen Sie gespeicherte Prozeduren auf verarbeitete Daten.
- Prüfen Sie Serverprotokolle.
#3) Datenzustand innerhalb der Anwendungsschicht
SIT kann in dieser Schicht durch die folgenden Schritte durchgeführt werden:
- Prüfen Sie, ob alle erforderlichen Felder in der Benutzeroberfläche sichtbar sind.
- Führen Sie einige positive und negative Testfälle aus und validieren Sie die Dateneigenschaften.
Hinweis: Es kann viele Kombinationen geben, die dem Datenimport und Datenexport entsprechen. Sie müssen SIT für die besten Kombinationen unter Berücksichtigung der Ihnen zur Verfügung stehenden Zeit durchführen.
Systemtest vs. Systemintegrationstest
Unterschiede zwischen Systemtest und SIT:
SIT (System Integration Testing) | System Testing | |
---|---|---|
SIT wird hauptsächlich durchgeführt, um zu prüfen, wie einzelne Module miteinander interagieren, wenn sie in ein Gesamtsystem integriert werden. | Systemtests werden hauptsächlich durchgeführt, um zu prüfen, ob das gesamte System wie erwartet in Bezug auf die spezifizierten Anforderungen funktioniert. | |
Sie werden nach den Unit-Tests durchgeführt und werden jedes Mal durchgeführt, wenn ein neues Modul zum System hinzugefügt wird. | Sie werden auf der letzten Ebene durchgeführt, d. h. nach Abschluss der Integrationstests.d. h. nach Abschluss der Integrationstests und kurz vor der Auslieferung des Systems für den UAT. | |
Es ist ein Low-Level-Test. | Es ist ein High-Level-Test. | |
SIT-Testfälle konzentrieren sich auf die Schnittstelle zwischen den Systemkomponenten. | Testfälle konzentrieren sich in diesem Fall auf die Simulation der realen Szenarien. |
System Integration Testing Vs User Acceptance Testing
Hier ist der Unterschied zwischen SIT und UAT:
SIT (System Integration Testing) | UAT (User Acceptance Testing) |
---|---|
Dieses Testen erfolgt aus der Perspektive der Schnittstellen zwischen Modulen. | Dieses Testen ist aus der Perspektive der Benutzeranforderungen. |
SIT wird von Entwicklern und Testern durchgeführt. | UAT wird von Kunden und Endbenutzern durchgeführt. |
Erfolgt nach den Unit-Tests und vor den Systemtests. | Dies ist die letzte Stufe der Tests und erfolgt nach den Systemtests. |
Im Allgemeinen beziehen sich die beim SIT gefundenen Probleme auf den Datenfluss, den Kontrollfluss, usw. | Die Probleme, die im UAT gefunden werden, sind im Allgemeinen die Funktionen, die nicht gemäß den Benutzeranforderungen funktionieren. |
Das folgende Bild über die Testebenen würde Ihnen den Fluss vom Unit-Test zum UAT verdeutlichen:
SIT-Beispiel
Lassen Sie uns annehmen, dass ein Unternehmen eine Software zum Speichern der Kundendaten verwendet.
Diese Software hat zwei Bildschirme im UI – Screen 1 & Screen 2, und sie hat eine Datenbank. Die in Screen 1 und Screen 2 eingegebenen Details werden in die Datenbank eingegeben. Ab jetzt ist das Unternehmen mit dieser Software zufrieden.
Nach ein paar Jahren stellt das Unternehmen jedoch fest, dass die Software nicht den Anforderungen entspricht und es Bedarf an einer Verbesserung gibt. Daher entwickelte man einen Screen 3 und eine Datenbank. Nun wird dieses System mit Screen 3 und einer Datenbank in die ältere/bestehende Software integriert.
Nun wird der Test, der nach der Integration am gesamten System durchgeführt wird, Systemintegrationstest genannt. Hier wird die Koexistenz eines neuen Systems mit einem bestehenden System getestet, um sicherzustellen, dass das gesamte integrierte System einwandfrei funktioniert.
SIT-Techniken
Im Wesentlichen gibt es 4 Ansätze für die Durchführung von SIT:
- Top-Down-Ansatz
- Bottom-up-Ansatz
- Sandwich-Ansatz
- Big Bang-Ansatz
Der Top-Down-Ansatz und der Bottom-up-Ansatz sind eine Art inkrementeller Ansätze. Beginnen wir zunächst mit dem Top-Down-Ansatz.
#1) Top-Down-Ansatz:
Bei diesem Ansatz beginnt das Testen nur mit dem obersten Modul einer Anwendung, d.h. dem UI, das wir als Testtreiber bezeichnen.
Die Funktionalität der darunter liegenden Module wird mit Stubs simuliert. Das oberste Modul wird nach und nach mit den untergeordneten Modul-Stubs integriert und später wird die Funktionalität getestet.
Nach jedem Test wird der Stub durch das echte Modul ersetzt. Die Module können entweder in der Breite (breadth-first) oder in der Tiefe (depth-first) integriert werden. Der Test wird fortgesetzt, bis die gesamte Anwendung gebaut ist.
Der Vorteil dieses Ansatzes ist, dass keine Treiber benötigt werden und die Testfälle in Bezug auf die Funktionalität des Systems spezifiziert werden können.
Die größte Herausforderung bei dieser Art von Ansatz ist die Abhängigkeit von der Verfügbarkeit der Funktionalität der Module auf niedrigerer Ebene. Es kann zu einer Verzögerung der Tests kommen, bis die echten Module durch Stubs ersetzt sind. Auch das Schreiben von Stubs ist schwierig.
#2) Bottom-up-Ansatz:
Dabei werden die Einschränkungen des Top-down-Ansatzes beseitigt.
Bei dieser Methode werden zunächst die Module der untersten Ebene zu Clustern zusammengefasst. Diese Cluster dienen als Teilfunktion der Anwendung. Dann wird ein Treiber erstellt, der die Ein- und Ausgabe der Testfälle verwaltet. Danach wird der Cluster getestet.
Wenn der Cluster getestet ist, wird der Treiber entfernt und der Cluster mit der nächsthöheren Ebene kombiniert. Dieser Prozess geht weiter, bis die gesamte Anwendungsstruktur erreicht ist.
Bei diesem Ansatz sind keine Stubs erforderlich. Er wird vereinfacht, wenn die Verarbeitung nach oben wandert und der Bedarf an Treibern reduziert wird. Dieser Ansatz ist empfehlenswert für die Durchführung von SIT für objektorientierte Systeme, Echtzeitsysteme und Systeme mit strengen Leistungsanforderungen.
Die Einschränkung dieses Ansatzes besteht jedoch darin, dass das wichtigste Subsystem, d.h. die Benutzeroberfläche, als letztes getestet wird.
#3) Sandwich-Ansatz:
Hier werden die oben besprochenen Top-Down- und Bottom-Up-Ansätze miteinander kombiniert.
Das System wird als dreischichtig wahrgenommen – die mittlere Schicht, die die Zielschicht ist, eine Schicht oberhalb des Ziels und eine Schicht unterhalb des Ziels. Das Testen erfolgt in beide Richtungen und konzentriert sich auf die Zielschicht, die sich in der Mitte befindet, wie in der folgenden Abbildung dargestellt.
Sandwich-Teststrategie
Ein Vorteil dieses Ansatzes ist, dass die obere und die untere Schicht des Systems parallel getestet werden können. Die Einschränkung dieses Ansatzes besteht jedoch darin, dass die einzelnen Teilsysteme vor der Integration nicht vollständig getestet werden.
Um diese Einschränkung zu beseitigen, haben wir den Sandwich-Test modifiziert, bei dem die Integration der oberen, mittleren und unteren Schicht mit Hilfe von Stubs und Treibern parallel getestet wird.
#4) Big-Bang-Ansatz:
Bei diesem Ansatz wird die Integration durchgeführt, sobald alle Module der Anwendung vollständig fertig sind. Das Testen erfolgt nach der Integration aller Module, um zu prüfen, ob das integrierte System funktioniert oder nicht.
Bei diesem Ansatz ist es schwierig, die Ursache des Problems zu finden, da im Gegensatz zu inkrementellen Tests alles auf einmal integriert wird. Dieser Ansatz wird im Allgemeinen gewählt, wenn nur eine Runde SIT erforderlich ist.
Abschluss
In diesem Artikel haben wir gelernt, was Systemintegrationstests (SIT) sind und warum es wichtig ist, sie durchzuführen.
Wir haben die Kernkonzepte, Techniken, Ansätze und Methoden verstanden, die bei der Durchführung von SIT beteiligt sind. Wir sind auch durchgegangen, wie SIT sich von UAT und Systemtests unterscheidet.
Hoffentlich hat Ihnen dieser ausgezeichnete Artikel gefallen!!!