汎用的な観点ではなく業務特化の観点でのレビュー実施の効果を予想した研究
2013/3/12に「業務観点でのレビューを目指した不具合情報の分析」というタイトルで情報処理学会ソフトウェア工学研究会で発表しました。論文PDFはこちら。(本著作物の著作権は情報処理学会に帰属します。本著作物は著作権者である情報処理学会の許可のもとに掲載するものです。ご利用に当たっては「著作権法」ならびに「情報処理学会倫理綱領」に従うことをお願いいたします。)
レビューのコスト削減効果は、レビューで検出して欠陥を修正したときのコストとレビューで見逃して(あるいはレビューを実施せず)レビュー以降のフェーズで欠陥を検出し、修正したときのコストの差です。@IT情報システムマネジメントの記事「レビューを「数」だけで管理しているからコストが膨らむ」で解説しています。
レビューで検出することによってコスト削減につながる欠陥をつきつめると、どのようなものになるでしょうか。おそらく対象ソフトウェアにとってもっとも重要なもの、ソフトウェア利用による価値が大きいものになるでしょう。たとえば、公共交通機関の乗換え案内アプリケーションでは、正確な経路と時刻の案内のほうが駅構内の地図の表示機能よりも重要な場合が多いでしょう。
一方、ドキュメントやソースコードをレビューするときに想定する検出すべき欠陥は、特に想定せず見ていくレビュー、性能、セキュリティといった汎用的な欠陥が多いでしょう。本来であればレビュー対象のソフトウェアにおいて致命的な欠陥を検出するべきですが、常に明示されているわけではありません。意識されていない場合もあるように思います。
論文では、外国債券の取引業務を実現するソフトウェアにおいて日付の取り扱い(期間の定義、特異日、現地時間等)を観点とした欠陥がレビューで検出できるか、コスト削減効果があるかを調べています。結合テストで検出された不具合のうち、レビューで検出できていた可能性のある不具合488件のうち、日付に関する不具合86件がそれ以外の不具合と比較して、修正コストが大きくなったり、不具合の深刻度合いが高い(統計的に有意な差がある)という結果が得られました。
対象ソフトウェアにおいて特に重要で、レビューにおいて検出することによりコスト削減効果が大きいという感触は多くの方がお持ちではないかと思います。今回の論文では、大手銀行の不具合情報、長期にわたってシステム開発に携わっていらっしゃる熟練者の知見をお借りして、その感触を実際のデータで確認しました。このような機会をいただいたことに、この場を借りてお礼申し上げます。