Was ist Integrationstest?
INTEGRATIONSTEST ist eine Art von Test, bei dem Softwaremodule logisch integriert und als Gruppe getestet werden. Ein typisches Softwareprojekt besteht aus mehreren Softwaremodulen, die von verschiedenen Programmierern codiert werden. Der Zweck dieser Teststufe besteht darin, Fehler in der Interaktion zwischen diesen Softwaremodulen aufzudecken, wenn sie integriert sind
Der Integrationstest konzentriert sich auf die Überprüfung der Datenkommunikation zwischen diesen Modulen. Daher wird es auch als "I & T" (Integration und Testen), "String-Testen" und manchmal als "Thread-Testen" bezeichnet .
- Was ist Integrationstest?
- Warum Integrationstests durchführen?
- Beispiel für einen Integrationstestfall
- Ansätze, Strategien, Methoden des Integrationstests
- Urknall-Ansatz:
- Inkrementeller Ansatz
- Was ist Stub und Driver?
- Bottom-up-Integration
- Top-down-Integration:
- Hybrid / Sandwich-Integration
- Wie mache ich Integrationstests?
- Kurzbeschreibung der Integrationstestpläne:
- Ein- und Ausstiegskriterien für Integrationstests
- Best Practices / Richtlinien für Integrationstests
Warum Integrationstests durchführen?
Obwohl jedes Softwaremodul einem Unit-Test unterzogen wird, bestehen aus verschiedenen Gründen immer noch Fehler, z
- Ein Modul wird im Allgemeinen von einem einzelnen Softwareentwickler entworfen, dessen Verständnis und Programmierlogik sich von anderen Programmierern unterscheiden kann. Integrationstests sind erforderlich, um zu überprüfen, ob die Softwaremodule in Einheit funktionieren
- Zum Zeitpunkt der Modulentwicklung besteht eine große Wahrscheinlichkeit, dass sich die Anforderungen der Kunden ändern. Diese neuen Anforderungen werden möglicherweise nicht auf Einheiten getestet, und daher sind Systemintegrationstests erforderlich.
- Schnittstellen der Softwaremodule zur Datenbank können fehlerhaft sein
- Eventuelle externe Hardwareschnittstellen können fehlerhaft sein
- Eine unzureichende Ausnahmebehandlung kann zu Problemen führen.
Klicken Sie hier, wenn das Video nicht zugänglich ist
Beispiel für einen Integrationstestfall
Der Integrationstestfall unterscheidet sich von anderen Testfällen darin, dass er sich hauptsächlich auf die Schnittstellen und den Daten- / Informationsfluss zwischen den Modulen konzentriert . Hier ist den integrierenden Links Vorrang vor den bereits getesteten Gerätefunktionen zu geben.
Beispiel für Integrationstestfälle für das folgende Szenario: Die Anwendung verfügt über drei Module: "Anmeldeseite", "Mailbox" und "E-Mails löschen". Jeder dieser Module ist logisch integriert.
Konzentrieren Sie sich hier nicht sehr auf das Testen der Anmeldeseite, da dies bereits im Unit-Test durchgeführt wurde. Überprüfen Sie jedoch, wie es mit der Mailbox-Seite verknüpft ist.
Ähnlich Mailbox: Überprüfen Sie die Integration in das Modul "Mails löschen".
Testfall-ID | Testfallziel | Testfallbeschreibung | erwartetes Ergebnis |
---|---|---|---|
1 | Überprüfen Sie die Schnittstellenverbindung zwischen dem Anmelde- und dem Postfachmodul | Geben Sie die Anmeldeinformationen ein und klicken Sie auf die Schaltfläche Anmelden | An die Mailbox weiterleiten |
2 | Überprüfen Sie die Schnittstellenverbindung zwischen der Mailbox und dem Modul zum Löschen von Mails | Wählen Sie im Postfach die E-Mail aus und klicken Sie auf die Schaltfläche Löschen | Die ausgewählte E-Mail sollte im Ordner "Gelöscht / Papierkorb" angezeigt werden |
Ansätze, Strategien, Methoden des Integrationstests
Software Engineering definiert verschiedene Strategien zur Durchführung von Integrationstests, d. H.
- Urknall-Ansatz:
- Inkrementeller Ansatz: der weiter in die folgenden Bereiche unterteilt ist
- Top-Down-Ansatz
- Bottom-Up-Ansatz
- Sandwich-Ansatz - Kombination von Top Down und Bottom Up
Nachfolgend sind die verschiedenen Strategien, die Art und Weise ihrer Ausführung und ihre Einschränkungen sowie die Vorteile aufgeführt.
Urknalltests
Big Bang Testing ist ein Integrationstestansatz, bei dem alle Komponenten oder Module gleichzeitig integriert und dann als Einheit getestet werden. Dieser kombinierte Satz von Komponenten wird beim Testen als eine Einheit betrachtet. Wenn nicht alle Komponenten in der Einheit abgeschlossen sind, wird der Integrationsprozess nicht ausgeführt.
Vorteile:
- Praktisch für kleine Systeme.
Nachteile:
- Die Fehlerlokalisierung ist schwierig.
- Angesichts der schieren Anzahl von Schnittstellen, die bei diesem Ansatz getestet werden müssen, können einige zu testende Schnittstellenverbindungen leicht übersehen werden.
- Da der Integrationstest erst beginnen kann, nachdem "alle" Module entworfen wurden, hat das Testteam in der Testphase weniger Zeit für die Ausführung.
- Da alle Module gleichzeitig getestet werden, werden risikoreiche kritische Module nicht isoliert und vorrangig getestet. Peripheriemodule, die sich mit Benutzeroberflächen befassen, werden ebenfalls nicht isoliert und vorrangig getestet.
Inkrementelle Tests
Beim inkrementellen Testansatz werden Tests durchgeführt, indem zwei oder mehr Module integriert werden, die logisch miteinander verknüpft sind, und anschließend auf ordnungsgemäße Funktion der Anwendung getestet werden. Dann werden die anderen verwandten Module inkrementell integriert und der Prozess wird fortgesetzt, bis alle logisch verwandten Module integriert und erfolgreich getestet wurden.
Der inkrementelle Ansatz wird wiederum nach zwei verschiedenen Methoden durchgeführt:
- Prost
- Von oben nach unten
Stubs und Treiber
Stubs und Treiber sind die Dummy-Programme in Integrationstests, die zur Erleichterung der Softwaretestaktivität verwendet werden. Diese Programme ersetzen die fehlenden Modelle im Test. Sie implementieren nicht die gesamte Programmierlogik des Softwaremoduls, sondern simulieren beim Testen die Datenkommunikation mit dem aufrufenden Modul.
Stub : Wird vom zu testenden Modul aufgerufen.
Treiber : Ruft das zu testende Modul auf.
Bottom-up-Integrationstests
Bottom-up-Integrationstests sind eine Strategie, bei der die Module der unteren Ebene zuerst getestet werden. Diese getesteten Module werden dann weiter verwendet, um das Testen von Modulen höherer Ebene zu erleichtern. Der Prozess wird fortgesetzt, bis alle Module auf oberster Ebene getestet wurden. Sobald die Module der unteren Ebene getestet und integriert sind, wird die nächste Ebene der Module gebildet.
Diagrammatische Darstellung :
Vorteile:
- Die Fehlerlokalisierung ist einfacher.
- Im Gegensatz zum Big-Bang-Ansatz wird keine Zeit damit verschwendet, darauf zu warten, dass alle Module entwickelt werden
Nachteile:
- Kritische Module (auf der obersten Ebene der Softwarearchitektur), die den Anwendungsfluss steuern, werden zuletzt getestet und können fehleranfällig sein.
- Ein früher Prototyp ist nicht möglich
Top-Down-Integrationstests
Top-Down-Integrationstests sind Methoden, bei denen Integrationstests von oben nach unten nach dem Kontrollfluss des Softwaresystems durchgeführt werden. Die Module der höheren Ebene werden zuerst getestet und dann werden die Module der niedrigeren Ebene getestet und integriert, um die Softwarefunktionalität zu überprüfen. Stubs werden zum Testen verwendet, wenn einige Module nicht bereit sind.
Diagrammatische Darstellung:
Vorteile:
- Die Fehlerlokalisierung ist einfacher.
- Möglichkeit, einen frühen Prototyp zu erhalten.
- Kritische Module werden vorrangig getestet. Wichtige Konstruktionsfehler konnten zuerst gefunden und behoben werden.
Nachteile:
- Benötigt viele Stubs.
- Module auf einer niedrigeren Ebene werden unzureichend getestet.
Sandwich-Tests
Sandwich Testing ist eine Strategie, bei der Module der obersten Ebene mit Modulen der unteren Ebene getestet werden, während Module der unteren Ebene in Module der oberen Ebene integriert und als System getestet werden. Es ist eine Kombination aus Top-Down- und Bottom-Up-Ansätzen und wird daher als Hybrid Integration Testing bezeichnet . Es werden sowohl Stubs als auch Treiber verwendet.
Wie mache ich Integrationstests?
Das Integrationstestverfahren unabhängig von den oben diskutierten Softwareteststrategien:
- Bereiten Sie den Integrationstestplan vor
- Entwerfen Sie die Testszenarien, Fälle und Skripte.
- Ausführen der Testfälle, gefolgt von der Meldung der Mängel.
- Verfolgen und erneutes Testen der Fehler.
- Die Schritte 3 und 4 werden wiederholt, bis der Abschluss der Integration erfolgreich ist.
Kurzbeschreibung der Integrationstestpläne:
Es enthält die folgenden Attribute:
- Methoden / Ansätze zum Testen (wie oben diskutiert).
- Bereiche und außerhalb des Bereichs Elemente des Integrationstests.
- Rollen und Verantwortlichkeiten.
- Voraussetzungen für Integrationstests.
- Testumgebung.
- Risiko- und Minderungspläne.
Ein- und Ausstiegskriterien für Integrationstests
Ein- und Ausstiegskriterien für die Integrationstestphase in einem beliebigen Softwareentwicklungsmodell
Aufnahmekriterien:
- Einheitsgeprüfte Komponenten / Module
- Alle Fehler mit hoher Priorität wurden behoben und geschlossen
- Alle Module müssen Code vervollständigt und erfolgreich integriert werden.
- Integrationstests Plan, Testfall, Szenarien, die abgemeldet und dokumentiert werden sollen.
- Erforderliche Testumgebung zum Einrichten für Integrationstests
Abbruchkriterium:
- Erfolgreiches Testen der integrierten Anwendung.
- Ausgeführte Testfälle werden dokumentiert
- Alle Fehler mit hoher Priorität wurden behoben und geschlossen
- Technische Dokumente, die eingereicht werden müssen, gefolgt von Versionshinweisen.
Best Practices / Richtlinien für Integrationstests
- Bestimmen Sie zunächst die Integrationsteststrategie, die übernommen werden könnte, und bereiten Sie später die Testfälle und Testdaten entsprechend vor.
- Studieren Sie das Architekturdesign der Anwendung und identifizieren Sie die kritischen Module. Diese müssen vorrangig getestet werden.
- Beziehen Sie die Schnittstellendesigns vom Architectural-Team und erstellen Sie Testfälle, um alle Schnittstellen im Detail zu überprüfen. Die Schnittstelle zur Datenbank / externen Hardware- / Softwareanwendung muss im Detail getestet werden.
- Nach den Testfällen spielen die Testdaten die entscheidende Rolle.
- Halten Sie vor der Ausführung immer die Scheindaten bereit. Wählen Sie während der Ausführung der Testfälle keine Testdaten aus.