Исчерпывающий верификатор сайта - PullRequest
1 голос
/ 22 февраля 2010

У меня есть грандиозная идея использовать в основном грубую атаку для проверки / проверки того, что мое веб-приложение не дает сбоя.

Не заводите меня на модульное тестирование и IoC, это совсем другое дело.

То, что я делаю, и что я прошу о помощи, - это создать интеллектуальный исчерпывающий поиск, который исследует части состояния программы.

У меня есть веб-страница с вещами, которые я могу сделать, щелчок - это одно, ввод текста - это другое, некоторые входы, такие как переключатели и раскрывающиеся списки, ограничены определенными значениями. Довольно простые вещи. В результате я получаю конечный набор событий и значений, и то, что я хочу смоделировать, - это прогрессия состояния. Возможно, это своего рода оптимизация FSM, но цель состоит в том, чтобы систематически проходить произвольные перестановки событий и значений и видеть, что происходит.

Когда проблема обнаружена, я хочу попытаться спровоцировать эту ошибку с минимальными усилиями, чтобы представить четкий контрольный пример.

Это относится к формальным методам проверки, и я прошу помощи или идей у ​​людей с опытом.

Ответы [ 3 ]

1 голос
/ 23 февраля 2010

Звучит так, будто ты хочешь фаззер. Персик является одним из таких инструментов.

1 голос
/ 22 февраля 2010

То, что вы хотите сделать, звучит немного похоже на проверку модели , с одной стороны, и автоматическую генерацию тестового набора с другой стороны (в последней категории проверьте Concolic testing метод, позволяющий избежать потери времени с невозможными путями выполнения).

Проверка модели была бы предпочтительным методом, если вы предполагаете, что ваше веб-приложение корректно и хотите доказать, что это так. Но в случае предупреждения вам, возможно, придется поработать, чтобы понять, является ли проблема реальной или нет. Генерация тестовых примеров ориентирована на поиск ошибок: это не доказывает, что ваше приложение корректно, но если оно обнаруживает проблему, оно дает вам входной вектор для его создания, поэтому вам не нужно задумываться, является ли проблема реальной.

Мне не известны какие-либо инструменты для веб-приложений, но это не значит, что их не существует.

0 голосов
/ 05 мая 2011

Исчерпывающий поиск может быть нетривиальной задачей для ограниченного ресурса (память, пространство), но с помощью многих методов проблему можно уменьшить, например, абстрагировать ваш код (например: заменить классы драйверов базы данных заглушками), в этом представлен опытстатья: Проверка абстрактной модели веб-приложений с использованием Java PathFinder (Винь Куонг Чан, Йошинори Танабе, Масами Хагия, Токийский университет).

Если вы ищете какую-то формальную проверку моделей, подобных FSM, Java PathFinder имеетрасширение для проверки диаграмм состояний UML, написанных в аннотации Java + (зависит от виртуальной машины Javapathfinder):

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

...