3

大量のレガシー コードがあり、そのうちのいくつかはリファクタリングまたは置換が予定されています。現在ユーザー エクスペリエンスに影響を与えている部分を最適化し、計画中の新製品での再利用を促進し、できれば保守性も向上させたいと考えています。

既存の製品については、非常に優れた/包括的な機能テストがあります。これらは、自動化された GUI テストと手動による GUI テストが混在していますが、開発者が完全に実行するには半日以上かかる場合があります。「低レベル ドメイン ロジック」には、対象範囲の広い単体テスト (NUnit) の優れたスイートがあります。残念ながら、コードの残りの部分には単体テストがありません (少なくとも、価値のある単体テストはありません)。

私が見つけたいのは、機能テストでの使用と動作に基づいて、特定のメソッド/クラス、およびおそらく特定のインターフェイスの単体テストを自動的に生成するツールです。これらの単体テストは、リファクタリングに非常に有益であり、CI システムの一部として実行され、現在発生しているよりもはるかに早く回帰を検出します (そして、「ボタン X が機能しない」よりもはるかに優れた回帰をローカライズします)。

そのようなツールは存在しますか? 私に何かお勧めはありますか?

私はParasoft .TESTに出くわしました。私の状況に関して、何かコメントはありますか?

ここでは、静的解析からテスト コードを生成するだけの ala NStubは役に立たないと思います。本当に重要なのは代表的なテストデータの生成だと思います。

自動化されたテスト生成の利点または欠如を無視してください - それは私が通常主張するものではありません。(特に、壊れたコードに合格するテストを取得できるためです!)

4

2 に答える 2

2

Pex を試す:

Pex は、Visual Studio コード エディターから直接、メソッドの興味深い入出力値を検出します。これは、コード カバレッジの高い小さなテスト スイートとして保存できます。Pex は体系的な分析を実行し、境界条件、例外、およびアサーションの失敗を探し出し、すぐにデバッグできます。Pex は、テストのメンテナンス コストを削減する単体テストの拡張である、パラメーター化された単体テストを可能にします。

于 2009-05-06T08:55:16.757 に答える
0

まあ、あなたはPEXを見ることができます-しかし、私はそれが独自のデータを発明すると信じています(それはあなたの既存のテストを監視しません、AFAIK)。

于 2009-05-06T08:54:41.830 に答える