2013-05-22 9 views
6

私はいくつかのコードを「バグPROJECT-312に関連する」とマークすることができる標準のJavaアノテーションを探しています。目標は、コードのどの部分がバグによって変更または影響を受けたかを確認できるレポートを作成できるようにすることです。これは、例えば、たくさんのバグが蓄積する "ホットスポット"を見ることを可能にするでしょう。または、IDEからJIRA/BugZillaに簡単に移動し、バグの内容を確認することができます。バグのJavaアノテーションはありますか?

標準注釈は使用できますか使用する必要がありますか、自分で作成する必要がありますか?

PS:私にはトラッキングを行うMylyn/Tasktopがあります。私の目的のために、これらのツールは、人々が毎日どのようにして仕事をしなければならないかを大幅に変えるので、今は破壊的です。

答えて

3

のOracleアプローチ

JavaのAPI仕様は、完全なJavaの互換性 キット(JCK)テストを記述するために、ソフトウェアの品質保証を可能に に十分なアサーションが含まれている必要があります。

これは、ドキュメントコメントがSQAによる 適合テストのニーズを満たさなければならないことを意味します。コメントは、バグまたは の仕様を満たしていないインプリメンテーションがどのように機能するのかを記録するべきではありません。 official JavaDoc guidelinesから

コードのバグは、実装ではなく、API 仕様のバグです。コードバグと回避策は、バグレポートで個別に配布されている であることがよくあります。しかし、 という具合に、特定の の実装のためのドキュメントを生成するために使用されている場合は、この情報をdocコメントに含めることが非常に役立ち、適切にメモとして、またはカスタムタグ (例えば@bug) 。

基本的に、ドキュメントとバグレポートを混在させないように指示しています。特殊なカスタムタグをコメントに使用して解析すると、成功したバグレポートにはそれ以上のものは必要ありません。

また、Eclipse Jira Connectまたは同様のツールを使用すると、@bugおよびTODOのコメントを自動的にバグ/タスクチケットに変換できます。

更新

あなたがしなければならない場合は、カスタム注釈のカップルで行うことができます。ニーズに合わせて調整し、チーム全体で文書化し、実施します。詳細はhereです。

@Target({ ElementType.TYPE }) 
@Retention(RetentionPolicy.CLASS) 
// Unavailable through reflection. 
public @interface classbug {} 
// gives you the @classbug annotation. 

@Target({ ElementType.METHOD }) 
@Retention(RetentionPolicy.CLASS)// Unavailable through reflection. 
public @interface methodbug {} 
// gives you the @methodbug annotation. 
+0

私たちの世界では、ドキュメンテーションは、ドキュメンテーションが不要になるまで>リファクタリングなしで理解するのに十分なコードではないという兆候です。だから私はバグに '// @ bug'を使うことができると思います。 OTOHでは、アノテーションはいくつかのコードに「固執する」。コメント*は無視することができますが、重要であることを人々は知っています。だから、ストレスがこもったとき、注釈は生存の良いチャンスを持つ。 –

2

私は個人的にはホットスポットを追跡する正しい方法であると確信していません。 1つは、多くのバグのあるエリアでは醜いでしょう(実際のコードよりも@Bug行だけ!)、もう1つは、一時的ではないエラーのように、回帰する可能性のない場所には役に立たないでしょういくつかのコードが最初に実装されます。

さらに、@Bug注釈は、使用されていて一貫して使用される場合にのみ有用です。これを実施することはすべての関係者にとって面倒なことであり、実際に多くの洞察を提供することなく人々を遅らせることになります。に注釈を付けませんでした。

バグ修正の影響を受けたファイル(コミットメッセージには[bB][uU][gG]:? *\d+などが含まれています)を調べ、そのように分析を実行する外部分析を実装する方がいいでしょう。開発者に追加のプロセスを追加することなく、すべてのバグ修正をすばやく調べることができます。

Googleがこの目的のために興味深い論文があります:彼らは生存のよりよいチャンスを持っていることを、私は同様にどのくらいの頻度ことだろう、注釈はコメントよりも「スティッキー」であることについてあなたのコメントにBug Prediction at Google


を違いは実際には価値があるでしょう。コード内のバグコメントはもはや有益な情報ではなくなり、そうしなければならないよりもずっと長く続きます。関連する行に問題のバグに関連するコミットが表示されない場合、それ以降は何度か反復されている可能性がありますが、そのコメントは固執しています。

私は確かにあなたが言うことは決して起こらないと言っているわけではありませんが、これが本当にどのくらいの頻度で起こっているのだろうと思います。あなたの経験でコメントが消えてしまった場合は、まだ役立つ可能性があります。ぜひ、注釈がうまくいくかどうかを見てください。

関連する問題