Was ist System Integration Testing (SIT) mit Beispiel

Inhaltsverzeichnis:

Anonim

Was ist Systemintegrationstest?

Systemintegrationstests sind definiert als eine Art von Softwaretests, die in einer integrierten Hardware- und Softwareumgebung durchgeführt werden, um das Verhalten des gesamten Systems zu überprüfen. Es werden Tests an einem vollständigen, integrierten System durchgeführt, um die Konformität des Systems mit den angegebenen Anforderungen zu bewerten.

System Integration Testing (SIT) wird durchgeführt, um die Interaktionen zwischen den Modulen eines Softwaresystems zu überprüfen. Es befasst sich mit der Überprüfung der Softwareanforderungen auf hoher und niedriger Ebene, die in der Softwareanforderungsspezifikation / den Daten und im Software-Designdokument angegeben sind.

Es überprüft auch die Koexistenz eines Softwaresystems mit anderen und testet die Schnittstelle zwischen Modulen der Softwareanwendung. Bei dieser Art von Tests werden Module zuerst einzeln getestet und dann zu einem System kombiniert.

Beispielsweise werden Software- und / oder Hardwarekomponenten kombiniert und schrittweise getestet, bis das gesamte System integriert wurde.

In diesem Tutorial lernen Sie:

  • Was ist Systemintegrationstest?
  • Warum Systemintegrationstests durchführen?
  • So führen Sie Systemintegrationstests durch
  • Ein- und Ausstiegskriterien für Integrationstests
  • Testen der Hardware-zu-Software-Integration
  • Testen der Software-zu-Software-Integration
  • Top-Down-Ansatz
  • Bottom-up-Ansatz
  • Urknall-Ansatz

Warum Systemintegrationstests durchführen?

In der Softwareentwicklung werden Systemintegrationstests durchgeführt, weil:

  • Es hilft, Fehler frühzeitig zu erkennen
  • Frühere Rückmeldungen zur Akzeptanz des einzelnen Moduls liegen vor
  • Die Planung von Fehlerkorrekturen ist flexibel und kann sich mit der Entwicklung überschneiden
  • Richtiger Datenfluss
  • Kontrollfluss korrigieren
  • Richtiges Timing
  • Korrigieren Sie die Speichernutzung
  • Korrigieren Sie mit den Softwareanforderungen

So führen Sie Systemintegrationstests durch

Es ist eine systematische Technik zum Aufbau der Programmstruktur während der Durchführung von Tests, um Fehler im Zusammenhang mit der Schnittstelle aufzudecken.

Alle Module werden vorab integriert und das gesamte Programm als Ganzes getestet. Während dieses Vorgangs treten jedoch wahrscheinlich eine Reihe von Fehlern auf.

Die Korrektur solcher Fehler ist schwierig, da Isolationsursachen durch die enorme Erweiterung des gesamten Programms erschwert werden. Sobald diese Fehler behoben und korrigiert sind, wird ein neuer angezeigt, und der Prozess wird nahtlos in einer Endlosschleife fortgesetzt . Um diese Situation zu vermeiden, wird ein anderer Ansatz verwendet: Inkrementelle Integration. Weitere Informationen zu einem inkrementellen Ansatz finden Sie später im Lernprogramm.

Es gibt einige inkrementelle Methoden, wie die Integrationstests auf einem System durchgeführt werden, das auf dem Zielprozessor basiert. Die verwendete Methode ist Black Box Testing. Es kann entweder eine Bottom-Up- oder eine Top-Down-Integration verwendet werden.

Testfälle werden nur unter Verwendung der allgemeinen Softwareanforderungen definiert.

Die Software-Integration kann auch weitgehend in der Host-Umgebung erreicht werden, wobei Einheiten, die für die Zielumgebung spezifisch sind, weiterhin im Host simuliert werden. Das Wiederholen von Tests in der Zielumgebung zur Bestätigung ist erneut erforderlich.

Bestätigungstests auf dieser Ebene identifizieren umgebungsspezifische Probleme, wie z. B. Fehler bei der Speicherzuweisung und -entzuweisung. Die Praktikabilität der Software-Integration in die Host-Umgebung hängt davon ab, wie viele zielspezifische Funktionen vorhanden sind. Bei einigen eingebetteten Systemen ist die Kopplung mit der Zielumgebung sehr stark, was es unpraktisch macht, eine Software-Integration in die Host-Umgebung durchzuführen.

Große Softwareentwicklungen werden die Softwareintegration in mehrere Ebenen unterteilen. Die niedrigeren Ebenen der Software-Integration könnten überwiegend in der Host-Umgebung basieren, wobei spätere Ebenen der Software-Integration stärker von der Zielumgebung abhängen.

Hinweis: Wenn nur Software getestet wird, wird dies als Software-Software-Integrationstest [SSIT] bezeichnet. Wenn sowohl Hardware als auch Software getestet werden, wird dies als Hardware-Software-Integrationstest [HSIT] bezeichnet.

Ein- und Ausstiegskriterien für Integrationstests

Normalerweise wird während der Durchführung von Integrationstests die ETVX-Strategie (Einstiegskriterien, Aufgaben-, Validierungs- und Ausstiegskriterien) verwendet.

Aufnahmekriterien:

  • Abschluss des Unit-Tests

Eingaben:

  • Daten zu den Softwareanforderungen
  • Software-Design-Dokument
  • Software-Überprüfungsplan
  • Software-Integrationsdokumente

Aktivitäten:

  • Erstellen Sie basierend auf den High- und Low-Level-Anforderungen Testfälle und -verfahren
  • Kombinieren Sie Modul-Builds auf niedriger Ebene, die eine gemeinsame Funktionalität implementieren
  • Entwickeln Sie ein Testgeschirr
  • Testen Sie den Build
  • Sobald der Test bestanden ist, wird der Build mit anderen Builds kombiniert und getestet, bis das System als Ganzes integriert ist.
  • Führen Sie alle Tests auf der Zielprozessor-basierten Plattform erneut aus und erhalten Sie die Ergebnisse

Abbruchkriterium:

  • Erfolgreicher Abschluss der Integration des Softwaremoduls in die Zielhardware
  • Korrigieren Sie die Leistung der Software gemäß den angegebenen Anforderungen

Ausgänge

  • Integrationstestberichte
  • Softwaretestfälle und -verfahren [SVCP].

Testen der Hardware-Software-Integration

Das Testen der Hardware-Software-Integration ist ein Prozess zum Testen von Computer-Software-Komponenten (CSC) auf Funktionen auf hoher Ebene in der Zielhardwareumgebung. Das Ziel von Hardware- / Software-Integrationstests besteht darin, das Verhalten der in die Hardwarekomponente integrierten entwickelten Software zu testen.

Anforderungsbasiertes Testen der Hardware-Software-Integration

Ziel der anforderungsbasierten Hardware- / Software-Integrationstests ist es, sicherzustellen, dass die Software auf dem Zielcomputer die allgemeinen Anforderungen erfüllt. Typische Fehler, die bei dieser Testmethode festgestellt werden, sind:

  • Hardware- / Software-Schnittstellenfehler
  • Verstöße gegen die Software-Partitionierung.
  • Unfähigkeit, Fehler durch eingebauten Test zu erkennen
  • Falsche Reaktion auf Hardwarefehler
  • Fehler aufgrund von Sequenzierung, transienten Eingangslasten und Eingangsleistungstransienten
  • Rückkopplungsschleifen falsches Verhalten
  • Falsche oder unsachgemäße Steuerung der Speicherverwaltungshardware
  • Datenbus-Konfliktproblem
  • Falsche Funktionsweise des Mechanismus zur Überprüfung der Kompatibilität und Richtigkeit von vor Ort ladbarer Software

Die Hardware-Software-Integration befasst sich mit der Überprüfung der allgemeinen Anforderungen. Alle Tests auf dieser Ebene werden auf der Zielhardware durchgeführt.

  • Black-Box-Tests sind die primäre Testmethode, die auf dieser Teststufe verwendet wird.
  • Definieren Sie Testfälle nur anhand der allgemeinen Anforderungen
  • Ein Test muss auf Produktionsstandardhardware (auf Ziel) ausgeführt werden.

Dinge, die beim Entwerfen von Testfällen für die HW / SW-Integration zu beachten sind

  • Korrekte Erfassung aller Daten durch die Software
  • Skalierung und Datenbereich wie erwartet von Hardware bis Software
  • Korrigieren Sie die Ausgabe von Daten von Software auf Hardware
  • Daten innerhalb der Spezifikationen (Normalbereich)
  • Daten außerhalb der Spezifikationen (abnormaler Bereich)
  • Grenzdaten
  • Unterbricht die Verarbeitung
  • Zeitliche Koordinierung
  • Korrigieren Sie die Speichernutzung (Adressierung, Überlappungen usw.)
  • Zustandsübergänge

Hinweis: Für Interrupt-Tests werden alle Interrupts unabhängig von der ersten Anforderung durch vollständige Wartung und nach Abschluss überprüft. Testfälle werden speziell entwickelt, um Interrupts angemessen zu testen.

Testen der Software-zu-Software-Integration

Hierbei handelt es sich um das Testen der Computersoftwarekomponente, die auf dem Host- / Zielcomputer ausgeführt wird

Umgebung, während das gesamte System [andere CSCs] und die Funktionalität auf hoher Ebene simuliert werden.

Es konzentriert sich auf das Verhalten eines CSC in einer simulierten Host- / Zielumgebung. Der für die Software-Integration verwendete Ansatz kann ein inkrementeller Ansatz sein (Top-Down-, Bottom-Up-Ansatz oder eine Kombination aus beiden).

Inkrementeller Ansatz

Inkrementelles Testen ist eine Möglichkeit zum Integrationstest. Bei dieser Art von Testmethode testen Sie zuerst jedes Modul der Software einzeln und fahren dann mit dem Testen fort, indem Sie andere Module an das Modul anhängen, dann ein anderes usw.

Inkrementelle Integration ist der Kontrast zum Urknall-Ansatz. Das Programm ist in kleinen Segmenten aufgebaut und getestet, in denen Fehler leichter zu isolieren und zu korrigieren sind. Schnittstellen werden mit größerer Wahrscheinlichkeit vollständig getestet, und es kann ein systematischer Testansatz angewendet werden.

Es gibt zwei Arten von inkrementellen Tests

  • Top-down-Ansatz
  • Bottom-Up-Ansatz

Top-Down-Ansatz

Bei diesem Ansatz testen Sie zunächst nur die Benutzeroberfläche, wobei die zugrunde liegende Funktionalität durch Stubs simuliert wird. Anschließend bewegen Sie sich nach unten und integrieren die unteren und unteren Ebenen, wie in der folgenden Abbildung dargestellt.

  • Beginnend mit dem Hauptsteuermodul werden die Module integriert, indem Sie sich durch die Steuerhierarchie nach unten bewegen
  • Untermodule zum Hauptsteuermodul werden entweder in der Breite zuerst oder in der Tiefe zuerst in die Struktur eingebaut.
  • Die Tiefenintegration integriert alle Module auf einem Hauptsteuerpfad der Struktur, wie in der folgenden Abbildung dargestellt:

Der Modulintegrationsprozess wird folgendermaßen durchgeführt:

  1. Das Hauptsteuermodul wird als Testtreiber verwendet, und die Stubs ersetzen alle Module, die dem Hauptsteuermodul direkt untergeordnet sind.
  2. Die untergeordneten Stichleitungen werden je nach gewähltem Ansatz (Breite zuerst oder Tiefe zuerst) einzeln durch tatsächliche Module ersetzt.
  3. Tests werden ausgeführt, wenn jedes Modul integriert ist.
  4. Nach Abschluss jedes Testsatzes wird nach Abschluss jedes Testsatzes ein weiterer Stub durch ein echtes Modul ersetzt
  5. Um sicherzustellen, dass keine neuen Fehler eingeführt wurden, können Regressionstests durchgeführt werden.

Der Prozess wird von Schritt 2 bis zum Aufbau der gesamten Programmstruktur fortgesetzt. Die Top-Down-Strategie klingt relativ unkompliziert, in der Praxis treten jedoch logistische Probleme auf.

Das häufigste dieser Probleme tritt auf, wenn die Verarbeitung auf niedrigen Hierarchieebenen erforderlich ist, um die oberen Ebenen angemessen zu testen.

Stubs ersetzen zu Beginn des Top-Down-Tests Low-Level-Module. Daher können in der Programmstruktur keine signifikanten Daten nach oben fließen.

Herausforderungen, denen sich der Tester möglicherweise gegenübersieht:

  • Verzögern Sie viele Tests, bis Stubs durch tatsächliche Module ersetzt werden.
  • Entwickeln Sie Stubs mit eingeschränkten Funktionen, die das eigentliche Modul simulieren.
  • Integrieren Sie die Software vom unteren Ende der Hierarchie nach oben.

Hinweis: Der erste Ansatz führt dazu, dass wir die Kontrolle über die Korrespondenz zwischen bestimmten Tests und die Einbindung bestimmter Module verlieren. Dies kann zu Schwierigkeiten bei der Bestimmung der Fehlerursache führen, was dazu neigt, die stark eingeschränkte Natur des Top-Down-Ansatzes zu verletzen.

Der zweite Ansatz ist praktikabel, kann jedoch zu einem erheblichen Overhead führen, da Stubs immer komplexer werden.

Bottom-up-Ansatz

Die Bottom-up-Integration beginnt mit dem Aufbau und Testen von Modulen auf der untersten Ebene der Programmstruktur. Dabei werden die Module von unten nach oben integriert.

Bei diesem Ansatz ist die für die einer bestimmten Ebene untergeordneten Module erforderliche Verarbeitung immer verfügbar, und die Notwendigkeit für die Stichleitungen entfällt.

Dieser Integrationstestprozess wird in vier Schritten durchgeführt

  1. Low-Level-Module werden zu Clustern zusammengefasst, die eine bestimmte Software-Unterfunktion ausführen.
  2. Ein Treiber wird geschrieben, um die Eingabe und Ausgabe von Testfällen zu koordinieren.
  3. Der Cluster oder Build wird getestet.
  4. Treiber werden entfernt und Cluster werden kombiniert, um sich in der Programmstruktur nach oben zu bewegen.

Mit zunehmender Integration sind separate Lektionen für Testfahrer erforderlich. Wenn die beiden obersten Ebenen der Programmstruktur von oben nach unten integriert werden, kann die Anzahl der Treiber erheblich reduziert und die Integration von Clustern erheblich vereinfacht werden. Die Integration folgt dem unten dargestellten Muster. Mit zunehmender Integration sind separate Lektionen für Testfahrer erforderlich.

Hinweis: Wenn die beiden obersten Ebenen der Programmstruktur von oben nach unten integriert sind, kann die Anzahl der Treiber erheblich reduziert und die Integration von Builds erheblich vereinfacht werden.

Urknall-Ansatz

Bei diesem Ansatz werden nicht alle Module integriert, bis alle Module bereit sind. Sobald sie fertig sind, werden alle Module integriert und dann ausgeführt, um festzustellen, ob alle integrierten Module funktionieren oder nicht.

Bei diesem Ansatz ist es schwierig, die Grundursache des Fehlers zu kennen, da alles auf einmal integriert wird.

Außerdem besteht eine hohe Wahrscheinlichkeit, dass kritische Fehler in der Produktionsumgebung auftreten.

Dieser Ansatz wird nur angewendet, wenn Integrationstests sofort durchgeführt werden müssen.

Zusammenfassung:

  • Die Integration wird durchgeführt, um die Interaktionen zwischen den Modulen eines Softwaresystems zu überprüfen. Es hilft, Defekte frühzeitig zu erkennen
  • Integrationstests können für Hardware-Software- oder Hardware-Hardware-Integration durchgeführt werden
  • Integrationstests werden mit zwei Methoden durchgeführt
    • Inkrementeller Ansatz
    • Urknall-Ansatz
  • Bei der Durchführung von Integrationstests wird im Allgemeinen die ETVX-Strategie (Einstiegskriterien, Aufgaben-, Validierungs- und Ausstiegskriterien) verwendet.