Was ist Komponententest? Techniken, Beispieltestfälle

⚡ Intelligente Zusammenfassung

Bei Komponententests wird jeder einzelne Teil einer Anwendung für sich geprüft, ohne ihn in den Rest zu integrieren, sodass Fehler innerhalb eines einzelnen Moduls gefunden und behoben werden können, bevor die Montage beginnt.

  • 🧩 Umfang: Eine Komponente nach der anderen, isoliert von den umgebenden Komponenten.
  • 👥 Eigentümer: Die Tester führen es aus, nachdem die Entwickler die Unit-Tests abgeschlossen haben.
  • 🔬 CTIS: Komponententests in kleinen Systemen isolieren die Komponente vollständig.
  • 🔗 CTIL: Komponententests in großen Systemen erhalten die Abhängigkeiten, ob real oder simuliert.
  • 🧱 Doubles: Ein Treiber ruft die Komponente auf; ein Stub wird von ihr aufgerufen.
  • Exit: Im Protokoll bleibt kein kritischer, hoher oder mittlerer Fehler offen.

Komponententesttechniken und Beispieltestfälle

Was ist Komponententest?

Bauteilprüfung ist eine Art von Softwaretest, bei dem jede einzelne Komponente separat getestet wird, ohne sie mit anderen Komponenten zu integrieren. Aus architektonischer Sicht wird es auch als ModultestsManche Quellen bezeichnen es als Programmtest.

Jede Software besteht als Ganzes aus mehreren Komponenten, und das Komponententesting befasst sich mit dem Testen dieser Komponenten einzeln. Es ist eine der häufigsten Testarten. Black-Box-Test Die vom QA-Team durchgeführten Tests.

Ein Hinweis zur Namensgebung ist hier angebracht. Das ISTQB-Glossar behandelt Komponententests und Unit-Test Die Begriffe „Unit-Test“ und „Komponententest“ werden synonym für dasselbe Testniveau verwendet. Viele Entwicklungsteams – und auch dieser Artikel – halten in der Praxis an dieser Trennung fest: Entwickler führen Unit-Tests für ihren eigenen Code durch, Tester hingegen testen die Komponenten des ausgelieferten Builds. Die Vergleichstabelle am Ende dieses Artikels verdeutlicht diese praktische Unterscheidung.

Wie das untenstehende Diagramm zeigt, verfügt das Komponententesten über eine eigene Teststrategie und einen eigenen Testplan, in dem jeder Teil der Software oder Anwendung einzeln betrachtet wird. Für jede Komponente Testszenario wird definiert, was dann in übergeordnete Testfälle und schließlich in detaillierte Testfälle auf niedriger Ebene unterteilt wird. Testfälle mit Voraussetzungen.

Komponententesthierarchie von der Teststrategie bis hin zu detaillierten Testfällen

Die Verwendung des Begriffs „Komponententest“ variiert je nach Anwendungsbereich und Organisation. Die häufigsten Gründe für diese unterschiedliche Wahrnehmung sind die folgenden drei.

  1. Die Art des gewählten Entwicklungslebenszyklusmodells
  2. Die Komplexität der zu testenden Software oder Anwendung
  3. Ob die Tests mit oder ohne Isolation von den anderen Komponenten der Anwendung durchgeführt werden

Der Softwaretestlebenszyklus erzeugt zahlreiche Testartefakte, also Dokumente, die während der Testaktivitäten erstellt und verwendet werden. Dazu gehören die Testrichtlinie und die Teststrategie, die festlegen, welche Testarten eingesetzt werden und wie tief die Tests in einem bestimmten Projekt reichen.

Wer führt Komponententests durch?

Komponententests werden von Testern durchgeführt. Unit-Tests hingegen werden von den Entwicklern durchgeführt, die eine einzelne Funktion oder Prozedur testen. Nach Abschluss der Unit-Tests folgen die Komponententests, für die die Tester die Verantwortung übernehmen.

Wann sollten Komponententests durchgeführt werden?

Die Komponententests erfolgen unmittelbar nach den Unit-Tests durch die Entwickler, bevor der Build an das Testteam freigegeben wird. Dieser Build wird als UT-Build (Unit-Testing-Build) bezeichnet. In dieser Phase wird die Hauptfunktionalität jeder Komponente getestet.

Zulassungskriterien für Komponententests

  • Der minimale Satz an Komponenten, der in den UT-Build aufgenommen werden muss, wurde entwickelt und einem Unit-Test unterzogen.

Beendigungskriterien für Komponententests

  • Die Funktionalität jeder Komponente funktioniert wie spezifiziert.
  • Es ist kein kritischer, hoch- oder mittelschwerer Fehler bzw. Prioritätsfehler mehr offen. Fehlerprotokoll.

Komponententesttechniken

Je nach Tiefe des Testumfangs wird das Komponententesting in zwei Kategorien eingeteilt.

  1. CTIS – Komponententests im Kleinformat
  2. CTIL – Komponententest in großen Anlagen

CTIS – Komponententests im Kleinformat

Komponententests können mit oder ohne Isolation von den anderen Komponenten der zu testenden Anwendung durchgeführt werden. Werden die anderen Komponenten isoliert getestet, spricht man von Komponententests im kleinen Rahmen.

Beispiel 1: Bei einer Website mit fünf verschiedenen Webseiten bezeichnet man das separate Testen jeder einzelnen Webseite, isoliert von den anderen Komponenten, als Komponententest im kleinen Rahmen.

Beispiel 2: Die unten abgebildete Startseite von guru99.com enthält viele Komponenten, wie zum Beispiel Home, Testing, SAPWeb, Muss man lernen!, Big Data, Live-Projekte und Blog.

Guru99 Startseiten-Navigationsmenüs werden als separate testbare Komponenten behandelt.

Jede Software besteht nach demselben Prinzip aus vielen Komponenten, und jede Komponente hat wiederum eigene Unterkomponenten. Jedes in Beispiel 2 aufgeführte Modul einzeln zu testen, ohne dessen Integration mit den anderen Komponenten zu berücksichtigen, ist im Grunde genommen ein Komponententest im Kleinen.

Durch Öffnen des Dropdown-Menüs „Testen“ werden die Unterkomponenten der Testkomponente angezeigt: Manuelle Prüfung, SOAPUI, QTP, JUnit, Selenium, Testmanagement und Mobiles TestenIm folgenden Screenshot sind diese Unterkomponenten rot hervorgehoben.

Testen eines Dropdown-Menüs, dessen Unterkomponenten rot hervorgehoben sind.

CTIL – Komponententest in großen Anlagen

Komponententests, die ohne Isolation von den anderen Komponenten der zu testenden Anwendung durchgeführt werden, werden als Komponententests im Allgemeinen bezeichnet.

Ein Beispiel verdeutlicht den Unterschied. Angenommen, eine Anwendung besteht aus drei Komponenten: Komponente A, Komponente B und Komponente C.

Der Entwickler hat Komponente B erstellt und möchte sie testen lassen. Um Komponente B vollständig zu testen, hängt ein Teil ihrer Funktionalität von Komponente A und ein anderer Teil von Komponente C ab, wie das folgende Diagramm veranschaulicht.

Komponente B wurde getestet, wobei Komponente A durch einen Treiber und Komponente C durch einen Stub ersetzt wurde.

Der Funktionsablauf ist A → B → C, was bedeutet, dass Komponente B sowohl von A als auch von C abhängt. In diesem Ablauf ist der Stub die aufgerufene Funktion und der Treiber die aufrufende Funktion.

Komponente A und Komponente C sind noch nicht entwickelt. Um Komponente B vollständig zu testen, werden A und C bei Bedarf durch einen Treiber und einen Stub ersetzt, sodass die beiden fehlenden Teile als Dummy-Objekte fungieren, bis die eigentlichen Komponenten verfügbar sind.

  • Stummel: Ein Stub wird von der zu testenden Komponente aufgerufen. Komponente C ist noch nicht bereit, daher fungiert ein Stub als deren Ersatz und gibt die von Komponente B erwarteten Antworten zurück.
  • Treiber: Ein Treiber ruft die zu testende Komponente auf. Komponente A ist noch nicht bereit, daher springt ein Treiber an ihre Stelle und ruft Komponente B mit den erforderlichen Eingaben auf.

Beispieltestfälle für Komponententests

Die beiden untenstehenden Webseiten sind funktional miteinander verknüpft, was sie zu einem nützlichen Komponentenpaar für Tests macht.

Webseite 1 ist die Anmeldeseite der Demo-Banking-Website.

Anmeldeseitenkomponente mit Feldern für Benutzer-ID und Passwort

Sobald der Benutzer eine gültige Benutzer-ID und ein gültiges Passwort eingegeben und auf die Schaltfläche „Absenden“ geklickt hat, wird er zur Startseite der Demo-Bank-Website weitergeleitet, die im Folgenden angezeigt wird.

Startseitenkomponente des Managers mit Navigationslinks und Bildern

Hierbei handelt es sich bei der Anmeldeseite um eine Komponente und bei der Startseite um eine andere. Das separate Testen der Funktionalität jeder Seite wird als Komponententest bezeichnet.

Komponententestszenarien auf Webseite 1:

  • Geben Sie eine ungültige Benutzer-ID ein und überprüfen Sie, ob dem Endbenutzer eine benutzerfreundliche Warnung angezeigt wird.
  • Geben Sie eine ungültige Benutzer-ID und ein ungültiges Passwort ein, klicken Sie auf Zurücksetzen und vergewissern Sie sich, dass die Felder für Benutzer-ID und Passwort gelöscht sind.
  • Geben Sie einen gültigen Benutzernamen und ein gültiges Passwort ein und klicken Sie auf die Schaltfläche „Anmelden“.

Komponententestszenarien auf Webseite 2:

  • Überprüfen Sie, ob die Willkommensnachricht für die Managerseite auf der Startseite angezeigt wird.
  • Prüfen Sie, ob alle Links auf der linken Seite der Webseite anklickbar sind.
  • Prüfen Sie, ob die Manager-ID in der Mitte der Startseite angezeigt wird.
  • Prüfen Sie, ob die drei verschiedenen Bilder gemäß dem Diagramm auf der Startseite vorhanden sind.

Unit-Tests vs. Komponententests

Die folgende Tabelle fasst zusammen, wie sich die beiden Ebenen in der alltäglichen Praxis unterscheiden.

Unit Tests Komponententest
Testen einzelner Programme und Module, um nachzuweisen, dass das Programm gemäß der Spezifikation ausgeführt wird. Jedes Objekt oder jeden Teil der Software separat testen, gegebenenfalls isoliert von anderen Objekten.
Anhand der Konstruktionsunterlagen validiert. Anhand von Testanforderungen und Anwendungsfällen validiert.
Von Entwicklern erstellt. Durchgeführt von Testern.
Zuerst erledigt. Wird durchgeführt, nachdem die Unit-Tests auf Seiten der Entwickler abgeschlossen sind.
Mängel werden üblicherweise direkt vor Ort behoben und nicht formell protokolliert. Fehler werden protokolliert und tracdurch den Fehlermanagementprozess geführt.

Häufig gestellte Fragen

Risikominderung, Überprüfung des funktionalen und nicht-funktionalen Verhaltens der Komponente, Aufbau von Vertrauen in ihre Qualität, Aufspüren von Fehlern und Verhinderung deren Eskalationping in höhere Teststufen.

Modelle lesen eine Komponentenkonsistenztracund schlägt ungültige Eingaben, Grenzwerte und Fehlerpfade vor, die bei einem manuellen Durchlauf häufig übersehen werden. Ein Tester bestätigt dennoch jedes erwartete Ergebnis vor der Ausführung.

Ja. Ein Stub, der vordefinierte Antworten liefert, und ein Treiber, der feste Eingaben verarbeitet, sind formelhafter Code, den ein Assistent schnell schreiben kann. Die Entscheidung, welche Antworten realistisch sind, bleibt jedoch eine menschliche Angelegenheit.

Komponententests untersuchen eine Komponente einzeln. Integrationstests untersucht die Schnittstellen und Interaktionen zwischen den Komponenten und wird nach dem Komponententest ausgeführt.

Code-Level-Frameworks wie z.B. JUnit, TestNG, NUnit und pytest sowie UI-Komponenten-Runner wie Cypress Komponententests, Storybook und Jest. Sie alle fügen sich in ein System ein. Automatisierung Pipeline.

Erstellung und Wartung der Duplikate. Ein Stub, der sich vom eigentlichen Bauteil entfernt, verbirgt Fehler bis zur Integration, daher muss jede simulierte Antwort überprüft werden, sobald die eigentliche Abhängigkeit ausgeliefert wird.

Die Reihenfolge wird umgekehrt. Testfälle werden geschrieben und automatisiert, bevor die Komponente existiert. Anschließend wird Code hinzugefügt, bis die Tests erfolgreich durchlaufen werden. Die Komponente wird mit ihrer bereits vorhandenen Testsuite ausgeliefert.

Beides hängt davon ab, wer es ausführt. Tester arbeiten als Blackbox anhand der Komponentenspezifikation, während Entwickler mit Codezugriff diesen anwenden. weiße Kiste Abdeckung innerhalb derselben Komponente.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: