2009-07-09 23 views
1

私は存在するはずのプログラムです:アプリケーションが実行されているとき、すべてのメソッドにすべての呼び出しを自動的に記録します。次に、各呼び出しに基づいてテストを作成します。 (このようなテストは単体テストと呼ばれるかもしれませんが、ここでは状態をキャプチャすることに問題があるのでここではそうしません)メソッドの記録と再生によるテストの自動生成

典型的なアプリケーションの場合、このプログラムでは数千回のテストが自動的に生成されますプログラムのいくつかの使用。

このプログラムは存在しますか?そうでない場合は、どうしてですか?これに近い何かをするプログラムはありますか?このプログラムの

より洗練されたバージョンは、次の操作を行います。

  1. これは、新しいテストを作成するために 複数の呼び出しからパラメータを再結合します。 例: (1、A)および(2、B)でメソッドが呼び出されます。このユーティリティは、 メソッドを(1、B)および(2、A)で呼び出すユニットテストを生成する です。
  2. 新しいテストを作成する呼び出しを混乱させるでしょう。例:メソッドは2つの整数(1,2)で呼び出されます。このユーティリティは、メソッドを(0,2)、(1,3)、(0,3)などで呼び出すテストを作成します。

このようなユーティリティによって生成されたテスト間違っています。それにもかかわらず、私は、このようなユーティリティは、特にレガシーアプリケーションをテストする場合に非常に便利だと思います。 3Dグラフィックスの世界では

+0

これはSOに掲載別の質問のようになります。 http://stackoverflow.com/questions/125100/free-open-source-test-generator-for-java Agitarは、あなたが記述するもののようなものを行います。 –

答えて

0

は、彼らが似的に存在する - など、彼らはすべてのAPI呼び出しを記録し、後で戻ってそれらを「再生」することができますし、フレームの正確な同じシーケンスを取得

私が表示されませんなぜあなたが言及したユーティリティが追加のテスト(その(1、A)ビジネス)を作成する必要があります。 (2、B)も有効な組み合わせですか?メソッドレコーディングは、物事を再結合させることなく、それ自体の権利で十分な考えです。

+0

@Pod:物事を再結合する必要はありません。しかし、そうすることができれば、特定のアプリケーションにとってはるかに強力になります。私は、これをオンまたはオフにできるユーティリティのオプションであると考えています。いくつかのコンボは無効であると言っても間違いありません。 – user128807

0

Webアプリケーションの機能テストを行っている場合は、ブラウザにユーザーの入力を記録してテスト目的で再生できる、Seleniumなどのフレームワークがあります。

+0

私はセレンを知っています。ただし、UIテストの目的でエンドユーザーのキーボードイベントとマウスイベントを記録することは、メソッド呼び出しを記録することとは異なります。どちらも便利です。また、UIイベントを記録し再生する方法はありますが、メソッド呼び出しを記録し再生する方法はないようです。 – user128807

2

類似のツールがありますが、ユーザーの入力をキャプチャして再生することに基づいています。あなたがテストはテストしないだろうという方法は振る舞いを希望単に既存の動作を生成するのでIMO、非常に有用ではないだろう説明何

。たとえそれが間違っていても。たとえそれが重要でない実装の詳細であっても。テストは非常に脆く、非常に冗長です。つまり、自動テストの最も重要な特性の2つである安定性と独立性が欠けています。

アプリケーションが変更された場合、リファクタリングが行われると、何千もの壊れたテストが発生します。最終結果は放棄され無視されたテストスイートか、テストケースを調整する作業の10倍の労力を要するため、誰も何の変化もなく動かすことができない時間に凍結されたアプリケーションになります。

新しいテストを作成する呼び出しを混乱させるでしょう。例:メソッドは、2つの整数(1,2)で呼び出される です。この ユーティリティは、どのようなツールがどのような影響これらの生成された呼び出しを知っているだろう(0,2)でメソッドを呼び出し テスト、(1,3)、(0,3)、 など

を作成することになりべき持ってる? Fuzz testingも同様の概念ですが、アプリケーションの正確性はテストされず、バッファオーバーフローがなく、同様の致命的なエラーしかテストされません。

+0

+1私も書いています。有用なのは、ファズテストのヒントです! – tanascius

関連する問題