Tests, die von Menschen durchgeführt werden, sollten auf einem sehr hohen Abstraktionsniveau sein.
z. ein Testfall für die Stackoverflow-Registrierung:
Gut:
Ein Website-Besucher mit einer vorhandenen OpenId Account registriert sich als Stackoverflow Benutzer und posts eine Antwort.
Schlecht:
1) Navigieren Sie zu Ссылка 2) Klicken Sie auf der Login-Link 3) usw. ...
Dies ist aus mehreren Gründen wichtig:
a) Es hält die Tests wartbar. Sie müssen also Ihr Testskript nicht jedes Mal aktualisieren, wenn Navigationselemente umbenannt werden (z. B. "Anmelden" ändert sich in "Anmelden").
b) es erspart Ihren Testern, vor der Langeweile winziger Details wahnsinnig zu werden.
c) das Schreiben ausführlicher manueller Testskripts ist eine schlechte Verwendung Ihrer endlichen Testressourcen.
Detaillierte manuelle Testskripte werden Ihre Tester dazu bringen, Fehler für kleinere Dokumentationsprobleme zu schreiben. Sie möchten Ihre Zeit nutzen, um die echten Fehler zu finden, die sich auf die Kunden auswirken.
Ich versuche, manuelle Tests in eine automatisierte Struktur einzupassen - Sie können beides haben.
Die von automatisierten Tests verwendeten Organisationsschemata (z. B. die xUnit-Frameworks) arbeiten für mich. Tatsächlich können sie verwendet werden, um die Tests halbautomatisch zu machen, indem sie anhalten und fordern, dass ein manueller Test ausgeführt oder Eingabe eingegeben wird, oder eine zu inspizierende GUI. Das Schema spiegelt normalerweise die Verzeichnisstruktur des Produktionscodes wider oder enthält die Tests innerhalb des Produktionscodes, manchmal als innere Klassen. Tests oberhalb der Einheitenebene können oft in die Verzeichnisse höherer Ebenen eingepasst werden (vorausgesetzt, Sie haben eine ausreichend tiefe Verzeichnisstruktur). Diese Tests auf höherer Ebene können in (gespiegelte) Verzeichnisse gehen, die keinen Produktionscode haben, aber für organisatorische Zwecke da sind.
Die Detailgenauigkeit --- nun, das kommt darauf an, oder?
Tests können nach Priorität gruppiert werden. Die BVT- / Rauchversuche könnten die höchste Priorität haben, wobei Funktion, Integration, Regression, Lokalisierung, Stress und Leistung niedrigere Prioritäten haben. Abhängig von Ihrem Testdurchlauf würden Sie eine Priorität auswählen und alle Tests mit dieser oder höheren Prioritäten ausführen. Alles, was Sie tun müssen, ist zu bestimmen, welche Priorität ein bestimmter Test ist.
Ich bin daran interessiert, wie andere ihre Testskripte organisieren oder gute Testskripts gesehen haben, die überall dort, wo sie gearbeitet haben, organisiert sind. Welche Detailstufe ist in diesen Testskripten enthalten? Dies bezieht sich insbesondere auf Testskripts, die für manuelle Tests erstellt wurden, im Gegensatz zu solchen, die für automatisierte Testzwecke erstellt wurden.
Das Problem ist, wie ich es sehe, eine Menge Komplexität in Testskripten, aber ohne den Vorteil der Prinzipien, die beim Organisieren einer komplexen oder großen Codebasis verwendet werden. Sie müssen in der Lage sein zu spezifizieren, was ein Code tun soll, ohne jemanden zu Tode zu langweilen, während er es liest.
Auch, wie Sie Testskripte layouten, bin ich nicht scharf darauf, vollständig spezifizierte Skripte zu erstellen, die geeignet sind, von Dateneingabetypen ausgeführt zu werden, da dies nicht das Team ist, das wir haben, und der Aufwand, sie zu verwalten, zu hoch erscheint. Außerdem fühlt es sich für mich so an, dass die genaue Spezifizierung des Prozesses die Verantwortung von der Person, die tatsächlich die Qualität des Produkts testet, aufhebt. Geben die Leute jeden Knopfklick und Wert an, der eingegeben werden soll? Wenn nicht, welche Detailstufe wird angegeben?
Vielleicht sollten Sie es mit einem Test-Repository versuchen? Es gibt wieder Tools von HP QualityCenter und IBM Produkten, aber das kann teuer werden. Sie könnten etwas günstiger finden, das Sie in Baumstrukturen nach Bedarf / Merkmal organisieren, ihnen Prioritäten zuordnen, sie in Testanzüge für Veröffentlichungen gruppieren, sie in Regressionstestanzüge gruppieren usw. ...