Was ist Integrationstest?

Mit den Fortschritten auf dem Gebiet der Informationstechnologie werden die Dinge für uns Menschen viel einfacher, und buchstäblich kann alles mit nur einem Fingerdruck erledigt werden. Aber davor kann man noch viel arbeiten und vor allem steckt „LOGIC“ dahinter. Nun, manchmal haben wir gesehen, dass einige Funktionen nicht genau den Erwartungen entsprechen oder die aus der Software abgeleiteten Ergebnisse nicht unseren Erwartungen entsprechen. Daher spielen die Softwaretests eine wichtige Rolle. Die Fehler in den Systemen zu korrigieren, um die richtigen / erwarteten Ergebnisse zu erhalten, ist das Testen der Software.

Um zu verstehen, was Integrationstests bedeuten, müssen wir zunächst verstehen, was Softwaretests bedeuten. Beim Softwaretesten wird geprüft, ob die Ausgabe / das Ergebnis eines Tests der erwarteten Ausgabe / dem erwarteten Ergebnis entspricht. Dies bedeutet, dass die Software ordnungsgemäß ausgeführt wird. Das Ergebnis, das nach dem Ausführen einer bestimmten Software / eines bestimmten Systems erhalten wird, muss mit dem Ergebnis übereinstimmen, das als Ausgabe der Software / des Systems erwartet wird. Wenn dies nicht der Fall ist, muss die Software neu geschrieben werden oder bestimmte Änderungen müssen innerhalb des geschriebenen Codes vorgenommen werden.

Das Testen der Software eines Softwaresystems erfolgt auf verschiedenen Ebenen. Die Teststufen sind wie folgt dargestellt:

Chronologisch erfolgt der Integrationstest nach dem ersten Schritt, dem „Unit Testing“. Der Name Integration besagt, dass die Definition des Integrationstests in Textform "Einzelne Softwaremodule werden wie eine Gruppe zusammengefügt und gemeinsam getestet" lautet. In der Software gibt es also viele Komponenten. Diese vielen Komponenten bilden zusammen ein Softwaresystem. Dieses Softwaresystem wird zusammen getestet und die Teststufe, auf der es getestet wird, wird als Integrationstest bezeichnet. Wenn diese Module also kombiniert werden, muss das Ergebnis, das daraus erhalten wird, dem erwarteten Ergebnis entsprechen. Hier kommt der Integrationstest zum Tragen. Der Hauptzweck des Integrationstests besteht darin, zu überprüfen, ob einzelne Module in Kombination korrekt zusammenarbeiten.

Das auch als I & T (Integration and Testing) bezeichnete Verfahren kann sowohl beim Testen einzelner als auch beim Testen vollständiger Module hilfreich sein. Es ist sowohl im Black-Box- als auch im White-Box-Test enthalten. Die meisten Organisationen testen ihre Software nur mit den Methoden Unit Testing und Functional Testing.

Typen und Ansätze

Es gibt vier Arten und Ansätze von Integrationstests:

  1. Big Bang Ansatz
  2. Bottom-Up-Ansatz
  3. Top-Down-Ansatz
  4. Hybrid / Sandwich

1. Urknall-Ansatz:

Die entwickelten Module / Komponenten der Softwaresysteme sind miteinander gekoppelt. Diese einzelnen Module werden im gekoppelten Zustand miteinander getestet. Nach dem Unit-Test werden diese Module gemeinsam getestet und bilden ein Softwaresystem. Aber einige von uns haben vielleicht die Frage, wie sich das Testen von Softwaresystemen als Ganzes und das Testen von Integration unterscheiden. Das Wichtigste, was wir hier verstehen, ist, dass beim Integrationstest die Tests für die einzelnen Module durchgeführt werden, die nach der Durchführung von Komponententests miteinander kombiniert werden. und beim Testen von Softwaresystemen wird das gesamte System mit allen berücksichtigten Parametern getestet.

Das folgende Diagramm zeigt genau, was der Urknall-Ansatz des Integrationstests bedeutet:

Mit dem Urknall-Ansatz sind einige Vor- und Nachteile verbunden:

Vorteile:

  • Wenn die Systeme klein sind, ist es sehr praktisch, sich ihnen zu nähern. Da für diesen Ansatz mehr Zeit erforderlich ist, können große Systeme zu einem höheren Zeitverbrauch führen.
  • Bei kleinen Systemen ist die Fehlererkennung damit sehr einfach

Nachteile:

  • Da alle Module gekoppelt sind, ist es schwierig, Fehler in den Systemen zu erkennen.
  • Einige Module sind sehr wichtig und müssen getestet werden. Diese Module müssen vor der Verwendung im System getestet werden. Während des Integrationstests werden diese Module möglicherweise nicht effizient getestet, da alle Module miteinander gekoppelt sind.
  • Die Zeit, die das gesamte Softwaresystem benötigt, ist viel länger als bei anderen Ansätzen für Integrationstests.
  • Das Koppeln der Module kann einige Zeit in Anspruch nehmen, was dazu führen kann, dass die gesamte Prozesszeit des Softwaresystems in Anspruch genommen wird.
  • Der Zeitaufwand für diesen Ansatz ist größer, da viele Module miteinander gekoppelt sind und das Testen jedes Moduls mehr Zeit in Anspruch nimmt.

2. Bottom-Up-Ansatz

Bei diesem Ansatz werden die Low-Level-Module zuerst zusammen und einzeln getestet. Alle Module der unteren Ebene sind integriert, einschließlich Funktionen und Prozeduren, und alles ist gekoppelt und getestet. Dies hilft beim Testen der übergeordneten Module, da es eine Basis dafür bildet. Dieser Vorgang wird wiederholt, um alle Module von der unteren bis zur oberen Modulebene gründlich zu testen. Einfach ausgedrückt, beginnt das Testen mit dem inneren und untersten Modul und wird schrittweise vorangetrieben. Nun wird, wie im Diagramm angegeben, die Hilfe eines Fahrers in Anspruch genommen. Was ist ein Fahrer und wie hilft er? Wie aus dem Ablauf hervorgeht, können die Module der obersten Ebene erst dann in das System integriert werden, wenn die Module der untersten Ebene getestet und gekoppelt wurden. Der Treiber hilft hier also beim Koppeln der Module der unteren und oberen Ebene und arbeitet als Medium oder in einem technischen Begriff als Aufruffunktion.

Vorteile:

  • Die Entwicklung einzelner Module kann durchgeführt werden, während der Bottom-Up-Ansatz für Integrationstests verwendet wird, da die Kopplung und Integrationstests durchgeführt werden, nachdem die Module der unteren Ebene zuerst getestet wurden.
  • Wenn ein Fehler vorliegt / auftritt, kann er zur selben Zeit und auf derselben Ebene behoben werden. Die Fehlererkennung und -korrektur ist wesentlich einfacher als bei anderen Ansätzen.
  • Die für die Fehlererkennung und Fehlerkorrektur erforderliche Zeit ist im Vergleich zu anderen Ansätzen viel geringer.
  • Fehler können sowohl auf der untersten als auch auf der obersten Instanzebene behoben werden.

Nachteile:

  • Die Zeit, die für den gesamten Prozess benötigt wird, ist länger. Der Testprozess endet erst, wenn alle Module der oberen und unteren Ebene enthalten und getestet sind.
  • Treiber sind erforderlich, um die übergeordneten Module aufzurufen
  • Wenn das Softwaresystem immer mehr kleine, aber komplexe Module enthält, kann es länger dauern, bis der Softwaretest abgeschlossen ist.

3. Top-Down-Ansatz

Dieser Ansatz ist genau das Gegenteil des Bottom-up-Ansatzes. Die Module der obersten Ebene werden zunächst getestet, und dann werden gleichzeitig andere Module der unteren Ebene getestet. Die obersten Module werden zuerst einzeln getestet, so wie für das oberste Modul spezielle Komponententests durchgeführt werden und schließlich andere Module in Betracht gezogen und getestet werden. Der Top-Down-Ansatz erfordert eine Aufruffunktion wie ein Bottom-Up-Ansatz namens Stubs. Die Stubs sind logische Shortcode-Anweisungen, die verwendet werden, um Eingaben von den Modulen der obersten Ebene zu akzeptieren und schließlich Module der untersten Ebene zur Integration und zum Testen aufzurufen.

Vorteile:

  • Auf diese Weise können leicht Fehler oder Irrtümer erkannt werden.
  • Entscheidende Module werden gründlich und vor anderen Modulen getestet.
  • Das Testen der Software-Systemintegration kann im Vergleich zu anderen Ansätzen in kürzerer Zeit durchgeführt werden.

Nachteile:

  • Module der unteren Ebene werden möglicherweise nicht auf das erwartete Niveau oder nicht auf die Anforderungen getestet.
  • Stichleitungen werden benötigt und sind erforderlich, damit der Testprozess weiter voranschreitet.

4. Hybrid / Sandwich-Ansatz

Wird auch als Mixed Integration Testing bezeichnet. Bottom-Up-Ansatz und Top-Down-Ansatz werden zu diesem Ansatz kombiniert. Daher als Hybrid- oder Sandwich- oder Mixed-Integration-Testansatz bekannt. Dieser Ansatz wird verwendet, um die Ausfälle der beiden angesprochenen Einzelpersonen zu vertuschen. Das oberste Modul wird einheitlich getestet und gleichzeitig werden Module der untersten Ebene in die Module der obersten Ebene integriert und getestet.

Vorteile:

  • Wird hauptsächlich für große Projekte verwendet und benötigt viel Zeit für die Fertigstellung.

Nachteile:

  • Die Kosten für diese Art von Tests sind recht hoch, da beide Ansätze zum Abschluss der Tests verwendet werden.

Vorteile des Integrationstests

  1. Integrationstests für verschiedene Module zur gleichen Zeit sind einfach.
  2. Kann sowohl in frühen als auch in späteren Phasen des Testprozesses verwendet werden.
  3. Die Codelängenabdeckung ist im Vergleich zu anderen Softwaretesttechniken höher, da sowohl der Bottom-up- als auch der Top-down-Ansatz verwendet werden können.
  4. Entsprechend den veränderten Anforderungen variiert die Entwicklung, sodass das Testen von Modulen auf verschiedenen Ebenen wichtig wird, für die Integrationstests problemlos verwendet werden können.

Warum wird Integrationstest verwendet?

  • Leute, die schon in der IT-Branche gearbeitet haben, wissen vielleicht um die ständigen Veränderungen, die passieren. Jeden Tag ändert sich entsprechend den Anforderungen die Notwendigkeit, ein bestimmtes Softwaresystem zu entwickeln, so dass jeden Tag neue Code-Patches entwickelt werden. Jetzt, wenn diese Patches zu einer Software zusammengefügt werden. Um dies zu überprüfen, sind Integrationstests und ihre Ansätze ein Muss.
  • Wenn eine komplexe oder große Software codiert oder erstellt wird, wird sie in separate Module unterteilt. Viele Leute arbeiten gleichzeitig an diesen Modulen, aber wenn diese Module integriert sind, werden Tests durchgeführt. In den meisten Fällen müssen für die Integration von Modulen Integrationstests durchgeführt werden, bevor sie weiterverarbeitet werden.
  • Die meisten Softwareanwendungen erfordern, dass einige Unterstützungsbibliotheken funktionieren. Integrationstests werden durchgeführt, wenn diese Bibliotheken zusammen mit dem entwickelten Code verwendet werden.
  • Bei der Entwicklung der Software ist die Integration ein Muss, da die Fehler auf der festgelegten Ebene behoben werden können. Wie wir nun über die Ansätze wissen, kann einer der Ansätze dafür verwendet werden.

Integrationstestfälle

Stellen Sie sich vor, wir erstellen eine Mitarbeiter-Management-Software. Diese Software hat drei Hauptaspekte:

  1. Mitarbeiter Login
  2. Mitarbeiterbericht
  3. Seite zur Angabe des Mitarbeitergehalts und Gehaltsstufe

Unter Berücksichtigung des obigen Falls wird nun zuerst die Software entwickelt und der Ablauf sollte Mitarbeiterregistrierung lauten (Eingabe der Werte, z. B. Mitarbeiter-ID, Name, Telefonnummer usw.). Nach den korrekten Eingaben sollte diese Mitarbeiterberichtsseite auf die Nettoseite umgeleitet werden. Wenn der Mitarbeiter hier nicht auf die Berichtsseite und direkt auf die Seite mit den Gehaltsinformationen weitergeleitet wird, liegt ein Fehler vor. Um dies zu korrigieren, werden der Ablauf, die Abfolge der Aktivitäten und die Integrationstests durchgeführt.

Ein weiteres Beispiel für den Integrationstest wäre:

Wir überprüfen täglich unsere E-Mails. Alle E-Mail-Dienstanbieter stellen uns die gleichen Funktionen zur Verfügung.

Login-> Inbox->Send / Delete Mail-> Logout

Wenn wir uns jetzt bei ihren Servern anmelden, werden zuerst die Werte auf ihre Richtigkeit überprüft, das heißt, Unit-Tests. Nachdem die Anmeldeinformationen übereinstimmen, sollte die Anmeldeseite uns auf die Posteingangsseite übertragen. Das ist das erwartete Ergebnis. Wenn es uns nicht auf die Inbox-Seite überträgt, sondern in einen Junk-Ordner, wird es zum Fall eines Integrationstests. Gleiches gilt für das Versenden und Löschen der E-Mails.

Andere Fälle können sein:

  • Nach erfolgreicher Registrierung in einer Online- / Offline-Anwendung sollte eine Anzeigemeldung vor dem Benutzer angezeigt werden.
  • Bankanwendungen sollten Benutzer zu der Seite mit der Kontoübersicht weiterleiten, die erforderlich ist.
  • Nach erfolgreicher Anmeldung bei Social Media Apps sollte die Standardseite angezeigt werden, z. B .: Home / Profil für Facebook.

Fazit

Angesichts der tagtäglichen Fortschritte auf dem Gebiet der IT und der Vielzahl von Entwicklern, die an unterschiedlichen Standorten an derselben Software arbeiten, ist das Testen der Integration zu einem Muss geworden. Mit seinen Ansätzen können Integrationstests für kleine und große Softwareanwendungen gleichermaßen verwendet werden. Integrationstests, die sich in der Mitte der Softwareteststufen befinden und so viele Vorteile bieten, werden für Kunden auf kommerzieller Ebene immer wichtiger. Regelmäßige Überprüfungen helfen dabei, die Software intakt zu halten.

Empfohlene Artikel

Dies war ein Leitfaden für Integrationstests. Hier haben wir einige grundlegende Konzepte, Definitionen, Typen und Vorgehensweisen mit ihren Vor- und Nachteilen besprochen. Sie können auch unsere anderen Artikelvorschläge durchgehen, um mehr zu erfahren -

  1. Karriere im Softwaretest
  2. Karriere für Softwareentwickler
  3. Was ist Black-Box-Testen?
  4. Nützliche Karrieren als Software Engineer