what is component testing
Was ist Komponententest, auch Modultest beim Softwaretest genannt:
Eine Komponente ist die niedrigste Einheit einer Anwendung. Also, Komponententest; Wie der Name schon sagt, handelt es sich um eine Technik zum Testen der niedrigsten oder kleinsten Einheit einer Anwendung.
Komponententests werden manchmal auch als Programm- oder Modultests bezeichnet.
Eine Anwendung kann als Kombination und Integration vieler kleiner Einzelmodule betrachtet werden. Bevor wir das gesamte System testen, ist es wichtig, dass jede Komponente ODER die kleinste Einheit der Anwendung gründlich getestet wird.
bester mp3 song downloader für android
In diesem Fall werden die Module oder Einheiten unabhängig voneinander getestet. Jedes Modul empfängt eine Eingabe, verarbeitet sie und generiert die Ausgabe. Die Ausgabe wird dann anhand der erwarteten Funktion validiert.
Die Softwareanwendungen sind von Natur aus riesig und es ist eine Herausforderung, das gesamte System zu testen. Dies kann zu vielen Lücken in der Testabdeckung führen. Daher wird empfohlen, vor dem Einstieg in den Integrationstest oder den Funktionstest mit dem Komponententest zu beginnen.
Lesen Sie auch=> Unterschied zwischen Einheit, Integration und Funktionstest
Was du lernen wirst:
- Komponententest
- Das Ziel der Komponententests
- Eingaben zum Testen auf Komponentenebene
- Wer testet Komponenten?
- Was wird unter Komponententest getestet?
- Wann ist der Komponententest abgeschlossen?
- Teststrategie für Komponententests
- Stubs und Treiber
- Ein Beispiel
- Wie schreibe ich Komponententestfälle?
- Komponententest gegen Unit-Test
- Komponente gegen Schnittstelle gegen Integration gegen Systemtests
- Fazit
- Literatur-Empfehlungen
Komponententest
Es ist eine Art White-Box-Test.
Beim Komponententest wird also nach Fehlern gesucht und die Funktion der Module / Programme überprüft, die separat getestet werden können.
Es gibt eine Teststrategie und einen Testplan für das Testen von Komponenten. Für jede Komponente gibt es ein Testszenario, das in Testfällen weiter unterteilt wird. Das folgende Diagramm zeigt dasselbe:
Das Ziel der Komponententests
Das Hauptziel des Komponententests besteht darin, das Eingabe- / Ausgabeverhalten des Testobjekts zu überprüfen. Es stellt sicher, dass die Funktionalität des Testobjekts gemäß der gewünschten Spezifikation ordnungsgemäß und vollständig funktioniert.
Eingaben zum Testen auf Komponentenebene
Die vier wichtigsten Eingaben für das Testen auf Komponentenebene sind:
- Projekttestplan
- System Anforderungen
- Komponentenspezifikationen
- Komponentenimplementierungen
Wer testet Komponenten?
Das Testen von Komponenten wird von QS-Diensten oder dem Tester durchgeführt.
Was wird unter Komponententest getestet?
Beim Testen von Komponenten kann die Überprüfung der funktionalen oder spezifischen nicht funktionalen Eigenschaften von Systemkomponenten berücksichtigt werden.
Dies kann das Testen des Ressourcenverhaltens (z. B. Bestimmen von Speicherlecks), Leistungstests, Strukturtests usw. sein.
Wann ist der Komponententest abgeschlossen?
Die Komponententests werden nach dem Komponententest durchgeführt.
Komponenten werden getestet, sobald sie erstellt wurden. Daher besteht die Möglichkeit, dass die Ergebnisse einer zu testenden Komponente von anderen Komponenten abhängen, die wiederum noch nicht entwickelt wurden.
Abhängig vom Entwicklungslebenszyklusmodell können Komponententests isoliert mit anderen Komponenten des Systems durchgeführt werden. Die Isolierung erfolgt, um äußere Einflüsse zu vermeiden.
Um diese Komponente zu testen, verwenden wir Stubs und Treiberzur Simulation der Schnittstelle zwischen Softwarekomponenten.
Der Integrationstest wird nach dem Komponententest durchgeführt.
Teststrategie für Komponententests
Abhängig von der Tiefe des Testniveaus wird das Komponententest in zwei Teile unterteilt:
- Komponententests in kleinen (ctis)
- Komponententest in großen Mengen (CTIL)
Wenn Komponententests isoliert von anderen Komponenten durchgeführt werden, wird dies als Komponententest in kleinen Schritten bezeichnet. Dies erfolgt ohne Berücksichtigung der Integration mit anderen Komponenten.
Wenn Komponententests ohne Isolation mit anderen Komponenten der Software durchgeführt werden, wird dies als Komponententest im Großen und Ganzen bezeichnet. Dies ist der Fall, wenn eine Abhängigkeit vom Funktionsfluss der Komponenten besteht und wir sie daher nicht isolieren können.
Wenn die Komponenten, von denen wir abhängig sind, noch nicht entwickelt sind, verwenden wir Dummy-Objekte anstelle der eigentlichen Komponenten. Diese Dummy-Objekte sind der Stub (aufgerufene Funktion) und der Treiber (aufrufende Funktion).
Stubs und Treiber
Bevor ich mich kurz mit Stubs und Treibern befasse, sollte ich mich kurz mit dem Thema befassen Unterschied zwischen Komponententests und Integrationstests. Der Grund dafür ist, dass Stubs und Treiber auch beim Integrationstest verwendet werden. Dies kann zu Verwechslungen zwischen diesen beiden Testtechniken führen.
Die Integrationstesttechnik ist eine Technik, bei der wir zwei Komponenten nacheinander kombinieren und das integrierte System gemeinsam testen. Daten von einem System werden zu einem anderen System übertragen und die Richtigkeit der Daten wird für das integrierte System überprüft.
Im Gegensatz zu Modultests, bei denen die einzelne Komponente / das einzelne Modul gründlich getestet wird, bevor es in andere Komponenten integriert wird. Wir können also sagen, dass Komponententests vor dem Integrationstest durchgeführt werden.
Sowohl Integration als auch Komponentenverwendung Stubs und Treiber .
'Treiber' sind die Dummy-Programme, mit denen die Funktionen des untersten Moduls aufgerufen werden, falls die aufrufende Funktion nicht vorhanden ist.
'Stubs' kann als Code bezeichnet werden, ein Snippet, das die Eingaben / Anforderungen vom obersten Modul akzeptiert und die Ergebnisse / Antworten zurückgibt
Wie bereits erläutert, werden die Komponenten einzeln und unabhängig getestet. Daher kann es einige Merkmale der Komponenten geben, abhängig von der anderen Komponente, die derzeit nicht entwickelt wird. Um die Komponenten mit diesen „unentwickelten“ Funktionen zu testen, müssen wir einige Stimulanzien verwenden, die die Daten verarbeiten und an die aufrufenden Komponenten zurückgeben.
Auf diese Weise stellen wir sicher, dass die einzelnen Komponenten gründlich getestet werden.
Hier sehen wir das:
- C1, C2, C3, C4, C5, C6, C7, C8, C9 ————— sind die Komponenten
- C1, C2 und C3 bilden zusammen die Untereinheit 1
- C4 und C5 bilden zusammen die Untereinheit 2
- C6, C7 und C8 bilden zusammen die Untereinheit 3
- C9 allein macht die Untereinheit 4
- Untereinheit 1 und Untereinheit 2 bilden zusammen die Geschäftseinheit 1
- Untereinheit 3 und Untereinheit 4 bilden zusammen die Geschäftseinheit 2
- Business Unit 1 und Business Unit 2 bilden zusammen den Antrag.
- In diesem Fall besteht der Komponententest darin, die einzelnen Komponenten C1 bis C9 zu testen.
- Das Netz Der Pfeil zwischen der Untereinheit 1 und der Untereinheit 2 zeigt den Integrationstestpunkt.
- Ebenso die Netz Der Pfeil zwischen Untereinheit 3 und Untereinheit 4 zeigt den Integrationstestpunkt
- Der grüne Pfeil zwischen Geschäftsbereich 1 und Geschäftsbereich 2 zeigt den Integrationstestpunkt
Daher würden wir tun:
- KOMPONENTE Testen auf C1 bis C9
- INTEGRATION Testen zwischen den Untereinheiten und Geschäftseinheiten
- SYSTEM Testen der gesamten Anwendung
Ein Beispiel
Bis jetzt müssen wir festgestellt haben, dass Komponententests sind eine Art White-Box-Testtechnik . Nun, es kann richtig sein. Dies bedeutet jedoch nicht, dass diese Technik nicht in der Black-Box-Testtechnik verwendet werden kann.
Entscheidungsbaumalgorithmus im Data Mining
Stellen Sie sich eine riesige Webanwendung vor, die mit einer Anmeldeseite beginnt. Als Tester (auch in einer agilen Welt) konnten wir es kaum erwarten, bis die gesamte Anwendung entwickelt und testbereit ist. Um unsere Markteinführungszeit zu verlängern, müssen wir frühzeitig mit dem Testen beginnen. Wenn wir also sehen, dass die Anmeldeseite entwickelt wurde, müssen wir darauf bestehen, dass sie uns zum Testen zur Verfügung gestellt wird.
Sobald Sie die Anmeldeseite zum Testen zur Verfügung haben, können Sie alle Ihre Testfälle (positiv und negativ) ausführen, um sicherzustellen, dass die Funktionalität der Anmeldeseite wie erwartet funktioniert.
Das Testen Ihrer Anmeldeseite zu diesem Zeitpunkt bietet folgende Vorteile:
bestes Testfall-Management-Tool für Jira
- Die Benutzeroberfläche wird auf Benutzerfreundlichkeit getestet (Rechtschreibfehler, Logos, Ausrichtung, Formatierung usw.).
- Versuchen zu benutzen negative Testtechniken wie der Authentifizierung und Autorisierung. In diesen Fällen besteht eine große Wahrscheinlichkeit, Fehler zu finden.
- Verwendung von Techniken wie SQL Injections würde sicherstellen, dass die Sicherheitsverletzung sehr früh getestet wird.
Die Fehler, die Sie zu diesem Zeitpunkt protokollieren würden, würden dem Entwicklungsteam als „Lessons Learned“ dienen und diese würden in die Codierung der aufeinander folgenden Seite implementiert. Daher haben Sie durch frühzeitiges Testen eine bessere Qualität der Seiten erreicht, die noch entwickelt werden müssen.
Da die anderen aufeinander folgenden Seiten noch nicht entwickelt sind, benötigen Sie möglicherweise Stubs, um die Funktionalität der Anmeldeseite zu überprüfen. Zum Beispiel ,Möglicherweise möchten Sie eine einfache Seite mit der Angabe 'Protokollierung erfolgreich' bei korrekten Anmeldeinformationen und ein Popup-Fenster mit Fehlermeldungen bei falschen Anmeldeinformationen.
Sie können unser früheres Tutorial weiter durchgehen Integrationstests um mehr Einblicke in Stubs und Treiber zu erhalten.
Wie schreibe ich Komponententestfälle?
Die Testfälle für Komponententests werden aus Arbeitsprodukten abgeleitet, beispielsweise dem Software-Design oder dem Datenmodell. Jede Komponente wird durch eine Folge von Testfällen getestet, wobei jeder Testfall eine bestimmte Kombination von Eingabe / Ausgabe, d. H. Teilfunktionalität, abdeckt.
Unten finden Sie einen Beispielausschnitt eines Komponententestfalls für das Anmeldemodul.
Wir können andere Testfälle ähnlich schreiben.
Komponententest gegen Unit-Test
Der allererste Unterschied zwischen Komponententest und Komponententest besteht darin, dass der erste von Testern durchgeführt wird, während der zweite von Entwicklern oder SDET-Fachleuten durchgeführt wird.
Unit-Tests werden auf granularer Ebene durchgeführt. Auf der anderen Seite werden Komponententests auf Anwendungsebene durchgeführt. Beim Komponententest wird überprüft, ob ein einzelnes Programm oder der Code gemäß den Angaben ausgeführt wird. Beim Komponententest wird jedes Objekt der Software separat mit oder ohne Isolierung mit anderen Komponenten / Objekten des Systems getestet.
Das Testen von Komponenten ähnelt dem Testen von Einheiten, wird jedoch auf einer höheren Integrationsstufe und im Kontext der Anwendung durchgeführt (nicht nur im Kontext dieser Einheit / dieses Programms wie beim Testen von Einheiten).
Komponente gegen Schnittstelle gegen Integration gegen Systemtests
Komponente Wie ich bereits erklärt habe, ist dies die niedrigste Einheit einer Anwendung, die unabhängig getestet wird.
Ein Schnittstelle ist die Verbindungsschicht der 2 Komponenten. Das Testen der Plattform oder der Schnittstelle, auf der die beiden Komponenten interagieren, wird als Schnittstellentest bezeichnet.
Das Testen der Schnittstelle ist jetzt etwas anders. Diese Schnittstellen sind meistens APIs oder Webdienste Das Testen dieser Schnittstellen ähnelt also nicht der Black-Box-Technik, sondern Sie führen eine Art API-Test oder Webdienst-Test mit durch SOAP-Benutzeroberfläche oder ein anderes Werkzeug.
Sobald der Schnittstellentest abgeschlossen ist, kommt der Integrationstests .
Während des Integrationstests kombinieren wir die einzelnen getesteten Komponenten einzeln und testen sie schrittweise. Wir überprüfen während der Integration, dass sich die einzelnen Komponenten nacheinander wie erwartet verhalten und die Daten beim Fluss von einem Modul zu einem anderen Modul nicht geändert werden.
Sobald alle Komponenten integriert und getestet sind, wir führen die Systemtests um die gesamte Anwendung / das gesamte System zu testen. Dieser Test validiert die Geschäftsanforderungen anhand der implementierten Software.
Fazit
Ich würde sagen, dass Unit Testing und Komponententests werden nebeneinander durchgeführt.
Im Gegensatz zu Unit-Tests, die vom Entwicklungsteam durchgeführt werden, werden Komponenten- / Modultests vom Testteam durchgeführt. Es wird immer empfohlen, vor dem Start des Integrationstests einen Durchkomponententest durchführen zu lassen.
Wenn der Komponententest absolut solide ist, werden wir beim Integrationstest weniger Fehler finden. Es würde Probleme geben, aber diese Probleme würden mit der Integrationsumgebung oder den Konfigurationsproblemen zusammenhängen. Sie können sicherstellen, dass die Funktionalität der integrierten Komponenten einwandfrei funktioniert.
Ich hoffe, dieses Tutorial war hilfreich, um die Komponenten-, Integrations- und Systemtests zu verstehen. Wenn Sie noch Fragen haben, können Sie uns gerne in Kommentaren fragen.
Literatur-Empfehlungen
- Beste Software-Test-Tools 2021 (QA Test Automation Tools)
- Was ist System Integration Testing (SIT)? Lernen Sie anhand von Beispielen
- Testen von Primer eBook Download
- Was ist ein Vergleichstest (Lernen mit Beispielen)
- Was ist Integrationstest (Tutorial mit Beispiel für Integrationstests)
- Funktionstests gegen nichtfunktionale Tests
- Die Unterschiede zwischen Unit Testing, Integration Testing und Functional Testing
- Was ist inkrementelles Testen? Detaillierte Erläuterung mit Beispielen