1

私は、基本的にブルート フォース攻撃を使用して、Web アプリケーションがクラッシュしないことをテスト/検証するという壮大な考えを持っています。

単体テストや IoC のことを始めさせないでください。これはまったく別のものです。

私がやっていること、そして私が助けを求めていることは、プログラムの状態の一部を調査するインテリジェントな徹底的な検索を作成することです。

私が持っているのは、私ができることを含む Web ページです。クリックは 1 つのことであり、テキスト入力は別のことであり、ラジオ ボタンやドロップダウン リストなどの一部の入力は特定の値に制限されています。かなり基本的なこと。最終的にイベントと値のセットが有限になり、モデル化したいのは状態の進行です。これはある意味で FSM の最適化かもしれませんが、目標は、イベントと値の任意の順列を体系的に調べて、何が起こるかを確認することです。

問題が見つかった場合、明確なテスト ケースを提示できるように、できるだけ少ない労力でそのエラーを引き起こしたいと考えています。

これは正式な検証方法に関連しており、経験のある人からの助けや洞察を求めています.

4

3 に答える 3

1

あなたがやりたいことは、一方ではモデルチェック、他方では自動テストケース生成に少し似ているように聞こえます(後者のカテゴリでは、実行不可能な実行パスで時間を浪費することを避ける手法であるConcolic testingをチェックしてください)。

Web アプリケーションが正しいと仮定し、それを証明したい場合は、モデル チェックが推奨される方法です。ただし、警告の場合は、問題が本物かどうかを理解するために作業する必要がある場合があります。テスト ケースの生成は、バグの発見を目的としています。アプリが正しいことを証明するものではありませんが、問題が見つかった場合は、それを生成するための入力ベクトルが提供されるため、問題が本当かどうか疑問に思う必要はありません。

私は Web アプリ用の既存のツールを認識していませんが、それはそれらが存在しないという意味ではありません。

于 2010-02-22T19:47:22.553 に答える
1

ファザーが欲しいようですね。Peachはそのようなツールの 1 つです。

于 2010-02-22T21:28:03.970 に答える
0

限られたリソース(メモリ、スペース)の場合、徹底的な検索は簡単な作業ではありませんが、コードを抽象化する(例:データベースドライバークラスをスタブに置き換える)など、多くの手法で問題を減らすことができます。このペーパーでは、経験を紹介します。 Java PathFinderを使用したWebアプリケーションのモデル検査(Vinh Cuong Tran、田辺義典、萩谷正美、東京大学)。

FSMのようなモデルの一種のフォーマル検証に目を向けると、Java PathFinderには、Java +アノテーションで記述されたUML状態チャートを検証する拡張機能があります(Javapathfinder VMによって異なります)。

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

于 2011-05-05T02:10:20.143 に答える