Frage

Ich habe diese große Idee, im Grunde einen Brute-Force-Angriff zu Test beschäftigen / überprüfen, dass meine Web-Anwendung nicht abstürzt.

Sie mich nicht auf Unit-Tests zu beginnen, und IoC Zeug, das ist etwas ganz anderes.

Was ich tue, und was für Hilfe ich frage mit ist eine intelligente erschöpfende Suche zu erstellen, dass Teile des Programms Zustand erforschen.

Was ich habe, ist eine Web-Seite mit Dingen, die ich tun kann, Klicken ist eine Sache, die Texteingabe eines anderen, einige Eingänge wie Radio-Buttons und Drop-Down-Listen beschränkt sind auf bestimmte Werte. Ziemlich einfach Dinge. Was ich mit einer endlichen Menge von Ereignissen am Ende und Werten und was ich will, ist ein Modell Progression des Staates. Vielleicht ist die FSM-Optimierung in einer Art und Weise, aber das Ziel ist es, systematisch durch willkürliche Permutationen von Ereignissen und Werten zu gehen und sehen, was passiert.

Wenn ein Problem gefunden wird, ich will diesen Fehler versuchen und zu provozieren mit so wenig Aufwand wie möglich in der Lage sein, einen klaren Testfall zu präsentieren.

Dies bezieht sich auf formale Verifikationsmethoden und ich bin für Hilfe oder Einsicht von Menschen mit Erfahrung gefragt.

War es hilfreich?

Lösung

Was Sie klingt ein wenig wie Model-Checking , auf der einen Seite tun wollen und automatisierte Generierung von Testfällen auf der anderen Seite (in der letzteren Kategorie Besuche Concolic Test , eine Technik, Zeit zu verschwenden mit undurchführbar Ausführungspfaden zu vermeiden).

Modell Prüfung würde die bevorzugte Methode, wenn Sie davon ausgehen, Ihre Web-Anwendung korrekt ist, und wollen beweisen, dass es ist. Aber im Fall einer Warnung, können Sie zur Arbeit müssen verstehen, ob das Problem wirklich ist oder nicht. Testfallgenerierung ist auf Fehler Findung orientiert: es beweist nicht, dass Sie App richtig ist, aber wenn es ein Problem findet, gibt es Ihnen einen Eingangsvektor, es zu produzieren, so dass Sie sich zu fragen, brauchen nicht, ob das Problem wirklich ist.

Ich bin nicht bekannt, dass vorhandene Werkzeuge für Web-Anwendungen, aber das bedeutet nicht, dass sie nicht existieren.

Andere Tipps

Es klingt wie Sie eine fuzzer wollen. Peach ist ein solches Werkzeug.

Ein erschöpfende Suche nicht triviale Aufgabe für eine begrenzte Ressource sein kann (Speicher, Raum), aber mit vielen Techniken kann das Problem verringert werden, wie abstrahiert Sie Code (zB: Datenbanktreiber Klassen mit Stubs ersetzen), ein Erlebnis in diesem vorgestellt Papier:. Abstrakt Model Checking von Web-Anwendungen mit Java PathFinder (Vinh Cuong Tran, Yoshinori Tanabe, Masami Hagiya, University of Tokyo)

Wenn Sie eine Art formale Verifikation von FSM wie Models aussehen, hat Java PathFinder eine Erweiterung der UML Statecharts in Java + Anmerkung geschrieben, um zu überprüfen (es hängt von der Javapathfinder VM):

http://babelfish.arc.nasa.gov/ trac / jpf / wiki / projects / jpf-Zustands

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top