7

Windows.Forms インターフェイスを備えた ~300K LOC C# レガシー シック クライアント アプリケーションを維持しています。アプリには小さなバグや癖がいっぱいです。たとえば、最近、ユーザーが DataViewGrid のセルを編集してタブ移動 (クリックではなく) し、特定のセルを選択したままにすると、アプリで「オブジェクト参照がオブジェクトのインスタンスに設定されていません」という例外が発生するというバグを発見しました。 . 毎週、または 2 週間おきに、このような新しいことを発見 (またはバグ報告を受け取ります) します。もう十分です。アプリケーションで何らかのファズ テストを試して、未発見の問題を突き止めようと考えていました。

自分でファズ テストを行う場合、少なくとも、アプリの一部 (メイン ウィンドウ、FormX、FormY、FormZ など) を個別に実行して注入を試みるテスト ハーネスを生成できる必要があると思います。それらにイベント。

これに適したツールを探していましたが、これまでのところ Win Forms 用のものは何も見つかりませんでした。(ただし、Web アプリ用のファズ テスト ツールは不足していないようです)。

役立つアイデアはありますか?

4

2 に答える 2

6

Palmハンドヘルドで使用されるGremlinsテストツールのアイデアはいつも好きです。UIプログラミングのバグをフラッシュするためにランダムなタップイベントを生成しました。アプリでも同じことができ、ランダムな場所で何百万ものマウスの上下イベントを生成できます。PostMessage()をP / Invokeし、Control.GetChildAtPoint()を使用して、WM_LBUTTONDOWN/UPメッセージのウィンドウハンドルを生成する必要があります。テストループ内のApplication.DoEvents()を使用して、イベントハンドラーを実行します。

于 2010-05-28T14:23:56.513 に答える
4

ネット上で検索を行ったところ、便利なツールと、WinForms アプリのファズ テストに関する情報が記載された 2 つのリンクが見つかりました。

  • Monkey Fuzz Testing - コードプレックスのアルファ ステータス ツールで、私が求めているものにかなり近いようです。サイトから: 「MonkeyFuzz は、主にランダムなキーボードとマウスのイベントをプログラムに送信しますが、途中でアクションを記録できます。これにより、回帰テストに役立つようにそれらを再生できます。」私はそれを試して、私の発見を報告するかもしれません。
  • ウィスコンシン大学 CS 学部のランダム テストに関する論文。これは2000年から2002年の日付ですが、いくつかの良い情報と、研究で使用したツールへのリンクが含まれているようです. ただし、ツールは少なくとも 10 年は古くなっている可能性があります。
于 2010-06-01T19:38:58.513 に答える