8 Stimmen

Wie organisieren/gestalten Sie Ihre Testskripte?

Ich bin daran interessiert, wie andere ihre Testskripte organisieren oder wie sie gute Testskripte irgendwo gesehen haben, wo sie gearbeitet haben. Außerdem möchte ich wissen, wie detailliert diese Testskripte sind. Dies bezieht sich speziell auf Testskripte, die für manuelle Tests erstellt wurden, im Gegensatz zu denen, die für automatisierte Tests erstellt wurden.

Das Problem, das ich sehe, ist, dass die Testskripte sehr komplex sind, ohne dass die Prinzipien, die bei der Organisation einer komplexen oder großen Codebasis verwendet werden, zum Tragen kommen. Man muss in der Lage sein zu spezifizieren, was ein Teil des Codes tun soll, ohne jemanden beim Lesen zu Tode zu langweilen.

Ich bin nicht daran interessiert, vollständig spezifizierte Skripte zu erstellen, die von Dateneingabe-Typen ausgeführt werden können, da wir nicht über ein solches Team verfügen und der Aufwand für ihre Pflege zu hoch erscheint. Außerdem habe ich das Gefühl, dass eine so detaillierte Spezifikation des Prozesses demjenigen, der die Tests durchführt, die Verantwortung für die Qualität des Produkts entzieht. Wird jeder Tastenklick und jeder einzugebende Wert spezifiziert? Wenn nicht, wie detailliert wird dann spezifiziert?

2voto

Matt Andersen Punkte 4820

Von Menschen durchgeführte Tests sollten auf einer sehr hohen Abstraktionsebene stattfinden.

Z.B. ein Testfall für die Stackoverflow-Registrierung:

Gut:

Ein Website-Besucher mit einer bestehenden OpenId Konto registriert sich als ein Stackoverflow Benutzer und gibt eine Antwort ab.

Schlecht:

1) Navigieren Sie zu http://stackoverflow.com 2) Klicken Sie auf den Anmeldelink 3) usw...

Dies ist aus mehreren Gründen wichtig:

a) Die Tests bleiben wartbar. So müssen Sie Ihr Testskript nicht jedes Mal aktualisieren, wenn Navigationselemente umbenannt werden (z. B. wird "Login" zu "Sign in").

b) es bewahrt Ihre Tester davor, vor lauter Detailarbeit verrückt zu werden.

c) Das Schreiben detaillierter manueller Testskripte ist eine schlechte Nutzung Ihrer begrenzten Testressourcen.
Detaillierte manuelle Testskripte werden Ihre Tester davon abhalten, Fehler für kleinere Dokumentationsprobleme zu schreiben. Sie wollen Ihre Zeit nutzen, um die wirklichen Fehler zu finden, die sich auf die Kunden auswirken werden.

1voto

Craig Delthony Punkte 183

Die Tests können nach Priorität gruppiert werden. Die BVT/Smoke-Tests könnten die höchste Priorität haben, während Funktions-, Integrations-, Regressions-, Lokalisierungs-, Stress- und Leistungstests niedrigere Prioritäten haben. Je nach Testdurchlauf würden Sie eine Priorität auswählen und alle Tests mit dieser oder einer höheren Priorität ausführen. Sie müssen lediglich festlegen, welche Priorität ein bestimmter Test hat.

0voto

Glenn Punkte 6315

Ich versuche, manuelle Tests in eine automatisierte Struktur einzupassen - man kann beides haben.

Die von automatisierten Tests verwendeten Organisationsschemata (z. B. die xUnit-Frameworks) funktionieren für mich. Sie können sogar dazu verwendet werden, die Tests halb zu automatisieren, indem man sie anhält und aufruft, einen manuellen Test auszuführen, Eingaben zu machen oder eine GUI zu inspizieren. Das Schema besteht normalerweise darin, die Verzeichnisstruktur des Produktionscodes zu spiegeln oder die Tests in den Produktionscode einzubinden, manchmal als innere Klassen. Tests oberhalb der Unit-Ebene können oft in Verzeichnisse auf höherer Ebene untergebracht werden (vorausgesetzt, Sie haben einen ausreichend tiefen Verzeichnisbaum). Diese Tests auf höherer Ebene können in (gespiegelten) Verzeichnissen untergebracht werden, die keinen Produktionscode enthalten, sondern nur der Organisation dienen.

Der Detaillierungsgrad Nun, das kommt darauf an, nicht wahr?

0voto

yoosiba Punkte 2236

Matt Andresen hat eine gute Antwort gegeben, im allgemeinen Fall, aber es gibt Situationen, in denen man es nicht so machen kann. Wenn Sie zum Beispiel an validierten Anwendungen arbeiten, die den Vorschriften anderer Parteien wie der FDA entsprechen müssen, und diese sehr intensive Audits, Überprüfungen und Abnahmen durchlaufen, dann sind 2 Antworten aus Ihrem Beispiel erforderlich. Trotzdem würde ich mich in diesem Fall für eine Automatisierung mit HP QuickTestPro oder IBM RationaRobot entscheiden.

Vielleicht sollten Sie es mit einigen Tests im Repository versuchen? Es gibt wieder Tools von HP QualityCenter und IBM-Produkten, aber die können teuer sein. Sie könnten etwas Günstigeres finden, mit dem Sie die Tests in Baumstrukturen nach Anforderungen/Funktionen organisieren, ihnen Prioritäten zuweisen, sie in Testanzügen für Releases gruppieren, sie in Regressionstestanzügen gruppieren usw...

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X