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.
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.
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.
- Die Art des gewählten Entwicklungslebenszyklusmodells
- Die Komplexität der zu testenden Software oder Anwendung
- 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.
- CTIS – Komponententests im Kleinformat
- 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.
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.
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.
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.
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.
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. |






