Was ist Integration Testing?

Zwei Entwickler untersuchen Code auf einem Computerbildschirm

Autoren

Phill Powell

Staff Writer

IBM Think

Ian Smalley

Staff Editor

IBM Think

Was ist Integration Testing?

Integration Testing ist ein Softwaretestverfahren, bei dem verschiedene Komponenten oder Module zusammengeführt und getestet werden, um zu beurteilen, wie gut sie zusammenarbeiten. Integration testing zielt darauf ab, sicherzustellen, dass die zusammengesetzten Teile erfolgreich miteinander kommunizieren und interagieren können.

Das Konzept des Integration Testing wirft mehrere Fragen auf. Die erste Frage ist, ob Integration Testing notwendig ist. Die Antwort darauf hängt zumindest teilweise vom jeweiligen Unternehmen ab. Kleinere Unternehmen mit begrenzter öffentlicher Interaktion können von der Notwendigkeit von Integrationstests ausgenommen werden.

Für jedes Unternehmen, das intensiv mit der Öffentlichkeit zusammenarbeitet, wird Integration Testing jedoch immer wichtiger. Und wenn es sich um ein Technologieunternehmen handelt, das neue Softwareanwendungen und Tools auf den Markt bringt, ist Integration Testing noch wichtiger.

Ein Sprichwort besagt, dass man für den ersten Eindruck keine zweite Chance bekommt. Das gilt auch für moderne Unternehmen. Die meisten von ihnen versuchen verzweifelt, Nutzer zu gewinnen, sie in regelmäßige Abonnenten oder Konsumenten zu verwandeln und eine erfolgreiche und lukrative Beziehung zu ihnen aufrechtzuerhalten. Solche Unternehmen können sich keine Fehltritte leisten, wenn sie ihre neuen Blockbuster-Programme oder Apps vorstellen.

Die Verbraucher erwarten, dass die betreffende Technologie wie beworben im ganzen Ablauf funktioniert, von der Installation bis hin zur Interaktion mit anderen Programmen und Systemen. Aus diesem Grund ist Integrationstests für viele Unternehmen ein notwendiger Schritt im Geschäftsbereich.

Kurz gesagt, das Ziel von Integration Testing besteht darin, sicherzustellen, dass Teile und Systeme zuverlässig zusammenarbeiten. Aus PR-Sicht besteht ein weiteres Ziel von Integrationstests darin, die Identität der Organisation als verantwortungsbewusstes Unternehmen zu schützen, das in der Lage ist, in einem modernen Kontext zuverlässig Geschäfte zu machen.

3D-Design aus Kugeln, die auf einer Schiene rollen

Die neuesten Erkenntnisse und Insights zu KI

Entdecken Sie von Experten kuratierte Erkenntnisse und Neuigkeiten zu KI, Cloud und mehr im wöchentlichen Newsletter Think. 

Wie funktioniert Integration Testing

Der Begriff Integration Testing hat sich im Laufe der Zeit entwickelt, um bestimmte „Wasserfall“-Methoden zu beschreiben. Früher wurden Softwaremodule und zugehörige Projekte in einem Vakuum erstellt. Die QA-Teams mussten Teile der Codebasis einzeln testen und die Testergebnisse analysieren, bevor sie in ein Softwaresystem integriert werden konnten.

Integration testing wird durch die Erstellung und Auswertung von Testfällen durchgeführt. In der ersten Phase geht es um die erfolgreiche Identifizierung von Integrationspunkten, d. h. den Bereichen innerhalb einer Anwendung, in denen die verschiedenen Module interagieren. Wenn die Integration eingerichtet wurde, werden Testfälle um sie herum entworfen. Diese Testfälle werden erstellt, um zu zeigen, wie die Integrationspunkte in Abhängigkeit von verschiedenen Eingabeszenarien, realen Situationen und erwarteten Ergebnissen funktionieren.

Mit den aus der Testabdeckung gewonnenen Daten können die Stakeholder die notwendigen Anpassungen an der Codebasis vornehmen, in der alle Projektdaten gespeichert werden.

Die beim Integration Testing verwendeten Testfälle helfen den Entwicklern, sich auf verschiedene spezifische Betriebsbereiche zu konzentrieren:

Datenfluss

Daten, die ein System durchlaufen, müssen von ihrer Quelle ihr Ziel erreichen. Diese Informationen werden verarbeitet, während sie die verschiedenen Verarbeitungsschritte und Komponenten durchlaufen. Dieser Bewegungsvorgang wird als Datenfluss bezeichnet.

Wichtige Fragen: Wie gut funktioniert der Datenfluss zwischen den Komponenten? Gibt es potenzielle Hindernisse, die identifiziert und korrigiert werden müssen?

Koordination der Schnittstelle

Genauso wie die effektivsten Teams eine Führung benötigen, gibt es eine „höhere Intelligenz“, die den reibungslosen Betrieb und die Interaktion zwischen den Software-Komponenten steuert. Dieser Managementprozess wird als Schnittstellenkoordination bezeichnet.

Wichtige Fragen: Gibt es vorhersehbare Probleme bei der Anpassung der Schnittstellen zwischen den Modulen? Mit anderen Worten: Passen diese Schnittstellen richtig zusammen?

Kommunikationsprotokolle

Kommunikationsprotokolle entscheiden, wie Geräte Daten teilen. Solche Protokolle legen Regeln für die Datenübertragung fest und, wie Nachrichten strukturiert sind. Kommunikationsprotokolle spezifizieren auch, wie sich Systeme in Zeiten von Fehlern selbst korrigieren sollen.

Schlüsselfragen: Können Probleme beim Integration Testing mit der Synchronisation zwischen einzelnen Einheiten aufdecken? Welche Maßnahmen sollten ergriffen werden, um sichere Datenübertragungen zu gewährleisten?

Ein weiterer Aspekt von Integrationstests, der die Gesamtkomplexität eskaliert, sind Abhängigkeiten, das sind Beziehungen, die zwischen Modulen und/oder Komponenten bestehen. Typische Abhängigkeiten erfordern, dass eine Komponente nur funktioniert, wenn eine verwandte Komponente zuerst nach Bedarf funktioniert. Solche Abhängigkeiten müssen berücksichtigt werden, wenn versucht wird, potenzielle Probleme bei der Programmausführung zu lösen.

IBM DevOps

Was ist DevOps?

Andrea Crawford erklärt, was DevOps ist, welchen Wert DevOps hat und wie DevOps-Praktiken und -Tools Ihnen dabei helfen, Ihre Anwendungen durch die gesamte Delivery Pipeline der Softwareentwicklung von der Idee bis zur Produktion zu bringen. Das von führenden IBM Experten geleitete Programm soll Führungskräften das nötige Wissen vermitteln, um Prioritäten für KI-Investitionen zu setzen, die zu mehr Wachstum führen.

Ablauf des Testprozesses

Es gibt eine Standardabfolge für die einzelnen Testschritte, die bei der Durchführung von Integrationstests durchgeführt werden, da eine solche geordnete Abfolge den Entwicklern eine Möglichkeit gibt, verschiedene Code-Teile systematisch und strukturiert zu bewerten. Die Testsequenz beginnt in der Regel mit der Überprüfung der einfachsten Komponenten, um Fehler in untergeordneten Modulen zu korrigieren, bevor sie sich später negativ auf den Betrieb auswirken. Dann verschiebt sich das Testen auf aufwändigere Integrationen und bewertet deren Leistung.

Neben der frühzeitigen Erkennung von Fehlern verwendet die übliche Testsequenz eine logische Abfolge, um den Datenfluss des Codes nachzuahmen und sicherzustellen, dass die Interaktionen der Komponenten in der richtigen Reihenfolge getestet werden. Darüber hinaus weist die Testreihenfolge weniger entscheidend Tests, die Low-Level-Module betreffen, eine geringere Priorität zu, sodass die Entwickler sich auf die wichtigsten Vorgänge konzentrieren können.

In einer herkömmlichen Testsequenz werden die Testformate in der folgenden Reihenfolge untersucht:

  1. Unit-Tests, die einzelne Funktionen bewerten.
  2. Integration Testing, um zu sehen, wie Komponenten interagieren.
  3. Systemtests zur Bestimmung der Gesamtfunktionen ganzer Systeme.
  4. Abnahmetests, bei denen Funktionen aus der Sicht des Benutzers überprüft werden.

Das Integration Testing ist nicht der erste Testschritt in dieser Standardsequenz. Integration Testing kommt im Prozess an der richtigen Stelle vor, da die Prüfung der Interaktionen zwischen einzelnen Komponenten bereits durch Unit-Tests erfolgt ist. Auf der nächsten Ebene, dem Systemtest, wird der Scale-Out-Gedanke noch weiter verschoben, um den Testern eine Makroansicht des gesamten Systems und der Zusammenarbeit aller Komponenten zu geben.

Typen von Integration Testing

Es gibt zahlreiche Arten von Integrationstest-Techniken, aber diese werden zur Bewertung von Softwaresystemen am häufigsten verwendet.

Top-down Integration Testing

Der Top-Down-Ansatz ist eine der beiden Hauptarten von inkrementellem Integrationstest. Er konzentriert sich auf das Hauptmodul und seine Funktionsweise, bevor es dann die Submodule und Subroutinen auswertet. Eines der größten Vorteile dieses Ansatzes ist, dass er frühzeitig im Prozess eingesetzt werden kann – noch bevor die untergeordneten Module vollständig identifiziert sind. Tester können Platzhalter (Stubs genannt) als Ersatz für Low-Level-Module verwenden.

Bottom-up Integration Testing

Ein weiteres wichtiges Beispiel für Integration Testing ist das Bottom-up Integration Testing, bei dem die Reihenfolge der Testsequenz geändert wird. Beim Bottom-up-Ansatz werden die Submodule und Subroutinen zuerst ausgewertet. Anschließend wird mit diesem Ansatz das Hauptmodul getestet. Und genau wie Top-Down-Tests Stubs als Platzhalter verwenden, wenn sie benötigt werden, verwenden Bottom-Up-Integrationstests temporäre Module, sogenannte Treiber, als Ersatz für Komponenten, die noch nicht identifiziert wurden.

Gemischtes Integration Testing

Bei der gemischten Integration (manchmal auch Sandwich-Integration genannt) werden die Methoden von oben nach unten und von unten nach oben kombiniert. Der Hauptvorteil einer gemischten Integration besteht darin, dass sie die erzwungene Prozesssequenz überwindet, die sowohl Top-Down- als auch Bottom-Up-Tests einschränkt (auf genau entgegengesetzte Weise). Bei gemischter Integration können die Tests entweder mit dem Hauptmodul oder mit den Submodulen und Subroutinen beginnen, je nach den Bedürfnissen der Benutzer.

Big Bang Integration Testing

Eine weitere wichtige Möglichkeit zur Durchführung von Integrationstests ist Integration Testing. Hier werden alle einzelnen Einheiten, Komponenten und Module eines Systems auf einmal integriert und zusammen getestet, als ob es sich um eine einzige Einheit handeln würde. Big Bang Testing kann eine schnelle Antwort liefern, wenn das System mit all seinen verschiedenen Teilen arbeitet.

Diese Form der Prüfung ist jedoch begrenzt. Wenn sich im Zuge des Prozesses herausstellt, dass das System nicht wie erwartet funktioniert, kann ein Big-Bang-Test nicht aufzeigen, welche einzelnen Teile nicht zusammenwirken können.

Methoden beim Integration Testing

Im Folgenden werden einige gängige Integration-Testing-Methoden aufgeführt. Da sie alle, je nach Bedarf, die richtige Methodik für ein Softwareunternehmen sein können, sind sie hier alphabetisch aufgelistet:

  • API-Integrationstests: Programmierschnittstellen (APIs) sind wesentliche Bestandteile der Datenverarbeitung. Sie ermöglichen es Softwareanwendungen, miteinander zu kommunizieren und erfolgreich Daten auszutauschen. API-Tests sind Mittel zum Testen von Software, die überprüfen, wie die verschiedenen APIs innerhalb eines Systems zusammenarbeiten. Ziel ist es, dass sie einwandfrei funktionieren, als wären diese APIs Teil einer einzigen organisierten Einheit. Je reibungsloser die APIs miteinander arbeiten, desto besser läuft das gesamte System ab.
  • Automatisierte Integration Testing: Automatisierte Tests sind ein wesentlicher Bestandteil des Softwareentwicklungsprozesses und eine weitere Methode, um zu bewerten, wie Softwarekomponenten zusammenarbeiten. Bei diesem Integration Testing-Prozess werden Testfälle ausgeführt, die auf der Arbeit spezialisierter Testtools und Skripte basieren. Auf diese Weise können Integration-Probleme erkannt und behoben werden, bevor die Bereitstellung erfolgt. Und da die Automatisierung erfolgt, wird das gesamte System effizienter und flexibler. Automatisierte Tests sind ein Schlüsselelement der kontinuierlichen Integration, der DevOps-Praxis, die sich auf ein gemeinsames Repository für ständig aktualisierte Codeänderungen stützt.
  • Blackbox-Tests: Die Blackbox-Analogie kann auf jede Situation angewendet werden, in der davon ausgegangen wird, dass die interne Funktionsweise der Blackbox (unabhängig davon, ob es sich um Computercode oder einen anderen betrieblichen Aspekt, wie z. B. die gemeldeten Unternehmensgewinne) handelt, nicht vollständig verstanden werden kann. Im Falle von Blackbox-Integrationstests bedeutet dies, dass die Tester sich nicht mit den spezifischen Codes befassen wollen, die in den verschiedenen Modulen verwendet werden. Stattdessen bevorzugen sie eine einfachere und schnellere Antwort auf die Frage, ob die Systeme, Komponenten und Module harmonisch funktionieren.
  • End-to-End-Testing: Wie der Name schon sagt, bieten End-to-End-Testings (manchmal auch E2E-Testing genannt) Testern eine Möglichkeit, die Funktionen des gesamten Systems von Anfang bis Ende zu überprüfen. Darüber hinaus können E2E-Tests reale Testszenarien nachahmen und die Grundlage für Integration Testing schaffen, indem sie mittels Testplänen bestimmen, welche Einheiten getestet werden sollen. E2E-Testings werden normalerweise später im Integrationstestprozess durchgeführt, nachdem die Integrationstests abgeschlossen sind, aber vor den Benutzerakzeptanztests.
  • Functional Testing: Von allen Arten von Softwaretests sind Funktionale Integrationstests (FIT) die Methode, die am stärksten darauf abzielt, die Funktion eines Systems zu erlernen. FIT prüft, ob verschiedene Module oder Komponenten nach Bedarf interagieren können, und ist nützlich, um Fehler frühzeitig im Lebenszyklus der Softwareentwicklung zu lokalisieren, bevor diese zu richtigen Problemen werden. Tester führen in der Regel Functional Testing nach den Komponententests durch, aber bevor der vollständige Systemtest beginnt.
  • Regression Testing: Ein weiteres Test-Framework sind Regression Testings, die als nachträgliche Testumgebung dienen, um zu überprüfen, ob Änderungen während des Integrationsprozesses versehentlich Störungen in anderen Teilen des Systems verursacht haben. Wenn neue Funktionen wie z. B. neue Online-Zahlungsmöglichkeiten eingeführt werden, werden Regression Testings eingesetzt, um sicherzustellen, dass die Ergänzungen nicht die bereits korrekt funktionierenden Systeme beeinträchtigen.
  • White-Box-Tests: Im Gegensatz zum Blackbox-Testing wird beim Whitebox-Testing davon ausgegangen, dass die Tester den relevanten Code während des Testprozesses untersuchen wollen, in der Hoffnung, Problembereiche ausfindig zu machen und korrigierende Code-Änderungen vorzunehmen, um diese Probleme zu beheben, auch wenn ein solcher Ansatz mit Sicherheit zeitaufwendiger ist. Der Ausdruck „White Box“ spiegelt diesen Wunsch nach Klarheit im Systeminnenleben wider – obwohl der Ausdruck „Clear Box“ vielleicht genauer beschreibt, was die Tester suchen.

Beliebte Tools für Integration Testing

Auch hier wird diese Plattform durch zahlreiche Tools für Integrationstests und Frameworks bedient. Hier sind einige der beliebtesten:

  • Katalon: Die Software für Automatisierungstests von Katalon Studio enthält das Open Source -Framework Selenium – ein browserbasiertes Tool, mit dem Tester Testskripte in verschiedenen Programmiersprachen schreiben können, darunter JavaScript, NodeJS und Python.
  • Postman: API-Integrationstests werden von Postman gut unterstützt. Das Tool zeichnet sich auch dadurch aus, dass es die Zusammenarbeit und die Automatisierung ermöglicht. Darüber hinaus können Benutzer einen Test schreiben, ohne diesen Test in eine Sammlung aufnehmen oder sogar speichern zu müssen. Der Tester stellt eine Anfrage in Postman und erhält eine entsprechende URL.
  • SoapUI: SoapUI ist ein Open Source-Tool, mit dem Webanwendungen getestet und Integrationstests durchgeführt werden können. Damit erhalten Tester eine grafische Oberfläche, die die Erstellung von Testfällen unterstützt und die Arbeit mit Testdaten erleichtert.

Welche Integrationstools sind für Sie geeignet?

Unabhängig davon, ob Ihr Unternehmen eine Front-End- oder Back-End-Evaluierung und -Reduzierung benötigt, kann Integration Testing den Fortschritt der Verbindungen bewerten, die inzwischen von entscheidender Bedeutung sind, damit Unternehmen mit höchster Effizienz und maximaler Rentabilität arbeiten können.

Wie bereits erwähnt, gibt es eine beträchtliche Anzahl verschiedener Integration-Testing-Methoden, da Softwareentwickler daran arbeiten, für jeden möglichen Bedarf und alle relevanten Konfigurationen eine entsprechende Methode zu identifizieren und zu entwickeln. Und sie sind auf einem guten Weg, da die meisten Softwareentwicklungsfirmen die Notwendigkeit solcher Tests verstehen. Einigen Schätzungen zufolge verwenden etwa 70 % der Unternehmen, die im Bereich DevOps tätig sind, bereits irgendeine Form von Integration Testing.

Welches ist also das richtige Integration-Tool für Ihr Unternehmen? Dank eines offenen Marktes ist es wahrscheinlich, dass Sie eine Lösung finden, die den Bedürfnissen Ihres Unternehmens entspricht. Um herauszufinden, was genau diese Bedürfnisse sind, empfehlen wir Ihnen, sich an ein weiteres berühmtes altes Sprichwort zu wenden: „Erkenne dich selbst.“ Auch heute in unserer postmodernen Welt ist dieser Ratschlag nützlich.

Weiterführende Lösungen
IBM DevOps Accelerate

Automatisieren Sie die Software-Bereitstellung für jede Anwendung On-Premises, in der Cloud oder auf dem Mainframe.

DevOps Accelerate erkunden
DevOps-Lösungen

Verwenden Sie DevOps-Software und -Tools, um cloudnative Anwendungen für mehrere Geräte und Umgebungen zu erstellen, bereitzustellen und zu verwalten.

DevOps-Lösungen erkunden
Cloud-Beratungsleistungen 

Schalten Sie mit IBM Cloud Consulting Services neue Funktionen frei und steigern Sie die geschäftliche Agilität. Entdecken Sie, wie Sie mit Hybrid-Cloud-Strategien und Expertenpartnerschaften gemeinsam Lösungen entwickeln, die digitale Transformation beschleunigen und die Leistung optimieren können.

Cloud-Services
Machen Sie den nächsten Schritt

Erschließen Sie das Potenzial von DevOps, um sichere cloudnative Anwendungen mit kontinuierlicher Integration und Bereitstellung zu entwickeln, zu testen und bereitzustellen.

DevOps-Lösungen erkunden DevOps in Aktion entdecken