これからのバグ報告ツールに必要なこと

ソフトウェア開発とバグ管理はセットで考える必要があります。 ソフトウェア開発には多くの人たちが関わっている場合が多く、企業向けアプリケーション(ウェブアプリ含む)は効率的に開発を進めるために役割分担され、プロジェクトチームにより開発されています。中には1名〜の少数で開発する場合もありますが…

プロジェクトチームではチームの規模が大きくなるほど、人が多くなるほど、コミュニケーションコストが掛かるのはよく知られています。今回はソフトウェアを開発する開発者とテスターの間におけるコミュニケーションコストを下げるためにバグ報告ツールに求められる機能を考えてみます。

現状の一例

開発者は仕様に従ってソフトウェアを開発、コードを書きます。単体試験を実施してOKになれば別の担当者に検証してもらうための準備をおこないます。検証では品質管理担当者やテスターによる機能試験や要求仕様を満たしているかがチェックされます。検証をパスして初めて開発者の作業(開発)は完了となります。

この工程ではソフトウェアがまともに動かない、仕様が異なる、機能通り動かないなどバグといわれる障害が起こっています。障害が発生したとき、技術的な知識がありプログラムの内部まで理解している開発者と、中身を知らないが要求仕様を熟知しているテスターの間でバグ報告と対処が行われます。持っている知識の前提が異なるのでお互いに認識違いやコミュニケーション不足による齟齬が発生します。

Google で「バグを報告する」を検索すると開発者に正しい情報を伝えるための多くの情報が見つかります。 これらを読んで開発者にとって必要なコトをバグ報告者(テスター)がスキルアップすることがベストですが、 学ばなくても、バグ報告ツールの機能で解決出来る方法はないでしょうか。

これからバグ報告ツールに必要なこと

1. バグ発生したときの状況について動画が取得できる

コンシューマ向けのゲーム開発の現場ではビデオカメラでゲーム画面を撮影し、バグ発生したときの状況を開発者に伝えています。これは、開発者にとって一目瞭然、テスターが行った手順や発生したバグ、その時の画面情報など、開発者にとって問題解決のための多くの情報を瞬時に得ることができます。

2. バグの再現手順を自動再生

バグが発生したときの手順をシステムが自動記録し、バグ報告者以外の人、開発者が報告者の操作手順を手元で再実行し起こったことを再現することができる操作再現機能。

3. 過去のバグ発生箇所と履歴を見える化

これはウェブアプリケーション限定かもしれませんが、特定のURL(例えば、商品注文画面)で発生したバグ一覧、画面のどの部分で発生したバグか、バグの対応状況が「商品注文画面」上にオーバーレイ表示され、クリック1つでバグの詳細を把握することができる機能。

4. バグ発生時点の情報を自動記録

バグが発生したらシステムログ、システム情報、エラーログ、エラー内容、URL、画面のキャプチャー、クライアント情報、OS情報、ブラウザ情報等々…自動収集して報告する機能。(WindowsやMacにインストールするタイプのアプリケーションは異常終了したとき「この問題を報告する」という機能で実現しているアプリケーションがある。)

5. テスト管理システムとの連携

テスターはテスト項目に従ってテストする場合が多いです。偶然見つけられたバグもありますが、多くはテスト項目に従って順番に試験を進めて言う上で発生します。 試験項目と今起こったバグが自動で連携することで開発者に提供する情報量は多くなります。開発者にとって解決の手がかりになる情報が多い方が良いためテスト管理システム連携は必要です。

最後に、ウェブアプリケーション開発に特化した形でこれからのバグ報告ツールに必要なことをリストアップしました。実現している機能もあればそうでない機能もあり、「たかがバグ報告にここまでの機能が必要なのか?」とも思いますが、バグ報告ツールについてアイデアのある方はぜひ教えてください。

Comments are closed.