Um einwandfreie Produkte zu entwickeln, bedarf es einer beispiellosen Qualitätssicherung und Tests.
Eine der vorbereitenden Testtechniken, um das grundlegende Verhaltensmuster eines Systems oder einer Anwendung zu verstehen, ist das Black-Box-Testing. Ziel ist es, die Funktionsweise der Anwendung zu identifizieren, wie z. B. Benutzerfreundlichkeit, Reaktionszeit und Zuverlässigkeit, und sie unter erwarteten oder unerwarteten Ergebnissen zu kategorisieren.
Als leistungsstarke Testtechnik wird ein System durchgängig geprüft.
Dieser Blog hilft Ihnen, Black-Box-Testing im Detail zu verstehen, einschließlich seiner verschiedenen Techniken und der verwendeten Tools.
Was ist Black-Box-Testing?
Black-Box-Testing ist eine Softwaretesttechnik, bei der Tester keinen Zugriff auf den internen Code oder die Struktur des zu testenden Systems haben. Stattdessen konzentrieren sich die Tester auf die Software aus der Perspektive eines Endbenutzers und testen das Eingabe-/Ausgabeverhalten, die Benutzerfreundlichkeit und die Softwarefunktionalität. Es hilft sicherzustellen, dass die Software die Anforderungen des Benutzers erfüllt, und hilft auch, potenzielle Bugs und Fehler zu identifizieren, die die Funktionalität der Software beeinträchtigen könnten. Diese Art von Tests ist entscheidend, um sicherzustellen, dass Software zuverlässig und von guter Qualität für Endbenutzer ist.
Verdeutlichen wir dies anhand eines Beispiels: Angenommen, Sie testen die Suchfunktion einer Website. Sie wissen, dass Benutzer einen Suchbegriff eingeben und eine Liste von Ergebnissen erhalten sollten, die sich auf diesen Begriff beziehen. Sie wissen nicht, wie der Suchalgorithmus funktioniert, aber Sie können seine Funktionalität testen, indem Sie verschiedene Suchbegriffe eingeben und die Ergebnisse beobachten.
Black-Box-Funktionstesttechnik
Black-Box-Testing umfasst verschiedene Techniken, mit denen die Funktionalität einer Anwendung getestet wird. Es ist wichtig, die Konzepte jeder dieser Techniken zu verstehen, um zu verstehen, welche für Ihr Projekt die richtige ist. Werfen wir einen Blick auf einige der am häufigsten verwendeten Black-Box-Testtechniken.
- ECP-Technik
Die Äquivalenzklassenpartitionierung (ECP) ist eine Softwaretesttechnik, die hilft, Testfälle zu identifizieren, indem Eingabedaten in äquivalente Klassen unterteilt werden. Ziel der ECP ist es, die Anzahl der Testfälle zu reduzieren, die erforderlich sind, um eine maximale Testabdeckung zu erreichen und gleichzeitig effektive Tests zu ermöglichen.
Die Grundvoraussetzung der ECP ist, dass Eingabedaten basierend auf ihrer Äquivalenz in verschiedene Kategorien oder Klassen unterteilt werden können. Wenn ein System beispielsweise Eingabewerte im Bereich von 50 bis 90 akzeptiert, können Eingabewerte in die folgenden Äquivalenzklassen unterteilt werden:
- Gültige Eingabewerte - Eingabewerte innerhalb des Bereichs von 50 bis 90 gelten als gültige Eingabewerte und gehören zu dieser Äquivalenzklasse.
- Ungültige Eingabewerte - Eingabewerte außerhalb des Bereichs von 50 bis 90 gelten als ungültige Eingabewerte und gehören zu dieser Äquivalenzklasse.
- Null-Eingabewerte - Eingabewerte, die leer oder null sind, gelten als Null-Eingabewerte und gehören zu dieser Äquivalenzklasse.
Durch die Unterteilung der Eingabedaten in diese Äquivalenzklassen können Tester eine Reihe repräsentativer Testfälle identifizieren, mit denen das System effektiv getestet werden kann. Beispielsweise kann für jede Äquivalenzklasse ein Testfall erstellt werden, um sicherzustellen, dass das System jeden Eingabetyp korrekt verarbeitet.
Die Äquivalenzklasse repräsentiert oder definiert eine Reihe gültiger oder ungültiger Zustände für jede Eingabe, nachdem diese validiert wurde.
Die Anforderungen und Spezifikationen der Software dienen als Grundlage für diese Technik. Der Vorteil dieser Strategie besteht darin, dass sie dazu beiträgt, den Testzeitraum zu verkürzen, indem von einer unendlichen zu einer endlichen Anzahl von Testfällen übergegangen wird. Sie ist für den Einsatz in jeder Phase des Testverfahrens geeignet.
Betrachten wir ein Beispiel:
Betrachten wir eine Funktion der Softwareanwendung, die eine Handynummer mit 10 Ziffern entgegennimmt.
Ungültiger 1. Testfall |
Ungültiger 2. Testfall |
Ungültiger 3. Testfall |
Gültig |
ZIFFERN>=11 |
ZIFFERN<=9 |
ZIFFERN=10 |
ZIFFERN=10 |
98472622191 |
984543985 |
9991456234 |
9893451483 |
Anhand einer Handynummer mit 10 Ziffern als Beispiel können wir feststellen, dass es zwei gleichwertig legitime und ungültige Partitionen gibt. Die gültigen Partitionen funktionieren auf die gleiche Weise, nämlich die Weiterleitung zur nächsten Seite.
In dem obigen Beispiel enthalten zwei weitere Partitionen fehlerhafte Werte von 9 oder weniger als 9 und 11 oder mehr als 11 Ziffern. Wenn diese ungültigen Werte angewendet werden, verhalten sich diese ungültigen Partitionen ähnlich und werden zur Fehlerseite weitergeleitet.
Das obige Beispiel zeigt, dass es nur drei Testfälle gibt, was mit dem Prinzip der Äquivalenzpartitionierung übereinstimmt, das besagt, dass diese Technik darauf abzielt, die Anzahl der Testfälle zu reduzieren.
Der Vorteil der ECP-Testtechnik
Die Verwendung der ECP-Testtechnik bietet mehrere Vorteile:
- Erhöhte Genauigkeit: ECP kann Fehler erkennen, die von anderen Testtechniken übersehen werden könnten, wodurch die Gesamtgenauigkeit des Testprozesses erhöht wird.
- Einfache Implementierung: Die ECP-Testtechnik ist nicht schwierig zu implementieren und kann mit einer Vielzahl von Plattformen und Software verwendet werden.
- Verbesserte Effizienz: ECP kann Zeit und Aufwand sparen, indem ungültige Eingaben schnell identifiziert und die Notwendigkeit manueller Tests reduziert wird.
- Kosteneffektiv: Im Vergleich zu anderen Testmethoden ist ECP eine kosteneffiziente Lösung für Softwaretests.
- Reduzierung von Produktionsproblemen: ECP-Tests helfen, Probleme frühzeitig im Softwareentwicklungsprozess zu erkennen, wodurch Produktionsprobleme reduziert und Probleme leichter behoben werden können, bevor sie zu kostspieligen Fehlern werden.
Insgesamt ist die ECP-Testtechnik ein leistungsstarkes Werkzeug, um Fehler zu erkennen und die Softwarequalität zu verbessern.
- Grenzwertanalyse-Technik
Die Grenzwertanalyse ist eine Softwaretesttechnik, die sich auf das Testen der Eingabewerte an der Grenze oder am Rand des akzeptablen Eingabebereichs für ein System oder eine Anwendung konzentriert. Es handelt sich um eine Art von Black-Box-Testing, die hilft, Fehler oder Defekte in der Software zu identifizieren, die durch Randbedingungen verursacht werden könnten.
Die Grundvoraussetzung der Grenzwertanalyse ist, dass Fehler häufig an den extremen Grenzen der Eingabewerte auftreten und nicht in der Mitte des Eingabebereichs. Durch das Testen dieser Grenzwertwerte können Tester potenzielle Fehler identifizieren und die Qualität der Software verbessern.
Betrachten wir beispielsweise ein System, das Eingabewerte im Bereich von 1 bis 100 akzeptiert. Um eine Grenzwertanalyse an diesem System durchzuführen, würde sich der Tester auf das Testen der folgenden Eingabewerte konzentrieren:
- Minimalwert - Das Testen des Eingabewerts von 1, der der Minimalwert im akzeptablen Bereich ist, hilft sicherzustellen, dass das System den kleinsten Eingabewert korrekt verarbeitet.
- Maximalwert - Das Testen des Eingabewerts von 100, der der Maximalwert im akzeptablen Bereich ist, hilft sicherzustellen, dass das System den größten Eingabewert korrekt verarbeitet.
- Werte knapp unter dem Minimum - Das Testen von Eingabewerten knapp unter dem Minimalwert, wie z. B. 0 oder -1, hilft sicherzustellen, dass das System Werte außerhalb des akzeptablen Bereichs korrekt verarbeitet und entsprechende Fehlermeldungen ausgibt.
- Werte knapp über dem Maximum - Das Testen von Eingabewerten knapp über dem Maximalwert, wie z. B. 101 oder 1000, hilft sicherzustellen, dass das System Werte außerhalb des akzeptablen Bereichs korrekt verarbeitet und entsprechende Fehlermeldungen ausgibt.
- Entscheidungstabellen-Technik
Der Softwaretestansatz der Entscheidungstabellentests wird verwendet, um zu untersuchen, wie das System auf verschiedene Eingangskombinationen reagiert. Diese methodische Technik tabelliert die verschiedenen Eingangskombinationen und das daraus resultierende Systemverhalten.
Da die Entscheidungstabelle die Ursachen und Folgen einer gründlichen Testabdeckung aufzeichnet, wird sie auch als Ursache-Wirkungs-Tabelle bezeichnet. Techniken wie Entscheidungstabellentests, die zwei oder mehr Eingaben mit einer logischen Beziehung testen, werden häufig verwendet.
Es gibt mehrere Regeln in der Tabelle für eine einzelne Entscheidung. Die Regeln einer Entscheidungstabelle können erstellt werden, indem einfach UND zwischen Bedingungen eingefügt wird.
Im folgenden Beispiel werden Sie verstehen, wie verschiedene Eingangskombinationen zu unterschiedlichen Ergebnissen führen. Hier wird „UND“ durch das Zeichen Zirkumflex (^) gekennzeichnet, Y steht für „Ja“ und N steht für „Nein“. R1 bis R4 stehen für verschiedene Bedingungen unter bestimmten Eingaben und Ausgaben.
Die folgenden sind die wichtigsten Regeln, die aus der Tabelle extrahiert (herausgenommen) werden können:
- R1 = Wenn (Arbeitstag = Y) ^ (Feiertag = N) ^ (Regentag = Y) Dann, gehe ins Büro.
- R2 = Wenn (Arbeitstag = Y) ^ (Feiertag = N) ^ (Regentag = N) Dann, gehe ins Büro.
- R3 = Wenn (Arbeitstag = N) ^ (Feiertag = Y) ^ (Regentag = Y) Dann, schaue fern.
- R4 = Wenn (Arbeitstag = N) ^ (Feiertag = Y) ^ (Regentag = N) Dann, gehe zum Picknick.
Gemäß der untenstehenden Grafik ist es nicht erforderlich, die Bedingung in R1 und R2 zu überprüfen. Wenn der Tag ein Arbeitstag ist, ob es sonnig oder regnerisch ist, ist die Entscheidung, ins Büro zu gehen.
Also Outlook = Regnerisch und Outlook = Sonnig. Die folgenden Regeln sind die optimierten Versionen der vorherigen Regeln R1 und R2.
- R1 optimiert: Wenn (Tag = Arbeitstag) Dann gehe ins Büro
- R2 optimiert: Wenn (Tag = Arbeitstag) Dann gehe ins Büro
Der Verfeinerungs-/Optimierungsschritt erzeugt Regeln, die effektiv, effizient und genau sind.
- Zustandsübergangstabellen-Technik
Zustandsübergangstests werden verwendet, wenn ein Aspekt des Systems mit einer „endlichen Zustandsmaschine“ beschrieben werden kann.
Dies bedeutet einfach, dass das System in einer endlichen Anzahl von Zuständen existieren kann und die Übergänge zwischen ihnen durch die Regel der Maschine bestimmt werden. Dies ist das Modell, auf dem das System und die Tests basieren. Ein endliches Zustandssystem ist jedes System, bei dem die Ausgabe je nachdem, was zuvor geschehen ist, variiert. Ein Zustandsdiagramm ist eine gängige Darstellung eines endlichen Zustandssystems.
Wenn Sie von einem Bankautomaten 100 ₹ anfordern, erhalten Sie Bargeld. Sie können später dieselbe Anfrage stellen, aber die Gelder werden Ihnen verweigert (weil Ihr Guthaben nicht ausreicht).
Diese Ablehnung ist darauf zurückzuführen, dass das Guthaben auf Ihrem Bankkonto von ausreichend, um die Auszahlung zu decken, auf unzureichend gesunken ist. Die frühere Auszahlung hat höchstwahrscheinlich dazu geführt, dass sich Ihr Konto geändert hat.
Ein Zustandsdiagramm kann ein Modell aus der Perspektive des Systems, eines Kontos oder eines Kunden darstellen.
Ein Zustandsübergangsmodell besteht aus vier grundlegenden Komponenten:
- die Zustände, die die Software einnehmen kann (offen/geschlossen oder finanziert/unzureichende Mittel)
- die Übergänge von einem Zustand in einen anderen (nicht alle Übergänge sind zulässig)
- die Ereignisse, die einen Übergang verursachen (Schließen einer Datei oder Abheben von Geld)
- die Aktionen, die sich aus einem Übergang ergeben (eine Fehlermeldung oder die Aushändigung Ihres Geldes)
Es ist wichtig zu beachten, dass in einem bestimmten Zustand ein Ereignis nur eine Aktion auslösen kann, aber dasselbe Ereignis aus einem anderen Zustand eine andere Aktion und einen anderen Endzustand auslösen kann.
Ein Beispiel für die Eingabe einer persönlichen Identifikationsnummer (PIN) in ein Bankkonto ist oben dargestellt.
Die Zustände werden durch Kreise dargestellt, die Übergänge durch Linien mit Pfeilen und die Ereignisse durch Text in der Nähe der Übergänge.
Das Zustandsdiagramm zeigt sieben Zustände, aber nur vier Ereignisse (Karte eingeführt, PIN eingegeben, gültige PIN und ungültige PIN).
Es gäbe auch eine Rückkehr vom Zustand „Karte einziehen“ in den Ausgangszustand.
Es gäbe eine Option „Abbrechen“ von „Auf PIN warten“ und den drei Versuchen, die die Karte ebenfalls in ihren Ausgangszustand zurücksetzen und auswerfen würden. Der Zustand „Zugriff auf Konto“ würde den Beginn eines neuen Zustandsdiagramms markieren, das die gültigen Transaktionen anzeigt, die jetzt auf dem Konto durchgeführt werden könnten.
Anwendungsfalltests
Der Anwendungsfall ist ein Funktionstest des Black-Box-Testings, der verwendet wird, um Testfälle vom Anfang bis zum Ende des Systems basierend auf der Verwendung des Systems zu identifizieren. Das Team verwendet diese Technik, um ein Testszenario zu erstellen, das die gesamte Software basierend auf der Leistung jeder Funktion von Anfang bis Ende ausführen kann.
Es ist eine grafische Darstellung von Geschäftsanforderungen, die beschreibt, wie der Endbenutzer mit der Software oder Anwendung interagieren wird. Die Anwendungsfälle liefern uns alle möglichen Techniken, wie der Endbenutzer die Anwendung verwenden wird, wie in der Abbildung unten gezeigt:
Das obige Bild zeigt ein Beispiel für einen Anwendungsfall mit einer Bedingung, die sich auf die Kundenspezifikation (CRS) bezieht.
Wir haben sechs verschiedene Funktionen für das Modul P der Software.
Und in diesem Fall hat der Administrator Zugriff auf alle sechs Funktionen, der zahlende Benutzer hat Zugriff auf drei Funktionen und der kostenlose Benutzer hat keinen Zugriff auf eine der Funktionen.
Wie beim Administrator sind die verschiedenen Bedingungen wie folgt:
- Vorbedingung→ Administrator muss generiert werden
- Aktion→ Als zahlender Benutzer anmelden
- Nachbedingung→ 3 Funktionen müssen vorhanden sein
- Und für kostenlose Benutzer wären die verschiedenen Bedingungen wie folgt:
- Vorbedingung→ kostenloser Benutzer muss generiert werden
- Aktion→ Als kostenloser Benutzer anmelden
- Nachbedingung→ keine Funktionen
Wer schreibt den Anwendungsfall?
Der Kunde liefert die Kundenspezifikation (CRS) für die Anwendung, und das Entwicklungsteam entwirft den Anwendungsfall gemäß der CRS und sendet den Anwendungsfall dann zur Überprüfung an den Kunden.
Nach der Genehmigung des Kunden entwerfen und codieren die Entwickler die Software, und das Testteam schreibt Testpläne und Testfälle für verschiedene Softwarefunktionen.
Zu den Vorteilen von Testdesigntechniken gehören:
Es gibt mehrere Vorteile der Testdesigntechniken. Lassen Sie uns diese kurz besprechen.
- Effiziente Nutzung von Zeit und Ressourcen: Testdesigntechniken helfen Testern, die wichtigsten und relevantesten Testfälle zu identifizieren, die ausgeführt werden müssen. Dies macht den Testprozess effizienter und spart Zeit und Ressourcen.
- Verbesserte Testabdeckung: Durch die Verwendung verschiedener Testdesigntechniken können Tester sicherstellen, dass alle wichtigen Funktionen und Funktionalitäten der Software gründlich getestet werden. Dies verbessert die Testabdeckung und reduziert die Wahrscheinlichkeit, dass Defekte übersehen werden.
- Bessere Fehlererkennung: Testdesigntechniken helfen Testern, potenzielle Fehler frühzeitig im Testprozess zu identifizieren. Dies ermöglicht es Entwicklern, die Probleme zu beheben, bevor sie schwieriger und kostspieliger zu beheben werden.
- Erhöhte Testeffektivität: Testdesigntechniken ermöglichen es Testern, Tests zu entwerfen, die effektiver bei der Identifizierung von Defekten sind. Dies führt zu qualitativ hochwertigerer Software und verbesserter Kundenzufriedenheit.
- Konsistente Tests: Testdesigntechniken bieten einen strukturierten Ansatz zum Entwerfen von Tests, der sicherstellt, dass jeder Test konsistent ausgeführt wird.
Black-Box-Testing vs. White-Box-Testing
Während sowohl Black-Box- als auch White-Box-Testing ein einwandfreies Endprodukt gewährleisten, ist es wichtig, den grundlegenden Unterschied zwischen den beiden zu verstehen.
Black-Box-Testing |
White-Box-Testing |
Wird von Softwaretestern durchgeführt |
Wird von Softwareentwicklern durchgeführt |
Kenntnisse der Softwareimplementierung sind nicht erforderlich |
Kenntnisse der Softwareimplementierung sind erforderlich |
Dieser Ansatz behandelt die Software als Black Box, was bedeutet, dass sich der Tester nur auf die Funktionalität der Software konzentriert und ihre interne Struktur, ihren Code oder ihr Design nicht berücksichtigt |
Dieser Ansatz testet den internen Code, das Design und die Architektur der Software |
Codierungskenntnisse sind nicht erforderlich |
Codierungskenntnisse sind ein Muss |
Testen Sie die Software aus der Perspektive des Endbenutzers |
Konzentriert sich auf das Testen des gesamten Systems, nicht nur von der Benutzerseite aus |
Zusammenfassend
Black-Box-Testing wird verwendet, um Fehler im System zu finden, ohne in den tatsächlichen Code einzusehen. Wie oben erwähnt, ist es eine effiziente Möglichkeit, größere Codeabschnitte zu testen. Diese Art von Tests wird häufig verwendet, um die Qualität und Zuverlässigkeit eines Systems oder einer Anwendung zu überprüfen, indem der Fokus auf die Benutzersicht des Systems gelegt wird.
Mit den aufkommenden technologischen Trends benötigen Sie einen Partner, der sicherstellt, dass Ihre Website innovativ und benutzerfreundlich ist. Bei OpenSenseLabs helfen wir Unternehmen, ein besseres digitales Erlebnis zu bieten. Kontaktieren Sie uns unter [email protected] und lassen Sie sich von unseren Experten helfen.
Abonnieren
Verwandte Blogs
Erkunden von Drupal Single Directory Components: Ein Wendepunkt für Entwickler

Webentwicklung lebt von Effizienz und Organisation, und Drupal, unser Lieblings-CMS, ist mit seiner neuesten Funktion hier,…
7 schnelle Schritte zur Erstellung von API-Dokumentationen mit Postman

Wenn Sie mit APIs arbeiten, kennen Sie wahrscheinlich bereits Postman, den beliebten REST Client, dem unzählige Entwickler…
Was ist der Product Engineering Life Cycle?

Stellen Sie sich vor, Sie bauen ein Haus ohne Bauplan oder Konstruktionszeichnungen. Es wäre schwierig, die Kosten und den…