OSSを使ってみよう ~ (3) 課題管理システムにバグを登録する

前回はOSSのメーリングリストの利用方法について説明しました。メーリングリストを利用することで、現在直面している問題を解決できるケースは決して少なくありません。しかし、メーリングリストに問い合わせた結果、バグがあることが分かり、修正しなければならないケースもあります。また、自分で調べた結果としてバグを見つけることもあります。

そういった時はそのOSSの課題管理システム(JIRAなど)にバグを登録することをお勧めします。バグを登録すると、回避策をコメントしてもらえるかもしれないですし、その後対策してもらえる可能性もあります。

バグの登録は難しくありませんが、そのバグに取り組む上で必要な情報が抜けていると、いつまでたっても着手してくれる人が現れません。そこで、今回は必要な情報を簡潔にまとめたバグの情報を登録する方法について説明します。

ちなみにOpenAMのJIRAは、ここにあります。JIRAにバグの登録や機能追加の要望をするためには、アカウントを追加する必要があります。アカウントの追加は、基本的に誰でもできるようになっています。

例として、次の簡単なバグを登録する場合を考えます。

  • 例) 認証モジュールの編集画面でモジュール名を入力せずに保存ボタンを押したときに、NullPointerExceptionが発生した。

以下のように書いておけば、おそらく問題無いのではないかと思います(英語は苦手なので…文法上の細かい誤りは見逃して下さい)。


Title : NPE occurs when saving authn module without authn name

Type : Bug    Priority : Trivial    Affects Version/s : 11.0.0    Component/s : console

Environment:

  • CentOS 6.5
  • Java(TM) SE Runtime Environment (build 1.6.0_27-b07)
  • Tomcat 7.0.54
  • OpenAM 12.0.0-SNAPSHOT Build 10110 (2014-August-14 02:40)

Overview:

NullPointerException occurs when clicking the save button on the edit authentication module page if an authentication module name is not input. Please refer to the attached log file.

  • Steps to Reproduce:
  1. Login to OpenAM console as admin user.
  2. Move to the Edit Authentication Module page.
  3. Click the save button (without an authentication module name).
  • Expected Results:

LDAP authentication module is created in the default authentication chain.

  • Actual Results:

NPE occurs and the following error message is displayed.

An unknown error occurred


上から順に簡単に解説します。

Title (タイトル):

短く簡潔にバグの概要が分かるようなものが望ましいです。上の例では、NullPointerExceptionはNPEに、authenticationはauthnに省略しています。※自己流の省略はダメです…念のため。

Type (タイプ):

Bug(バグ)の他にNew Feature(機能追加)、Improvement(改良)、Task(タスク)などがあります。

Priority (優先度):

個人の主観によって優先度の付け方に違いが出ることが多いですが、OpenAMの場合は以下が目安となります。回避策が無かったり業務に大きく差し支えるようであれば、高く設定して下さい。

Blocker : 本番環境での稼働停止や開発/テストの中断につながる問題。
Critical : クラッシュ、データの損失、深刻なメモリリークなど。
Major : 重要な機能の損失。
Minor : 簡単な回避策が存在する軽微な機能の損失などの問題。
Trivial : テキストのスペルミスや位置のずれといった表面的な問題

Component/s (コンポーネント):

どの機能に関するバグであるか、選択肢から選んで下さい(分かる範囲で)。

Environment (環境):

再現環境の詳細な情報を記載するのはとても重要です。OpenAMの場合は、OS、JRE、アプリケーションサーバなどを記載します。クライアントサイドの問題の可能性があれば、ブラウザのバージョンも必要です。ナイトリービルドのOpenAMを使っている場合は、OpenAMのビルド時刻を含むバージョンまで記載した方がいいです。

Overview (概要):

簡潔に概要を書いて下さい。さらに問題の再現手順(Steps to Reproduce)と実際の結果(Actual Results)、本来あるべき結果(Expected Results)が書かれていると分かりやすいと思います。ログや画面のキャプチャがあれば、それを添付して下さい。

なお、JIRAの場合はWiki Markupを使用することができます。この記法を活用するとより分かりやすく説明ができます。

wikimarkup

例えば、ソースコードは以下のように書くと、

{code:title=CLIException.java}
public CLIException(String string, String[] param,
    int REQUEST_CANNOT_BE_PROCESSED) {
    throw new UnsupportedOperationException(“Not yet implemented”);
}
{code}

次のように表示されます。

wikiSrc

以上のことを守っていただければ、バグの情報として十分ではないかと思いますが、書かなくても明白な個所は未記載でも構いません。例えば、本件はNullPointerExceptionが発生するという単純なプログラムのバグで、環境に依存するようなものではないでの、Environmentの情報は省略してもいいかもしれません。

また、原因や対策まで分かっている場合は、それについても記載しましょう。

JIRAに登録する上でよく使う英単語・熟語を書いておきます。参考まで。

  • Root cause:根本原因
  • Direct cause:直接的原因
  • Workaround:回避策
  • Side effect:副作用
  • Regression:デグレード、リグレッション
  • Attached file:添付ファイル
  • Additional information:補足
  • Typo:タイプミス
  • Documentation bug:ドキュメント(ガイドやマニュアル)の誤り
  • Design error:設計誤り
  • Temporary solution:暫定対策
  • Permanent solution:恒久対策
  • Alternative solution:代替案

ということで、バグを見つけたら課題管理システムに登録しましょう。バグを修正したらパッチも添付して、さらに可能であればでレビューを依頼して下さい。OpenAMの場合はCrucible上でレビューをしています。コミュニティにとって有益なアカウントと判断されれば、コミット権がもらえるのではないかと思います。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中