Versuchsforschung

Versuchsforschung ist ein Ansatz zu Softwaretest das wird präzise als gleichzeitiges Lernen beschrieben, Testdesign und Testausführung. Cem Kaner, der den Begriff 1984 geprägt hat,[1] Definiert Erkundungstests als "einen Stil von Softwaretests, der die persönliche Freiheit und Verantwortung des einzelnen Testers betont unterstützende Aktivitäten, die während des gesamten Projekts parallel laufen. "[2]

Während die Software getestet wird, lernt der Tester Dinge, die zusammen mit Erfahrung und Kreativität generiert neue gute Tests zum Durchführen. Erkundungstests werden oft als als als angesehen Black Box -Tests Technik. Stattdessen betrachten diejenigen, die es studiert haben sich nähern Dies kann in jeder Phase des Entwicklungsprozesses auf jede Testtechnik angewendet werden. Der Schlüssel ist weder die Testtechnik noch die getestete oder überprüfte Art. Der Schlüssel ist das kognitive Engagement des Tester und die Verantwortung des Tester für die Verwaltung seiner Zeit.[3]

Geschichte

Explorative Tests wurden immer von qualifizierten Tester durchgeführt. Anfang der neunziger Jahre,, ad hoc war zu oft gleichbedeutend mit schlampigen und unachtsamen Arbeiten. Infolgedessen eine Gruppe von Testmethoden (nennt sich nun sich selbst die Kontextgetriebene Schule) begann mit dem Begriff "explorative" zu verwenden, um den dominierenden Denkprozess zu betonen, der an nicht geschriebenen Tests beteiligt ist, und die Praxis zu einer lehrbaren Disziplin zu entwickeln. Diese neue Terminologie wurde erstmals veröffentlicht von Cem Kaner in seinem Buch Computersoftware testen [4] und erweitert in in Lektionen, die in Software -Tests gezogen wurden.[5] Erkundungstests können so diszipliniert sein wie jede andere intellektuelle Aktivität.

Beschreibung

Erkundliche Tests sollten herausfinden, wie die Software tatsächlich funktioniert, und Fragen zu schwierigen und einfachen Fällen zu stellen. Die Qualität der Tests hängt von der Erfindungsfähigkeit des Tester ab Testfälle und finden Mängel. Je mehr der Tester über das Produkt und anders weiß TestmethodenJe besser die Tests sein werden.

Um weiter zu erklären, kann ein Vergleich von Freestyle -Erkundungstests mit seiner Antithese gemacht werden Skripttests. In den letzteren Aktivitätstestfällen werden im Voraus konzipiert. Dies umfasst sowohl die einzelnen Schritte als auch die erwarteten Ergebnisse. Diese Tests werden später von einem Tester durchgeführt, der das tatsächliche Ergebnis mit dem Erwarteten vergleicht. Bei der Durchführung von explorativen Tests sind die Erwartungen offen. Einige Ergebnisse können vorhergesagt und erwartet werden; andere dürfen nicht. Der Tester konfiguriert, arbeitet, beobachtet und bewertet das Produkt und seine Verhalten Qualität des Testaufwands).

In Wirklichkeit ist das Testen fast immer eine Kombination aus explorativen und geschriebenen Tests, aber mit einer Tendenz zu beiden, je nach Kontext.

Laut Kaner und James Marcus Bach, explorative Tests sind eher a Denkweise oder "... eine Art des Nachdenkens über das Testen" als eine Methodik.[6] Sie sagen auch, dass es ein Kontinuum von leicht explorativen (leicht mehrdeutiger oder vage geschriebener Tests) bis zu hoch explorativen (Freestyle -Erkundungstests) überschreitet.[7]

Die Dokumentation von Erkundungstests reicht von der Dokumentation aller Tests bis hin zur Dokumentation der Dokumentation der Käfer. Während Paartestszwei Personen erstellen zusammen Testfälle zusammen; Einer führt sie und die anderen Dokumente durch.Sitzungsbasierte Tests ist eine Methode, die speziell entwickelt wurde, um explorative Tests auf eine breitere Maßstab zu prüfen und messbar zu machen.

Erkundungstester verwenden häufig Tools, einschließlich Bildschirmaufnahmen oder Videotools als Aufzeichnung der explorativen Sitzung oder Tools, um schnell zu interessierende Situationen zu generieren, z. James Bachs Perlclip.

Vorteile und Nachteile

Der Hauptvorteil von explorativen Tests besteht darin, dass weniger Vorbereitung erforderlich ist, wichtige Fehler schnell gefunden werden und zur Ausführungszeit tendenziell der Ansatz intellektuell stimulierter sind als die Ausführung von Skripttests.

Ein weiterer großer Vorteil ist, dass Tester nutzen können deduktive Argumentation Basierend auf den Ergebnissen früherer Ergebnisse, um ihre zukünftigen Tests im laufenden Fliegen zu leiten. Sie müssen keine aktuelle Reihe von Skripttests durchführen, bevor sie sich auf eine zielgerichtete Umgebung konzentrieren oder weitermachen. Dies beschleunigt auch die Erkennung von Fehler, wenn sie intelligent verwendet werden.

Ein weiterer Vorteil besteht darin, dass die meisten Fehler nach Ersttests durch eine Art explorative Tests entdeckt werden. Dies kann logischerweise logisch nachgewiesen werden: "Programme, die bestimmte Tests bestehen, neigen dazu, weiterhin dieselben Tests zu bestehen, und es ist wahrscheinlicher, dass andere Tests oder Szenarien, die noch untersucht werden müssen, nicht bestanden werden."

Nachteile sind, dass Tests, die in der Fliege erfunden und durchgeführt wurden, nicht im Voraus überprüft werden können (und dadurch Fehler in Code- und Testfällen verhindern), und es kann schwierig sein, genau zu zeigen, welche Tests durchgeführt wurden.

Es ist unwahrscheinlich, dass Freestyle -Erkundungstestideen auf genau die gleiche Weise durchgeführt werden, was von Vorteil sein kann, wenn es wichtig ist, neue Fehler zu finden. oder ein Nachteil, wenn es wichtiger ist, bestimmte Details der früheren Tests zu wiederholen. Dies kann mit einer spezifischen Anweisung an den Tester oder durch Vorbereitung automatisierter Tests, bei denen machbar, angemessen und notwendig und idealerweise so nahe wie möglich an der Einheitsebene vorbereitet werden, gesteuert werden.

Wissenschaftliche Studien

Replikatiertes Experiment hat gezeigt, dass zwar geschriebene und explorative Tests zu einer ähnlichen Effektivität der Defektdetektion (die Gesamtzahl der gefundenen Defekte) explorative Ergebnisse bei höherer Effizienz (Anzahl der Defekte pro Zeiteinheit) führen .[8] Die Beobachtungsstudie zu explorativen Testern schlug vor, dass die Verwendung von Wissen über den Bereich, das zu testende System und die Kunden ein wichtiger Faktor ist, der die Wirksamkeit von explorativen Tests erklärt.[9] Eine Fallstudie von drei Unternehmen ergab, dass die Fähigkeit, ein schnelles Feedback zu geben, ein Vorteil der Erkundungstests bei der Verwaltung der Testabdeckung war, wurde als Kurzschluss bezeichnet.[10] Eine Umfrage ergab, dass explorative Tests auch in kritischen Bereichen verwendet werden und dass der explorative Testansatz hohe Anforderungen an die Person enthält, die die Tests durchführt.[11]

Verwendungszweck

Erkundungstests sind besonders geeignet, wenn Bedarf und Spezifikationen sind unvollständig oder wenn Zeitmangel.[12][13] Der Ansatz kann auch verwendet werden, um zu überprüfen, ob frühere Tests die wichtigsten Mängel gefunden haben.[12]

Siehe auch

Verweise

  1. ^ Cem Kaner, "Ein Tutorial in explorativen Tests", S.2
  2. ^ Cem Kaner, Ein Tutorial in explorativen Tests, p. 36.
  3. ^ Cem Kaner, Ein Tutorial in explorativen Tests, p. 37-39, 40-.
  4. ^ Cem Kaner, Computersoftware testen, Tab Books, Blue Ridge Summit, PA, 1988. p. 6, 7-11.
  5. ^ Kaner, Cem; Bach, James; Pettichord, Bret (2001). Lektionen, die in Software -Tests gezogen wurden. John Wiley & Sons. ISBN 978-0-471-08112-8.
  6. ^ Cem Kaner, James Bach, Erkundungs- und risikobasierte Tests, www.testingeducation.org, 2004, p. 10
  7. ^ Cem Kaner, James Bach, Erkundungs- und risikobasierte Tests, www.testingeducation.org, 2004, p. 14
  8. ^ Itkonen, Juhha; Mänylylä, Mika V. (2013-07-11). "Sind Testfälle benötigt? Repliziertes Vergleich zwischen explorativen und testgeschützten Softwaretests". Empirische Software -Engineering. 19 (2): 303–342. Citeseerx 10.1.1.363.6524. doi:10.1007/s10664-013-9266-8. ISSN 1382-3256.
  9. ^ Itkonen, J.; Mänylylä, M. V.; Lassenius, C. (2013-05-01). "Die Rolle des Kenntnisses des Tester in explorativen Softwaretests". IEEE -Transaktionen auf Software -Engineering. 39 (5): 707–724. doi:10.1109/tse.2012.55. ISSN 0098-5589.
  10. ^ Itkonen, J.; Rautiainen, K. (2005-11-01). Erkundungstests: Eine Mehrfachfallstudie. 2005 Internationales Symposium für empirische Software Engineering, 2005. S. 10 PP.–. doi:10.1109/isese.2005.1541817. ISBN 978-0-7803-9507-7.
  11. ^ PFAHL, Dietmar; Yin, Huishi; Mänylylä, Mika V.; Münch, Jürgen (2014-01-01). Wie werden explorative Tests verwendet? Eine hochmoderne Umfrage. Verfahren des 8. ACM/IEEE International Symposium für empirische Software -Engineering und -messung. Esem '14. New York, NY, USA: ACM. S. 5: 1–5: 10. doi:10.1145/2652524.2652531. HDL:10138/153363. ISBN 9781450327749.
  12. ^ a b Bach, James (2003). "Explorative Tests erklärt" (PDF). Befriedigung.com. p. 7. Abgerufen 23. Oktober, 2010.
  13. ^ Kaner, Cem (2008). "Ein Tutorial in explorativen Tests" (PDF). Kaner.com. S. 37, 118. Abgerufen 23. Oktober, 2010.

Externe Links