Die Äquivalenzpartitionierung beim Softwaretest ist eine Blackbox-Testtechnik, die Ihnen hilft, effiziente Testfälle zu erstellen, ohne Kompromisse bei der Testabdeckung einzugehen.
In diesem Artikel erfahren Sie, was Äquivalenzklassenpartitionierung ist, warum sie nützlich ist und welche Prozesse und Ansätze Sie verwenden können, um die Vorteile dieser Technik zu nutzen.
Was ist Äquivalenzklassenpartitionierung?
in der Softwareprüfung?
Jede Software hat bestimmte Eingabebedingungen. Im Zusammenhang mit Softwaretests beschreiben diese Eingabebedingungen die Werte oder Daten, die ein Tester verwenden muss, um die Qualität und Funktionalität seiner Software zu überprüfen. Diese Eingaben können so einfach sein wie ein Mausklick, bis hin zu Text und Zahlen.
Eine äquivalente Partition beim Softwaretest untersucht die verschiedenen Eingaben, die für die Nutzung der Software erforderlich sind, und gruppiert sie in Äquivalenzklassen, d. h. in Gruppen von Eingaben, die eine äquivalente Wirkung auf das Verhalten der Software haben.
Wenn Sie wissen, wie sich jede Gruppe von Eingaben verhalten wird, brauchen Sie nicht jeden Vertreter der Gruppe zu testen. Die Partitionierung von Äquivalenzklassen ist daher ein hervorragendes Mittel, um die Häufigkeit redundanter Tests zu reduzieren. In einer wettbewerbsintensiven Softwareentwicklungswelt mit immer engeren Fristen ist es von entscheidender Bedeutung, Zeit und Aufwand im Softwaretest-Lebenszyklus (STLC) zu sparen.
Abschließend sei darauf hingewiesen, dass es sich bei Äquivalenztests um eine Blackbox-Testtechnik handelt. Kurz gesagt, bedeutet dies, dass die Tester nichts über den internen Code oder die inneren Abläufe des Programms wissen müssen. Die Tests basieren auf Eingaben, Ausgaben und externen Verhaltensweisen. Daher konzentrieren sich diese Tests stark auf das Benutzerverhalten bei der Verwendung des Programms.
1. Äquivalenzpartitionierung beim Softwaretest in Kürze
Bei der Äquivalenzpartitionierung werden die Eingabedaten für Softwaretests in zwei Lager aufgeteilt: gültige und ungültige Eingaben. Die Werte innerhalb jeder Partition müssen dazu führen, dass die Software das gleiche Verhalten zeigt. Zum Beispiel:
- Wenn die Bedingung eines Wertes in Teilbereich A wahr ist, müssen auch die anderen Werte in Teilbereich A wahr sein.
- Wenn die Bedingungen für einen Wert in Teilbereich A falsch sind, müssen auch die anderen Werte in Teilbereich A falsch sein.
In einem Testkontext muss jede Partition mindestens einmal abgedeckt werden. Logischerweise bedeutet dies, dass, wenn ein Eintrag in Partition A ausfällt, auch alle anderen Eingänge ausfallen werden. Dieser Prozess sollte Zeit sparen, da die Tester, anstatt jede Eingabe in Partition A zu testen, nur eine testen und das Ergebnis auf der Grundlage der Gemeinsamkeiten extrapolieren können.
2. Warum Äquivalenzklassentests beim Softwaretest wichtig sind
Bevor wir uns mit den direkten Vorteilen von Äquivalenzklassentests beim Softwaretest befassen, müssen wir definieren, warum dieser Ansatz wichtig ist.
Allen Testern ist klar, dass Softwaretests Kompromisse erfordern. Zeit und Budgets sind begrenzt, was bedeutet, dass die Tester ihre Ressourcen optimal nutzen müssen. Die Äquivalenzpartitionierung von Softwaretests hilft den Teams, ein Gleichgewicht zwischen Effizienz und Zuverlässigkeit bei ihren Tests zu finden, indem sie die Anzahl der Eingaben reduziert.
Vorteile der Äquivalenzpartitionierung
in der Softwareprüfung
Eine äquivalente Partition bei Softwaretests wird von Testteams aus einer Vielzahl von Gründen bevorzugt. Hier sind einige der überzeugendsten.
1. Wirkungsgrad
Der große Vorteil der Äquivalenzpartitionstests liegt in ihrer Effizienz. Wenn Tester die Äquivalenzpartitionierung verwenden, können sie die Anzahl der benötigten Testfälle reduzieren, ohne Kompromisse bei der Testabdeckung einzugehen. Indem sie einen Eingabefall aus jeder Äquivalenzklasse auswählen, können die Tester sicher sein, dass sie verstehen, wie ihre Software mit einer Vielzahl von Eingaben funktioniert.
2. Einfachheit
Ein weiterer großer Vorteil der Äquivalenzpartitionierung von Softwaretests ist ihre Einfachheit. Die Aufteilung einer Vielzahl von Eingaben in gültige und ungültige Daten bedeutet, dass die Testplanung viel einfacher ist. Die Prüfung jeder einzelnen Eingabe erfordert einen hohen Dokumentations- und Koordinierungsaufwand. Die Beschränkung auf ein repräsentatives Beispiel vereinfacht den Testprozess.
Verbesserte Abdeckung
Durch die Verwendung von Äquivalenzklassen beim Testen können Sie auch Ihre Testzeit effizienter nutzen. Die Reduzierung der Testeingaben auf Klassen bedeutet, dass Sie jede Klasse gründlicher testen können. Dieser umfassende Ansatz wäre unmöglich, wenn Sie jeden Eingang einzeln prüfen würden. Die Äquivalenzpartitionierung ermöglicht es Teams, gültige und ungültige Daten, Randfälle, Grenzwerte und vieles mehr gründlich zu testen.
3. Wiederverwendbarkeit
Die anfängliche Zeit, die Sie in die Erstellung jeder Äquivalenzklasse beim Softwaretest investieren, zahlt sich später aus, wenn Sie diese Klassen für zukünftige Eingabetests wiederverwenden. Zwar sind nicht alle Partitionen für künftige Tests relevant, aber die, die es sind, werden Ihnen bei künftigen Projekten oder sogar bei Regressionstests viel Zeit sparen.
Nachteile der Äquivalenzpartitionierung
in der Softwareprüfung
Obwohl die Äquivalenzpartitionierung einige wichtige Vorteile bietet, ist sie nicht die ideale Lösung für jedes Szenario. Lassen Sie uns einige seiner Grenzen erkunden.
1. Auftrag eingeben
In bestimmten Situationen ist die Eingabereihenfolge ein entscheidender Teil der Prüfung der Funktionalität einer Anwendung. Das ist nichts, was man mit Hilfe der Äquivalenzpartitionierung wirklich reduzieren kann. Die Prüfer müssen sich dieser Situationen bewusst sein und alternative Techniken anwenden, um eine gute Abdeckung zu gewährleisten.
2. Komplexe Input-Abhängigkeiten
Komplexe Software mit komplexen Eingabeabhängigkeiten ist ein weiterer Bereich, in dem die Grenzen der Äquivalenzpartitionierung deutlich werden. Zum Beispiel eine Software, die Berechnungen auf der Grundlage verschiedener Eingaben ausgibt. In diesem Szenario müssten die Tester eine Vielzahl von Techniken anwenden, um die kombinatorische Explosion zu reduzieren und die Wahrscheinlichkeit zu erhöhen, Fehler zu isolieren.
Alternative Ansätze zur Ergänzung der
Grenzen der Äquivalenzprüfung
Während Äquivalenzpartitionstests für viele Testszenarien geeignet sind, kann hochkomplexe Software mit komplizierten Abhängigkeiten zwischen Eingabewerten zusätzliche ergänzende Ansätze erfordern.
Wenn es um das Schreiben von Testfällen für komplexe Software geht, ist eine Kombination dieser Ansätze eine gute Idee.
1. Paarweise Prüfung
Paarweises Testen ist eine Softwaretesttechnik, die alle möglichen Kombinationen jedes Paares von Eingabeparametern testet. Auf diese Weise wird sichergestellt, dass jedes Parameterpaar mindestens einmal zusammen getestet wird.
2. Entscheidungstabellen-Tests
Eine Entscheidungstabelle hilft den Testern, verschiedene Eingabekombinationen methodisch zu erfassen. Dies ist ein guter Weg, um eine systematische Abdeckung zu gewährleisten, wenn komplexe Abhängigkeiten bestehen.
3. Prüfung von Zustandsübergängen
Bei dieser Testart wird gemessen, wie die Software als Reaktion auf verschiedene Eingabekombinationen zwischen verschiedenen Zuständen übergeht.
4. Modellbasierte Prüfung
Dieser Ansatz erfordert die Erstellung eines Modells auf der Grundlage der internen Logik der Software und die Verwendung eines Automatisierungswerkzeugs zur Erstellung von Testfällen auf der Grundlage dieses Modells. Mit dieser Technik lässt sich die Komplexität gut bewältigen und eine angemessene Abdeckung sicherstellen.
Beispiele für die Prüfung der Äquivalenzklassenaufteilung
Der beste Weg, die Äquivalenzpartitionierung zu verstehen, besteht darin, sich anzuschauen, wie und wo man eine Äquivalenzklasse beim Testen von Software einsetzen kann. Hier sind einige Beispiele, die Ihnen helfen sollen, sich das Konzept besser vorzustellen.
1. Äquivalenzklassenpartitionierung Testbeispiel 1
Ein Online-Bestellformular ist ein gutes Beispiel für eine Äquivalenzklasse im Softwaretest.
Nehmen wir an, Sie entwickeln eine App für einen Online-Händler für stationäre Geräte. Es gibt ein typisches Bestellformular für A4-Papierballen. Hier sehen Sie, wie Sie Äquivalenzklassen verwenden können, um diese Form zu testen.
Äquivalenzklassen:
Die Mengen an A4-Papier liegen in einem bestimmten Bereich von z. B. 1 bis 100. Es gibt also drei Klassen:
- 1 bis 100
- Zahlen unter 1
- Zahlen über 100.
Testfälle:
Es sollten drei Testfälle mit den folgenden erwarteten Ergebnissen durchgeführt werden
- Jede Zahl zwischen 1 und 100 = Auftrag bearbeitet
- Ziffern unter 1 = Fehlermeldung
- Zahlen über 100 = Fehlermeldung
2. Äquivalenzpartitionierungstest Beispiel #2
Eine Äquivalenzklasse in der Softwareprüfung kann mehr als nur mit Zahlen umgehen. In diesem Beispiel werden wir untersuchen, wie Sie das gleiche Prinzip verwenden können, um ein Datei-Upload-Portal zu überprüfen. Angenommen, Sie müssen für eine Website testen, auf der Benutzer Ausweisdokumente hochladen müssen, aber nur bestimmte Formate akzeptieren können.
Äquivalenzklassen:
- Unterstützt werden PDF- und JPEG-Dokumente.
- Nicht unterstützte Dokumente sind alle anderen Dokumentformate
- Kein Dokument
Testfälle:
- Test durch Hochladen von PDF oder JPEG = erfolgreicher Upload
- Test durch Hochladen eines nicht unterstützten Formats = Fehlermeldung
- Test ohne Datei-Upload = Fehlermeldung
Wie man eine Äquivalenzpartitionierung implementiert
Software-Testansatz
Wenn Sie Äquivalenzklassen beim Testen verwenden möchten, müssen Sie strategisch vorgehen. Hier finden Sie eine nützliche Schritt-für-Schritt-Anleitung zur Implementierung der Äquivalenzpartitionierung beim Softwaretest.
Schritt Nr. 1: Identifizierung der Eingangsvariablen
Jede Software reagiert auf eine Vielzahl von Eingangsvariablen. Bei komplexer Software können diese Variablen sehr groß sein. Gehen Sie also die Softwareanforderungen und -spezifikationen durch und ermitteln Sie alle Variablen, die sich auf das Verhalten der Software auswirken.
Zu den offensichtlichsten Eingaben gehören Formulare für Benutzereingaben. Sie müssen jedoch ein breiteres Spektrum an Inputs für Ihre Liste in Betracht ziehen. Sie können auch Umgebungsvariablen, API-Aufrufe, interne Berechnungen und so weiter berücksichtigen.
Als Nächstes sollten Sie die verschiedenen Arten von variablen Daten kennen. Sie können diese Variablen als Integer, Boolean, String usw. kategorisieren, um die entsprechenden Partitionen zu definieren.
Schließlich müssen Sie die Eingabebeschränkungen untersuchen. Dazu gehören z. B. die zulässigen Zeichen, definierte Formate und Mindest-/Höchstwerte.
Schritt #2. Gültige und ungültige Partitionen bestimmen
Betrachten Sie jede Eingangsvariable und beginnen Sie, sie nach gültigen und ungültigen Ergebnissen zu unterteilen. Dies sind die Äquivalenzklassen, die Sie bei der Prüfung verwenden werden.
1. Gültige Partitionen
Gültige Partitionen können in zwei Klassen unterteilt werden.
Positive Äquivalenzklassen:
Werte, von denen Sie erwarten, dass Ihre Software sie erfolgreich verarbeiten kann. Bei Software, die prozentuale Noten aufzeichnet, sind beispielsweise alle Werte zwischen 0 und 100 zulässig.
Negative Äquivalenzklassen:
In diese Kategorie fallen Werte, die außerhalb der Grenzen der erwarteten Eingabe liegen, die Ihre Software aber mit einer Fehlermeldung behandeln sollte. Die Eingabe ist zum Beispiel 110 für eine prozentuale Note, was die Software zu einer Fehlermeldung veranlasst, die besagt: „Alle Werte müssen zwischen 0 und 100 liegen“.
2. Ungültige Partitionen
Diese Äquivalenzklassen enthalten Eingaben, die Fehler oder unerwartete Verhaltensweisen auslösen. In unserem obigen Beispiel könnte dies Versuche beinhalten, A+ oder B oder ähnliche Eingaben in die prozentuale Bewertung einzugeben. Diese Eingaben könnten zwar technisch korrekt sein, liegen aber außerhalb der numerischen Erwartungen.
#3. Schreiben effektiver Testfälle
Als Nächstes müssen Sie Testfälle entwerfen, die jede Äquivalenzpartition mindestens einmal abdecken. Wie bereits erwähnt, gewährleistet dies eine angemessene Testabdeckung.
Zunächst müssen Sie innerhalb jeder Äquivalenzpartition repräsentative Werte auswählen, die sowohl gültige als auch ungültige Daten umfassen können.
Tipps zum Schreiben solider Testfälle
- Denken Sie über Grenzwerte nach: Stellen Sie sicher, dass Sie die Grenzen Ihrer Partitionen testen. Minimum, Maximum, inklusiv, exklusiv usw., da diese Bereiche besonders anfällig für Bugs sind. Wenn Ihre Eingabeerwartungen z. B. zwischen 0 und 100 liegen, prüfen Sie auf negative Werte sowie auf Zahlen wie 101.
- Erwägen Sie positive und negative Testszenarien für Ihre gültigen und ungültigen Testfälle.
- Kombinationstests sind eine gute Idee. Verwenden Sie einige verschiedene Ansätze, wie in unseren alternativen Ansätzen beschrieben, um die Einschränkungen des obigen Abschnitts über die Äquivalenzprüfung zu ergänzen.
- Dokumentieren Sie die Gründe für die Einteilung der Eingabewerte in bestimmte Partitionen und beschreiben Sie klar das erwartete Verhalten jedes Tests.
- Verwenden Sie nach Möglichkeit visuelle Hilfsmittel, um Ihren Testfällen ein Gefühl von Klarheit und Objektivität zu verleihen, indem Sie Diagramme oder Tabellen zur Darstellung Ihrer Partitionen verwenden.
#4. Planen Sie Ihre Testfälle und führen Sie sie aus
Priorisieren Sie Ihre Aufgaben anhand von Faktoren wie:
- Welche Bereiche sind am ehesten von Mängeln betroffen?
- Welche Szenarien am ehesten schwerwiegende Folgen haben, wie Abstürze oder Einfrieren
Führen Sie dann Ihre Tests aus und protokollieren Sie die Ergebnisse und eventuell auftretende Fehler. Für komplexe Programme mit vielen Eingaben können Sie RPA-Tools verwenden, um Benutzeraktionen zu imitieren.
#5. Analysieren Sie die Ergebnisse
Fassen Sie die gesammelten Testdaten zusammen und analysieren Sie die Ergebnisse. Einige Methoden, die Sie anwenden müssen, sind:
- Betrachten Sie jeden Testfall und vergleichen Sie die tatsächlichen Ergebnisse mit den erwarteten Ergebnissen.
- Finden Sie Unstimmigkeiten, untersuchen Sie Fehler und Mängel und melden Sie sie.
#6 Zusätzliche Tipps
Auch wenn diese Tipps nicht in jedem Szenario anwendbar sind, werden sie sich bei komplexen Softwaretests als nützlich erweisen.
- Entscheidungstabellen eignen sich hervorragend zur Visualisierung Ihrer Äquivalenzpartitionen und der verschiedenen Eingabekombinationen, die Sie möglicherweise verwenden möchten
- Sie können Äquivalenzklassen zusammenführen, wenn sie ein nahezu identisches Verhalten aufweisen, wodurch der Testprozess weiter optimiert wird.
- Verwendung von Grenzwerttests zur Verbesserung der Fehlererkennung
- Automatisieren Sie nach Möglichkeit Ihre Testfälle zur Äquivalenzpartitionierung
Äquivalenzpartitionierung und Randwertanalyse
Die Äquivalenzpartitionierung basiert auf der Annahme, dass jeder Test innerhalb einer Partition das gleiche Ergebnis liefert. Das ist zwar in vielen Situationen richtig, aber es funktioniert nicht immer. So können beispielsweise Eingaben, die versehentlich zu einer Partition hinzugefügt wurden, ungeprüft bleiben, was zu einer verringerten Abdeckung und potenzieller Instabilität der Software in der Folge führt.
Die Lösung für dieses Problem ist die Grenzwertprüfung. Es ermöglicht den Softwaretestteams, sich auf die Bereiche zu konzentrieren, die am ehesten mit Risiken behaftet sind, und die Software auf dieser Grundlage zu testen. Kurz gesagt, sie geht davon aus, dass Risiken am ehesten an den Rändern oder Grenzen Ihrer Eingabepartitionen auftreten. Daher können Tester zusätzlich zu den anderen Testfällen der Äquivalenzklassen auch Testfälle für die oberen und unteren Grenzen der Eingaben schreiben.
Äquivalenzpartitionierung und Automatisierung mit ZAPTEST
Softwaretest-Automatisierungstools wie ZAPTEST können Teams dabei helfen, die Äquivalenzpartitionierung sowohl während der Testerstellung als auch während der Testausführung zu automatisieren.
Lassen Sie uns herausfinden, wie ZAPTEST Ihnen helfen kann, die Vorteile dieses nützlichen Blackbox-Testansatzes zu nutzen.
1. Auswahl der Werkzeuge
Es ist wichtig, das richtige Werkzeug für die jeweilige Aufgabe zu wählen. Die meisten Testautomatisierungs-Tools sind entweder auf Web-, Mobile- oder Desktop-Tests spezialisiert. ZAPTEST ist in der Lage, plattform- und anwendungsübergreifend zu testen und ist damit eine solide Wahl.
2. Schreiben und Ausführen von Testfällen
Mit ZAPTEST 1Script können Sie die Benutzeroberfläche scannen, um Testautomatisierungen zu erstellen. Darüber hinaus können Sie auch Anwendungsmodelle scannen, wenn Sie sich in einem frühen Stadium der Entwicklung befinden. Mit der Funktion Scan GUI scannt ZAPTEST alle Testobjekte und fügt sie der Objektliste hinzu.
Von hier aus können Sie dem Diagramm Objekte hinzufügen und die Prüfschritte erstellen.
Mit ZAPTEST können Sie das Schreiben der Fälle über eine einfache Drag-and-Drop-Schnittstelle automatisieren. Sie brauchen keine Programmierkenntnisse, um mit ZAPTEST Testfälle zu erstellen. Von hier aus können Sie also die entsprechende Operation aus einer Dropdown-Methode auswählen und einen Testfall auf der Grundlage der für Ihre Schnittstelle benötigten Eingabewerte erstellen. Anschließend können Sie Testfälle für jede Äquivalenz erstellen und Ihre Testfälle ausführen. Sie können sogar Testfälle wiederverwenden und sie im Step-Editor bearbeiten, was viel Zeit spart.
3. Berichterstattung und Testfallmanagement
Mit ZAPTEST können Sie Testfälle parallel ausführen und so viel Zeit sparen. Auf diese Weise können Sie eine große Anzahl verschiedener Äquivalenzpartitionen auf einmal ausführen oder bestimmte Testgruppen durchführen.
Die Ergebnisse sind dank detaillierter Berichte über fehlgeschlagene und bestandene Tests, Screenshots, Ausführungsprotokolle und Leistungskennzahlen für jeden Testfall leicht zu erfassen.
4. Pflege von Testfällen
Außerdem können Sie Ihre Testfälle dank der hochwertigen Versionskontrollfunktionen einfach nachverfolgen und pflegen. Darüber hinaus können ZAPTEST-Benutzer Tests klonen und wiederverwenden, um ein neues Maß an Effizienz zu erreichen.
ZAPTEST bietet neben der Automatisierung von Testfällen noch viele weitere Funktionen. Mit einer Suite von RPA-Tools bietet ZAPTEST eine 2-in-1-Funktionalität, die die Lücke zwischen DevOps und BizOps in einer Zukunft der Hyperautomatisierung schließt, in der alles, was automatisiert werden kann, auch automatisiert wird.
Abschließende Überlegungen
Die Äquivalenzpartitionierung ist eine elegante Lösung für Situationen, in denen Tester ein Gleichgewicht zwischen Effizienz und Genauigkeit finden müssen. Da manche Software eine schier unendliche Anzahl von Eingaben zulässt, hilft die Äquivalenzklassenpartitionierung den Teams, die Testdaten in überschaubare, mundgerechte Stücke zu zerlegen, die jeweils gründlich getestet werden können.