Lesezeit: 10 Minuten
Das Schreiben von Testfällen scheint möglicherweise kein so wichtiger Teil der Entwicklung zu sein. Damit ein Softwaretester seine Arbeit jedoch am besten ausführen kann, benötigen sie eine kristallklare Reihe von Schritten und eine klare Definition dessen, was getestet wird.
Jeder, von der NASA und GE bis hin zu Unternehmen, kann von Teams profitieren, die von ihrer besten Seite arbeiten. Das Schreiben exzellenter Testfälle ist nur eine weitere Möglichkeit, die Effizienz und Effektivität von Teams zu verbessern, und Parasoft geht es darum, Teams dazu zu befähigen, genau das zu tun.
In diesem Blog behandeln wir die folgenden Themen zum Schreiben eines Testfalls:
- Was ist ein Testfall?
- Testskript vs. Testfall
- Verschiedene Testfalltypen
- Schreiben von Softwaretestfällen
- Standard-Testfallformat
- Best Practices beim Schreiben von Testfällen
- Testsuite vs. testplan
- Werkzeuge zum Schreiben von Testfällen
Erfahren Sie, wie Sie nützliche und wiederverwendbare Testfälle erstellen können, um API-Funktionstests mit der mit KI erweiterten Testautomatisierung zu vereinfachen.
Demo anfordern
Was ist ein Testfall in Software?
Ein Testfall ist genau das, wonach er sich anhört: Ein Testszenario, das die Funktionalität über eine Reihe von Aktionen oder Bedingungen hinweg misst, um das erwartete Ergebnis zu überprüfen. Sie gelten für jede Softwareanwendung, können manuelle Tests oder automatisierte Tests verwenden und Testfallverwaltungstools verwenden.
Beim Schreiben von Testfällen ist es wichtig, dass sie eine grundlegende Variable oder Aufgabe testen, z. B. ob ein Rabattcode für das richtige Produkt auf einer E-Commerce-Webseite gilt oder nicht. Dies ermöglicht einem Softwaretester mehr Flexibilität beim Testen von Code und Funktionen.
Optimierung von Unit- und Regressionstests für eingebettete Systeme
Testskript vs. Testfall
Der Unterschied zwischen Testfällen und Testskripten sollte ebenfalls geklärt werden. Ein Testskript ist ein kurzes Programm, das bestimmte Funktionen testen soll. Ein Testfall ist ein Dokument mit Schritten, die wie geplant im Voraus abgeschlossen werden müssen.
Betrachten Sie Testfälle als eine sorgfältig geplante Reise und Testskripte eher als eine kurze Reise zum Lebensmittelgeschäft.
Verschiedene Arten von Testfällen
Testfälle können viele verschiedene Aspekte des Codes messen. Die beteiligten Schritte können auch dazu bestimmt sein, ein Fail-Ergebnis im Gegensatz zu einem positiven erwarteten Ergebnis zu induzieren, z. B. wenn ein Benutzer das falsche Kennwort auf einem Anmeldebildschirm eingibt.
Einige gängige Testfallbeispiele wären die folgenden:
Testfälle können auf eine beliebige Anzahl von Funktionen in einer bestimmten Software angewendet werden. Einige der beliebtesten Beispiele sind:
- API-Tests – Sehen Sie es in Aktion.
- UI-Tests – Sehen Sie es in Aktion.
- Unit-Tests – Sehen Sie es in Aktion.
- Last & Leistungstests – Sehen Sie es in Aktion.
- Sicherheitstests
- SQL-Abfragen
- Low-Code-Anwendungstests
Ein beliebtes Testfallbeispiel
Testfälle sind in einer Vielzahl von Softwareszenarien nützlich. Alles, vom Banking bis zur persönlichen Software, erfordert eine Testfallanwendung. Wenn das Ziel beispielsweise darin besteht, verschlüsselte, vertrauliche Daten zu haben, muss die Software über Funktionen verfügen, die wie vorgesehen funktionieren.
Funktionstests sind jedoch nur ein Aspekt beim Schreiben eines Testfalls. Softwaretests sollten jeden Aspekt des Codes von der Leistung über die Kompatibilität bis hin zur Sicherheit robust herausfordern. Aus diesem Grund muss persönliche Verschlüsselungssoftware so gründlich getestet werden — insbesondere wenn es um Dinge wie Web-APIs geht.
So schreiben Sie Softwaretestfälle
Das Schreiben von Testfällen hängt davon ab, was der Testfall misst oder testet. Dies ist auch eine Situation, in der die gemeinsame Nutzung von Testressourcen zwischen Entwicklern und Testteams das Testen von Software beschleunigen kann. Aber alles beginnt damit, zu wissen, wie man einen Testfall effektiv und effizient schreibt.
Testfälle haben einige integrale Teile, die immer in Feldern vorhanden sein sollten. Jeder Testfall kann jedoch in 8 grundlegende Schritte unterteilt werden.
Schritt 1: Testfall-ID
Testfälle sollten alle eindeutige IDs tragen, um sie darzustellen. In den meisten Fällen hilft das Befolgen einer Konvention für diese Namens-ID bei der Organisation, Klarheit und dem Verständnis.
Schritt 2: Testbeschreibung
Diese Beschreibung sollte detailliert beschreiben, welche Einheit, welches Merkmal oder welche Funktion getestet oder was verifiziert wird.
Schritt 3: Annahmen und Vorbedingungen
Dies beinhaltet alle Bedingungen, die vor der Ausführung des Testfalls erfüllt sein müssen. Ein Beispiel wäre ein gültiges Outlook-Konto für eine Anmeldung erforderlich.
Schritt 4: Testdaten
Dies bezieht sich auf die Variablen und ihre Werte im Testfall. Im Beispiel einer E-Mail-Anmeldung wären dies der Benutzername und das Passwort für das Konto.
Schritt 5: Auszuführende Schritte
Dies sollten leicht wiederholbare Schritte sein, die aus Sicht des Endbenutzers ausgeführt werden. Ein Testfall für die Anmeldung bei einem E-Mail-Server kann beispielsweise die folgenden Schritte umfassen:
- Öffnen Sie die E-Mail-Server-Webseite.
- Benutzername eingeben.
- Passwort eingeben.
- Klicken Sie auf „Enter“ oder „Login“.
Schritt 6: Erwartetes Ergebnis
Dies gibt das Ergebnis an, das nach der Ausführung des Testfallschritts erwartet wird. Nach Eingabe der richtigen Anmeldeinformationen wäre das erwartete Ergebnis eine erfolgreiche Anmeldung.
Schritt 7: Tatsächliches Ergebnis und Nachbedingungen
Im Vergleich zum erwarteten Ergebnis können wir den Status des Testfalls bestimmen. Im Falle der E-Mail-Anmeldung wäre der Benutzer entweder erfolgreich angemeldet oder nicht. Die Nachbedingung ist das, was als Ergebnis der Schrittausführung geschieht, z. B. die Umleitung in den E-Mail-Posteingang.
Schritt 8: Pass / Fail
Die Bestimmung des Pass / Fail-Status hängt davon ab, wie das erwartete Ergebnis und das tatsächliche Ergebnis miteinander verglichen werden.
Gleiches Ergebnis = Bestanden
Verschiedene Ergebnisse = Fehlgeschlagen
Beschleunigen Sie Softwaretests, indem Sie Testressourcen für alle Dev & -Testteams freigeben
Standard-Unit-Testfallformat
Jeder Teil eines gut geschriebenen Unit-Tests definiert mehrere Kernaspekte, darunter:
- Vom Test ausgeführte Funktionen
- Im Test verwendete Daten
- Erwartetes Ergebnis der Testausführung
- Sicherstellen, dass der Test isoliert von anderen Teilen der Codebasis ausgeführt wurde
Es ist wichtig zu wissen, dass das Standardformat gut geschriebener Tests aus den folgenden Teilen besteht:
- Aussagekräftiger Name der Testmethode
- Kontrollierte Daten oder Mocks, die zum Testen verwendet werden sollen
- Zu testende Methode oder Unit (der Teil des Codes, den wir testen)
- Anwenden einer Assertion
- Ausführen des Unit-Tests isoliert
Gibt es eine Testfallvorlage?
Wie bereits erwähnt, gibt es ein Standard-Testfallformat. Die Testfallvorlage würde jedoch wahrscheinlich von Unternehmen zu Unternehmen und sogar von Team zu Team variieren. Stattdessen ist eine Testfallvorlage das Dokument mit einer Liste von Testszenarien und nachfolgenden Testfällen.
Beispiel für einen Qualitätstestfall
Obwohl Testfälle je nach Art des Tests und dem gesamten Testfeld variieren, hängt die Erstellung eines Qualitätstestfalls von den wenigen zuverlässigen Elementen oben ab. Denken Sie daran: Der Name der Testmethode muss die zu testende Methode oder Einheit und das erwartete Ergebnis enthalten.
Es sollte auch beachtet werden, dass jede Einheit isoliert getestet werden sollte. In diesem Fall bedeutet „Isolation“, dass die Tests so weit wie möglich fokussiert bleiben, um nur den Teil der Anwendung auszuführen, für den wir testen.
Dieses Beispiel stammt aus einem bankbezogenen Testfall:
Mit diesem Methodennamen wissen wir, dass dies ein Komponententest ist, der:
- Testen der Methode ‚isOverDrawn ()‘.
- Die für die kontrollierten Daten verwendete Zahl betrug 500.
- Das erwartete Ergebnis ist wahr.
Ein aussagekräftiger Methodenname ermöglicht es jedem, der die Ergebnisse überprüft, zu verstehen, wofür der Komponententest getestet wurde. Darüber hinaus signalisiert es die zu testenden Daten, das erwartete Ergebnis und was getestet wurde.
Wenn der Test fehlschlägt, ist die Kenntnis des erwarteten Ergebnisses entscheidend, um die Fehlerbehebung zu vereinfachen und sicherzustellen, dass keine Regressionen eingeführt werden.
Testfalldaten
Die verwendeten Daten müssen ausreichen, um den Test auszuführen. Für Unit-Tests möchten wir es so einfach wie möglich machen, die grundlegendste Einheit unserer Anwendung zu testen. Die Daten können so einfach sein wie das Erstellen einer Zeichenfolge oder Objektvariablen, für die Sie die Daten steuern können. Oder ein Mock-Framework kann für den Test verwendet werden, wenn eine Abhängigkeit nicht verfügbar ist oder Sie diese Abhängigkeit in einem bestimmten Status benötigen.
Gerade genug haben, um dieses eine Teil zu testen, wenn es ausreicht. Sie müssen NICHT jeden Teil der Anwendung konfigurieren, damit der Test ausgeführt werden kann.
All dies wirkt sich darauf aus, wie sich der Komponententest verhält, da dies die Daten sind, die für die Ausführung des Komponententests verwendet werden. Daher ist dieser Teil des Komponententests am zeitaufwendigsten, da ein gewisses Verständnis des zu testenden Codes erforderlich ist, um zu wissen, welche Daten zum Testen verwendet werden sollen.
Halten Sie es einfach, indem Sie nur die Teile verwenden, die für den zu testenden Code benötigt werden. Mocks sind in dieser Phase sehr nützlich, da Sie steuern können, wie sich Methoden aus diesen Objekten verhalten, wenn Sie mit Ihrem Test interagieren.
Zum Beispiel mit den folgenden Daten:
Wir haben die „echte Kundenklasse“ vermieden, indem wir einen Mock für die „Kundenklasse“ zum Testen der Isolation verwendet haben. Wir möchten kein anderes Objekt für diesen Test einführen oder konfigurieren, da es eine weitere Ebene der Wartbarkeit für dieses Objekt hinzufügt und das Ergebnis der zu testenden Methode nicht beeinflusst.
Die nächste zu erstellende Variable ist der „Anfangssaldo“ – etwas, das aufgrund der Kenntnis des Codes bekannt ist. Die nächste Zeile zeigt das Kontoobjekt, das erstellt wird, zusammen mit dem Mock und dem anfänglichen Saldo, um die Methode vorzubereiten, für die wir mit den gerade verwendeten Daten testen.
In diesem Beispiel wird das Kontoobjekt mit dem Scheinkunden konfiguriert, da uns die Daten des Kundenobjekts egal sind und wir einen anfänglichen Saldo übergeben haben, den wir für unseren Test steuern können.
Die nächste Zeile definiert die Eingabe, da für die zu testende Methode eine Nummer verwendet werden muss. Wir haben die „Balance“ definiert, die in der Methode verwendet werden soll, für die wir testen. Dann wird die Methode mit dem Ergebnis der Methode ausgeführt, die in unserer Variablen gespeichert ist, damit wir sie später verwenden können.
Anwenden einer Assertion
Sobald der Test erfolgreich abgeschlossen werden kann (da er von Anfang bis Ende ohne Ausnahmen oder Fehler ausgeführt wird), ist es an der Zeit, eine Assertion auf den Komponententest anzuwenden. Ohne die Assertion ist der Komponententest bedeutungslos, da Sie nichts erzwingen, um sicherzustellen, dass er wie beabsichtigt funktioniert.
Das Sammeln der Abdeckung der ausgeführten Zeilen gibt an, was ausgeführt wurde, bietet jedoch nicht genügend Details, um Folgendes zu bestimmen:
- Wenn sich der Code wie erwartet verhält.
- Wenn der Code die Qualitätsziele erfüllt.
- Wenn die zurückgegebenen Daten die erwarteten Daten sind.
Eine Assertion kann so grundlegend sein wie:
Solange der Komponententest eine Assertion enthält, die das Ergebnis der zu testenden Methode überprüft, ist dies ein aussagekräftiger Komponententest.
Durch Anwendung des Standardformats des Komponententests kann ein Team Tests einfacher verwalten, lesen und / oder aktualisieren, um zu sehen, wo weitere Tests auf den Rest der Anwendung angewendet werden können.
Was sind die Best Practices für das Schreiben von Qualitätstestfällen?
Das Schreiben effektiver Tests und Testfälle kann im Laufe der Zeit optimiert werden. Einige Best Practices umfassen die Verwendung starker Titel, starker Beschreibungen und die Prägnanz und Klarheit der Sprache.
Sie sollten aber auch Voraussetzungen, Annahmen und die erwarteten Ergebnisse einbeziehen. All diese Informationen sind für den Softwaretester relevant – insbesondere bei der Bestimmung, ob der Testfall stattdessen ein „Pass“ oder ein „Fail“ sein soll.
Ein Spickzettel zum Erstellen von Testfällen, die gut funktionieren, lautet wie folgt:
- Halten Sie die Dinge einfach und transparent.
- Machen Sie Testfälle wiederverwendbar.
- Halten Sie Testfall-IDs eindeutig.
- Peer Review ist wichtig.
- Testfälle sollten den Endbenutzer oder definierte Anforderungen berücksichtigen.
- Geben Sie erwartete Ergebnisse und Annahmen an.
Einfach, einzigartig, spezifisch, offen für Feedback und auf Wiederverwendbarkeit ausgerichtet: So entsteht ein großartiger Testfall. Einen visuelleren Einblick in das Schreiben eines Qualitätstestfalls erhalten Sie im Webinar von Parasoft zu diesem Thema.
Testsuite vs. Testplan
Der andere Aspekt eines Testfalls umfasst Testsuiten und Testpläne. Diese unterscheiden sich in wesentlichen Punkten und beide sind für eine genaue Testfallentwicklung von entscheidender Bedeutung.
Seien Sie ein intelligenterer Software-Tester mit diesen 5 köstlichen Technologiekombinationen
Was ist eine Testsuite?
Eine Testsuite kommt für Testfälle ins Spiel, da sie sich auf Quellcode, die Sammlung von Abhängigkeiten oder die Suite von Tests bezieht, die an Code durchgeführt werden sollen. Mit Testsuiten können Sie Testfälle so kategorisieren, dass sie mit allen Analyse- oder Planungsanforderungen übereinstimmen.
Dies bedeutet, dass Kernsoftwarefunktionen möglicherweise über eine eigene Testsuite verfügen, während eine andere Testsuite für einen bestimmten Testtyp wie Rauch oder Sicherheit bestimmt ist. Stellen Sie sich Testsuiten als Bücherregal vor, in dem Sie Ihre Testfälle organisieren können.
Was ist ein Testplan?
Im Gegensatz dazu ist ein Testplan eher wie der Regenschirm, der über allen Testsuiten steht. Wenn Testfälle Bücher und Testsuiten Bücherregale sind, sind Testpläne der Raum, der das Bücherregal enthält.
Im Allgemeinen werden Testpläne in Form von manuellen Tests, automatisierten Tests und einem allgemeinen Format für Tests erstellt. Sie testen die Software von der Foundation bis hin zu Testsuiten und Testfällen, bevor sie Änderungen implementieren oder neue Funktionen hinzufügen.
Beste Tools zum Schreiben von Testfällen
Parasoft entwickelt seine Tools und Suiten im Allgemeinen unter Berücksichtigung der „George Jetson“ -Theorie. Das heißt, wir möchten, dass unsere Kunden in der Lage sind, „einen Knopf zu drücken“ und sich um alles kümmern zu lassen. Dies ist zwar nicht ganz realistisch, aber Tools mit diesem Fokus auf Automatisierung eignen sich am besten zum Schreiben von Testfällen.
Sie können nicht nur bei der Automatisierung helfen, sondern auch von Anfang an bei der Entwicklung helfen. Schließlich ist es zu einfach, sich durch kleine Details oder Funktionen zu verzetteln. Man könnte vergessen, dass Software nur zuerst funktionieren muss. Hier kommt ein Java-Unit-Test-Tool wie Parasoft Jtest ins Spiel.
Vereinfachen Sie API-Tests und steigern Sie die Softwarequalität. Erleben Sie die mit AI & ML verbesserte Testautomatisierung in Aktion!
Demo anfordern
Mit diesem Tool können Anfänger und Experten ihre Unit-Test-Fähigkeiten sowie die Unit-Test-Erfahrung schneller verbessern. Nach dem Erstellen einer Grundlage führt es die Komponententests aus und führt den Benutzer an, um sicherzustellen, dass die Tests aussagekräftig sind. Wenn Sie die Dinge verstehen, nach denen Sie in einem Test suchen müssen, wird das Schreiben von Testfällen weniger einschüchternd.