カテゴリー : 2012年 1月18日

正しいバクレポートの書き方


HMDTでは、主にコンシューマ向けのアプリを多く作ってます。いろんな人に使ってもらえるんで、これは純粋に楽しいです。でも開発作業って楽しい事だけじゃなくて、バグ対応っていう辛い事にも向き合わなくちゃいけないんですよ。

大前提として、一般向けにリリースしたアプリにバグがあってはいけません。バグ込みでリリースする気持ちはないです。でも、これまた避ける事のできない真理として、完全にバグのないソフトウェアを作るのはほぼ不可能です。

現実には、ユーザからバグを報告してもらい、それに対応して新しいバージョンをリリースすることを繰り返す事になります。HMDTでもたくさんのバグ報告をもらうんですけど、それはどれもありがたいんですけど、なかなか有益なバグレポートってのは難しいんだなあ、って思うんですよ。レポートはもらうんですけど、ごめん、これだとこっちも対応できないんだよ、っていうものが多いんですよ。なので、いったいどういうバグレポートが有効なのか、どういう情報が必要とされているのか、ってのをまとめてみました。

ちなみに、バグレポートって、どうしても感情的なものが多いです。気持ちは分かります。そりゃ、私だってゲームしている最中にクラッシュされたら、怒りのメールを送りたくなりますよ。そこは思いの丈をぶつけてください。でも、バグを修正して品質を改善するために、どうしても欲しい情報があるんで、それだけ教えてください。

そんな難しい話じゃないです。バグレポートの基本は、次の3つの情報を記載する事です。

1. どんな操作をして、
2. どんな結果を期待していたのに、
3. どんな結末になった。

この3つです。この3つがあれば、バグ潰しの旅にでかけることができます。逆にこれがないと、どうにもこうにも手を出す事ができません。

例を出しましょう。

良くない例:
「クラッシュした。」

クラッシュしましたか、ごめんなさい。ほんと申し訳ないです。そのバグ直したいんですけど、これだけじゃ手も足も出ないんですよ。これは、「3. どんな結末になった」だけが書いてある例です。「1. どんな操作をして」と「2. どんな結果を期待していたのに」も書いてくれると助かります。

良くない例:
「Webブラウザで、指定したWebページが開かなかった。」

開かなかったですか、ごめんなさい。それは問題ですよね。でも、どうやってWebページを開こうと思ったのか、教えていただけませんか。テキストフィールドにURLを入力しましたか?ブックマークから開こうとしましたか?それとも、文中のリンクをタップしましたか?「1. どんな操作をした」のか教えてください。

「どんな操作をしたかなんて、自明じゃん」と、思うかもしれません。でも、そのユーザにとってWebページを開く方法は一つしかなくても、アプリ全体では複数の方法が用意されているものなんです。なので、それをあえて書いてください。

良くない例:
「ツールバーの停止ボタンを押して、ムービーの再生を止めようとした。」

停止ボタンを押しましたか、ごめんなさい。それで、えーっと、どうなりましたか。「3. どんな結末に」なりましたか。ボタンを押したら、クラッシュしましたか?ボタンを押したら、ムービーの表示が乱れましたか?ボタンを押したら、鳩が出てきて飛んでいきましたか?それとも、ボタンを押しても、何も起こりませんでしたか?「何も起きなかった」というのも、立派な結末です。ぜひ、教えてください。

こういうレポート、冗談みたいでしょう。でも、とても多いです。ほんと多いです。こういったものを受け取ると自分が能無しの犯罪人のような気分になって、山奥に隠れ住みたくなります。

ソフトウェアの品質ってのは、ユーザとプログラマの間でやり取りをしながら高めていくのが理想です。そのためには、ポイントを押さえたレポートが欲しいです。ということで、ちょっとだけ気にしてもらえると嬉しいです。しかし、バグの話になると、どうしても下手に出る気分になるね。