0

次の問題を解決できるツールを探しています。

私たちの完全な単体テスト スイートは、完了するまでに数時間かかります。そのため、プログラマーがコードをコミットすると、数時間後にテスト結果が得られます。私たちが達成したいのは、単純なバグを見つける時間を短縮することです。これは、コミットの直前/直後に実行されるいくつかの単体テストを賢く選択することで実行できます。もちろん、この単体テストを無作為に選択したくはありません。バグを発見する可能性が高い単体テストが必要です。

ソフトウェアを追加せずにこの問題を解決するためのアイデア: 単体テストごとにコード カバレッジを作成します。どのファイルがどの単体テストによって「影響を受ける」かがわかれば、ユーザーがこのファイルのいずれかを変更した場合に、この単体テストを選択できます。このソリューションには明らかな欠点があります。単体テストごとに対象ファイルのリストを手動で保存および更新する必要があります。

実行するテストを選択するのに役立つツールはありますか? プロジェクトは C++ を使用し、Linux で動作します。

4

1 に答える 1

0

Michael Feathersは、レガシーコードを効果的に使用する際に、 10ミリ秒かかる単体テストは遅い単体テストであると書いています。遅いテストを根絶する必要があります。最終的に間違ってあなたを噛むカバレッジの推測に基づいてサブセットランナーをハックしないでください。

単体テストと統合テストの違いに注意してください。単体テストは、ファイルシステムに触れたり、ネットワークを介して通信したり、データベースと通信したりすることはありません。これらは統合テストです。はい、多くの場合、統合テストは簡単に作成できますが、これは、ソフトウェアをより適切に因数分解できることを強く示しています。偶然の一致として、テストも簡単です。

私の疑いは、あなたの統合テストはとても時間がかかるものだということです。それらを、毎晩など、すべてのチェックインよりも実行頻度が低い別のスイートに移動します。

于 2013-01-09T15:43:53.343 に答える