Black-Box-Testtechniken: Eine detaillierte Erklärung

In diesem Blogartikel wird eine detaillierte Erklärung der Black-Box-Testtechniken gegeben.

Möchten Sie wissen, wie Sie die Qualität Ihrer Software bewerten und das Risiko eines Fehlers minimieren können?

Einleitung

Der Hauptzweck von Softwaretests besteht darin, die Qualität von Software zu bewerten und das Risiko eines Fehlers zu minimieren. Man könnte denken, dass man alles testen kann und die Qualität jedes einzelnen Details beurteilen kann. Ist das aber wirklich möglich? Laut einem der sieben Testprinzipien des ISTQB ist erschöpfendes Testen unmöglich, was bedeutet, dass nicht alles getestet werden kann. Aus diesem Grund verwenden wir Testtechniken, um uns bei der Identifizierung von Testbedingungen zu helfen, bessere Testfälle zu gestalten und die besten Testfälle zur Ausführung auszuwählen.

Was sind Black-Box-Tests und welche Techniken gibt es?

Es gibt verschiedene Arten von Testtechniken, aber in diesem Blogartikel konzentrieren wir uns auf Black-Box-Tests und gehen auf mehrere Techniken des Black-Box-Testens ein.

Was sind Black-Box-Tests und welche Techniken gibt es?

Veranschaulichung von Black-Box-Testing

Black-Box-Testing ist eine Software-Testmethode, die zum Testen eines Systems verwendet wird, ohne vorherige Kenntnis der internen Struktur der zu testenden Software. Stattdessen liegt der Fokus darauf, wie das System als Ganzes funktioniert. Insbesondere konzentriert sich dieser Testansatz auf den Input, der in die Software eingeht, und den Output, der erzeugt wird, um festzustellen, ob die erwarteten Ergebnisse erzielt werden.

Um zu veranschaulichen, wie dies funktioniert, betrachten wir ein einfaches Beispiel: Angenommen, wir möchten die Taschenrechner-Anwendung auf unserem Telefon testen. Wir öffnen die Anwendung, geben die Zahlen ein, die wir berechnen möchten, sowie den Operator und das Gleichheitszeichen und warten auf das Ergebnis. Ein weiteres Beispiel wäre das Testen einer Social-Media-Anwendung. Bei Black-Box-Tests würde in diesem Fall ein Benutzername und ein Passwort eingegeben werden, während der erwartete Output das Einloggen in die Anwendung wäre. In beiden Beispielen geben wir Informationen ein und warten auf den Output, ohne den Code anzusehen.

Übersicht der Black-Box-Testtechniken

Es gibt verschiedene Black-Box-Testtechniken, die verwendet werden können, um ein System gegenüber vordefinierten Anforderungen zu validieren. Diese Techniken verwenden Use Cases, User Stories, Spezifikationen, Produktanforderungen und Software-Anforderungs-Spezifikationen als Testbasis, um zu definieren, was getestet werden muss und wie Testfälle richtig erstellt werden können.

Black-Box-Testtechniken lassen sich auf alle Ebenen des Tests sowie auf funktionelle und nicht-funktionale Testtypen anwenden. Es gibt vier Haupttechniken für Black-Box-Tests:

  • Äquivalenzpartitionierung
  • Boundary-Value-Analyse
  • Entscheidungstabellientest
  • State Transition Testing

1. Äquivalenzpartitionierung (EP)

Die Äquivalenzpartitionierung ist eine Technik, die Test Objekte in Partitionen oder Klassen einteilt, die auf die gleiche Weise behandelt und getestet werden. Diese Technik wird verwendet, um einen Bereich von Werten, Eingaben und Ausgaben zu testen. Es gibt gültige und ungültige Äquivalenzpartitionen. Gültige Äquivalenzpartitionen enthalten nur gültige Werte, die vom Test Objekt akzeptiert werden. Im Gegensatz dazu enthalten ungültige Äquivalenzpartitionen nur ungültige Werte, die vom Test Objekt abgelehnt werden.

Bei der Verwendung dieser Technik zur Gestaltung von Testfällen sind einige wichtige Punkte zu beachten:

  • Jeder einzelne Wert gehört nur zu einer der Partitionen.
  • Man muss immer gültige und ungültige Partitionen testen.
  • Ungültige Partitionen müssen einzeln getestet werden, da sie sonst die Ergebnisse maskieren würden.
  • Wenn erforderlich, können die Partitionen in Unterpartitionen unterteilt werden.
Um eine 100%-ige Abdeckung des Test Objekts mit dieser Technik zu erreichen, muss man mindestens ein repräsentatives Mitglied aus jeder Partition testen. Dies kann durch die Auswahl eines Werts aus jeder definierten gültigen und ungültigen Partition geschehen. Die Testabdeckung wird nicht erhöht, wenn zwei Werte aus der gleichen Partition getestet werden.

Beispiel für Äquivalenzpartitionierung

Der Rabatt wird je nach Gesamtbetrag des Einkaufswagens berechnet. Wenn der Gesamtbetrag im Bereich von 100–200 € liegt, beträgt der Rabatt 10 %. Bei einem Gesamtbetrag von 201–500 € beträgt der Rabatt 20 %. Bei einem Gesamtbetrag von über 500 € beträgt der Rabatt 30 %. In diesem Szenario können wir drei gültige Partitionen und eine ungültige Partition für den Betrag unter 100 € identifizieren.

Um Äquivalenzpartitionierung anzuwenden, können wir einen Wert aus jeder Partition auswählen: 140 € aus der ersten gültigen Partition, 370 € aus der zweiten gültigen Partition, 530 € aus der dritten gültigen Partition und 78 € aus der ungültigen Partition.

Jetzt haben wir vier Testfälle und eine 100%-ige Abdeckung erreicht, da alle definierten Partitionen abgedeckt sind.

2. Boundary-Value-Analyse (BVA)

Diese Technik ist eine Erweiterung der Äquivalenzpartitionierung und wird verwendet, um die Grenzen der gültigen und ungültigen Partitionen zu testen. Diese Grenzen sind Bruchstellen, an denen Fehler am wahrscheinlichsten auftreten. Beide Black-Box-Testtechniken - Äquivalenzpartitionierung und Boundary-Value-Analyse - können kombiniert werden. Es gibt zwei Arten der Boundary-Value-Analyse: Zwei-Wert-Boundary-Analyse und Drei-Wert-Boundary-Analyse.

Bei der Zwei-Wert-Boundary-Analyse testen wir den minimalen und maximalen Wert der Grenze. Im Vergleich dazu testen wir bei der Drei-Wert-Boundary-Analyse die Werte vor der Grenze, an der Grenze und kurz über der Grenze.

Beispiel für Zwei-Wert-Boundary-Analyse:

Betrachten wir das gleiche Rabattbeispiel wie oben. Der Rabatt wird je nach Gesamtbetrag des Einkaufswagens berechnet. Bei einem Gesamtbetrag von 100–200 € beträgt der Rabatt 10 %. Bei einem Gesamtbetrag von 201–500 € beträgt der Rabatt 20 %. Bei einem Gesamtbetrag von über 500 € beträgt der Rabatt 30 %. Mit einer einfachen Illustration können wir die Grenzen sehr leicht definieren.

Um Zwei-Wert-Boundary-Analyse anzuwenden, testen wir den minimalen und maximalen Wert jeder Grenze: 99 €, 100 €, 200 €, 201 €, 500 € und 501 €. Wir haben sechs Testfälle und erreichen eine 100%-ige Abdeckung, da alle definierten Grenzen abgedeckt sind.

3. Beispiel für Drei-Wert-Boundary-Analyse

Um Drei-Wert-Boundary-Analyse anzuwenden, testen wir die folgenden Werte: 99 €, 100 €, 101 €, 199 €, 200 €, 201 €, 499 €, 500 € und 501 €.

3. Entscheidungstabellientest

Diese Technik verwendet Tabellen, um alle möglichen Kombinationen von Eingaben und Ausgaben zu definieren. Die Tabelle enthält Spalten für die Eingangsbedingungen, erwartete Ausgaben und Testfälle.

Beispiel für einen Entscheidungstabellientest:

Angenommen, Sie testen eine Anwendung, die den Benutzer anhand seines Alters in verschiedene Kategorien einteilt (Kind, Jugendlicher, Erwachsener).

AlterKategorie
< 18 | Kind
18-25 | Jugendlicher
> 25 | Erwachsener
Sie würden dann Testfälle für jede Kombination von Eingabealter und erwarteter Kategorie erstellen.

4. State Transition Testing

Diese Technik wird verwendet, um zu testen, wie ein System zwischen verschiedenen Zuständen wechselt. Ein Zustand ist eine spezifische Konfiguration des Systems, während eine Übergangsbedingung die Bedingung ist, unter der das System von einem Zustand in einen anderen übergeht.

Beispiel für State-Transition-Testing:

Ein Automat hat die folgenden Zustände: "Leer", "Pin eingegeben", "Konto ausgewählt", "Transaktion abgeschlossen". Die Übergangsbedingungen sind "Pin eingeben", "Konto auswählen", "Geld abheben", "Karte zurückgeben".

Testfälle würden dann erstellt, um zu überprüfen, ob der Automat korrekt zwischen diesen Zuständen wechselt.

Fazit

Die tollen Black-Box-Testtechniken können auf vielfältige Weise angewendet werden, je nach Bedarf. Richtig eingesetzt helfen sie Ihnen, Testbedingungen zu identifizieren und bessere Testfälle zu gestalten. Dadurch verbessern Sie Ihren Testprozess und die Qualität Ihres Systems.