問題
それは私が考えたい非常に一般的な問題です。新しいコードを追加するとリグレッションにつながり、既存のテスト ケースは時代遅れになります。コード内の依存関係は、この特定の回帰を修正する方法を知っていたとしても、求心性と遠心性の両方の方向でさらに n 個の場所で間接的な回帰が発生する可能性があることを意味します。
要件
SVN、Maven + Nexus、Sonar、Jenkins、および JIRA、QC、QTP を実行しているショップがあります。全体として、優れた CI 環境です。
すべての新しいビルドで、回帰の新しいケースがあります。Java パッケージの依存関係を双方向で見つけ、テスト ケースを適切に更新して、すべてのタイプの回帰 (直接および間接) をカバーしたいと考えています。私の単体テストのカバレッジは 50% に近づいておらず、統合テストの自動化が開発に追いついていないため、これはより大きな問題です。
私のオプション
- ソナー
- Google CodePRO
- Jアーキテクト
- Jtest (ベンダーの Parasoft と話し合いました。このためのツールはありません)
- アトラシアンのプラグインなど、既存の環境を活用する
- Kalisitck (ベンダーのデモ - 優れたツール - 学習曲線とコストがかかる)
- Coverity (Kalistick のようなもの - 学習曲線と複雑なインストール。非常に高価なライセンス。
- 他のオープンソース/有料のものはありますか?
JArchitect、SONAR、および CodePro は、thisまたはthisのような単純な Matrix を提供します。これは、影響を受けるユーザーと使用者のクラスを教えてくれるので、私の要件の半分を満たしています。私が望むのは、さらに一歩進んで、どの対応するテスト ケースが影響を受けるか、回帰リスクをカバーするためにそれらを更新および/または実行する必要があるかどうかをツールに教えてもらうことです。
Kalistick、Coverity、そしておそらく他の人が私が望むことをするかもしれません-それらはセットアップと構成が重く、システムに合わせてゆっくりと成長するため、すぐには生産的ではなく、コストがかかり、学習曲線が必要です.
短い質問
インストール、学習曲線、コスト、可用性、またはその他のパラメーターなどのすべての要因を考慮して、上記のどのツールをセットアップで使用するか。
私はすでにstatic-analysisに関する FAQ セクションを読んでいます。、 https://stackoverflow.com/questions/3716203/automatic-code-quality-and-architecture-quality-static-code-analysisおよび コード メトリクスの魅力は何ですか? および多くのリンクされたものですが、私の特定の質問には答えません。