Question

J'ai cette grande idée d'employer essentiellement une attaque de force brute pour tester / vérifier que mon application Web ne tombe pas en panne.

Ne pas me me commencé sur les tests unitaires, et d'autres choses IoC, c'est quelque chose d'autre.

Ce que je fais, et ce que je vous demande de l'aide est de créer avec une recherche exhaustive intelligente, qui explorent les parties de l'état du programme.

Ce que j'est une page Web avec les choses que je peux faire, en cliquant est une chose, la saisie de texte est une autre, certaines entrées comme des boutons de radio et de listes déroulantes sont limitées à certaines valeurs. les choses de base assez. Ce que je finis avec un ensemble fini d'événements et de valeurs et ce que je veux modéliser une progression de l'état. Peut-être cela est l'optimisation EFM d'une manière, mais l'objectif est d'aller systématiquement par des permutations arbitraires des événements et des valeurs et de voir ce qui se passe.

Quand un problème se trouve que je veux essayer de provoquer cette erreur avec le moins d'effort possible pour être en mesure de présenter un test clair.

concerne les méthodes de vérification formelles et je demande de l'aide ou un aperçu des personnes ayant une expérience.

Était-ce utile?

La solution

Qu'est-ce que vous voulez faire des sons un peu comme , d'une part et la génération automatique de cas de test d'autre part (dans cette dernière catégorie consultez test concolique , une technique pour éviter de perdre du temps avec des chemins d'exécution irréalisables).

Modèle vérification serait la méthode préférée si vous assumez votre application web est correcte et que vous voulez prouver qu'il est. Mais dans le cas d'un avertissement, vous devrez peut-être travailler pour comprendre si le problème est réel ou non. génération de cas de test est orienté vers bug conclusion: il ne vous donne un vecteur d'entrée pour produire si vous ne prouve pas que vous l'application est correct, mais si elle trouve un problème, besoin de se demander si le problème est réel.

Je ne suis pas au courant des outils existants pour les applications Web, mais cela ne signifie pas qu'ils n'existent pas.

Autres conseils

On dirait que vous voulez un fuzzer. Peach est un tel outil.

recherche Exhaustive peut être tâche non triviale pour des ressources limitées (mémoire, espace), mais avec de nombreuses techniques, le problème peut être réduit, comme vous abstraire code (ex: remplacement des cours de pilote de base de données avec des talons), est présenté une expérience dans ce papier. Résumé modèle Vérification des applications Web avec Java PathFinder (Vinh Cuong Tran, Yoshinori Tanabe, Masami Hagiya, Université de Tokyo)

Si vous regardez à une sorte de vérification formelle des États fédérés de Micronésie comme des modèles, Java PathFinder a une extension de vérifier diagrammes d'états UML écrits en Java + annotation (cela dépend de la machine virtuelle Javapathfinder):

http://babelfish.arc.nasa.gov/ trac / JPF / wiki / projets / JPF-statechart

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top