2011-07-18 6 views
1

私はJava環境でEclipseを使用しています。すでに進行中のプロジェクトにテストを導入する必要があります。どのように開始する?クラスのユニットテスト、その他は?仕事のための最良のツールは何ですか(私はEclipseを使用していると考えています)? TestNG、JUnit、JTiger?進行中のJavaプロジェクトでテストを導入するには?

他の人がテストを使用するように自分自身を適応させるにはどうすればよいですか?

ありがとうございます!

答えて

2

EclipseにはJUnitが大きくサポートされています。これは素晴らしい出発点のようです。新しいソースディレクトリテストを追加し、srcフォルダをミラーリングするパッケージ構造を作成します。次にユニットテストを1つずつ追加することができます。がんばろう!

+0

私はJUnitを使用することを考えていました。なぜなら、Eclipseには付属しているからですが、悪い決断を下したとしても時間を失いたくはありませんでした。皆さんありがとう! –

1

あなたのチームが既にテストの作成に慣れていない限り、テスト可能なソフトウェアを書くには特定の考え方が必要であるため、すべての古いコンポーネントをテストすることは現実的ではありません。

私は、テストを書くのに最適な時期は、余分な努力を保証するのに十分なほど重要ないくつかの新しいコンポーネントを定義することができると考えています。

あなたのチームではうまくいかないことに多大な努力を払うことなく、テストアプローチを見つけ出し、利益を特定し、心得を学ぶことができます。

ツーリングについて:私はJUnitの経験があるだけなので、悲しいことに、実際にはさまざまなツールを比較することはできません。

対応するツールは既にEclipseに含まれています(テンプレートを作成するためのウィザード、実行オプション、評価オプションなど)。ネットでは豊富なドキュメントとサンプルが用意されています。

1

JUnitとTestNGは両方とも問題ありません。 TestNGにはより多くの機能があり、統合テストに役立つことがあります.JUnitは単体テストに重点を置いています。

あなたはMockitoのような模倣ライブラリのようなものを知りたいかもしれません。 CoberturaのようなコードカバレッジツールやJenkinsのような継続的な統合ツールも素晴らしいです。

SpringやGuiceのようなDIフレームワークを使用すると、より簡単にテストできるコードを書くのに役立ちます。 DIフレームワークを使用するかどうかにかかわらず、コードを疎結合するほど簡単にテストできます。あなたのプロジェクトはすでに進行中ですので、この部分では遅すぎる可能性があります。これはあなたの仕事をより困難にします。

同僚がテストに協力することは非常に困難です。あなたはそれが最も差をつけることができる部分に選択的に導入したいかもしれません。すでに完成した機能のテストを書くことは、通常は苦痛であり、時間の無駄です。テストは小さく、依存性が少なく、分かりやすく、すばやく実行する必要があります。テストを書くこと、テストを実行すること、壊れたテストを修正することは、もっと痛いほど、より多くの抵抗を得るでしょう。

1

多くの良い質問があります。

プロジェクトがまだテストされておらず、すでに進行中の場合は、段階的にテストを導入する必要があります。この機能の新しい機能書き込みテストを開発する必要がある場合は、変更するクラスと機能が壊れる可能性がある機能を作成します。同じことはあなたがバグを修正しているときです。バグを再現する最初の書き込みテストを行い、修正します。

私はJUnitとTestNGを使用しました。どちらもほぼ同じです。 TestNGにはグループがあります。テストには、開発、ビルド、統合などのグループに属するようにマークすることができます。これは、テストがたくさんあり、それらをすべて実行するにはかなりの時間がかかります。

自動ビルド済みですか?これから始まるのではない。あなたがMavenを使いたいのであれば比較的簡単です。あなたのビルドが準備ができたら、いくつかの単体テストを書いてください(ちょうど失敗するものがあります...) その後、Hudson/Jenkinsをインストールしてプロジェクトを定義してください。人々はあなたが新しいコードをコミットするとすぐにビルドがほぼ即座に実行され、すべての失敗したテストを見ることがいかにクールだと思います。あなたの上司にTDDの強さを見せて、すべてのチームメンバーにテストを書くように指示してくれることを彼に説明しようとします。

あなたの会社に十分なエネルギーがあればSonarを導入してください。人々は、自分が書いているコードがどれほどひどいのか、テストの対象範囲がどれほど貧弱かを見ていきます。彼らは、テストカバレッジがどれほど速く成長しているかを見て、単体テストにもっと投資するでしょう。

まもなく、幸運。あなたは正しい方向にいる。

+0

コメントとして、私の職員はJenkinsをCIツールとして持っています。私はそれが長期的にみれば皆にとって恩恵を受けると思う。ありがとう! –

関連する問題