バグトリアージ手法の構築

近年の大規模システム開発では,試験工程のみならず運用工程においても多数の不具合が検出されるため,不具合管理システムを用いて,検出された不具合の再現方法や修正方法を詳細に記録し,漏れのないように不具合を管理することが求められる.不具合管理システムに報告された不具合一つ一つに対して,重要度や優先度を設定し,適任の担当者に修正タスクを割当てることをバグトリアージと呼ぶ.
しかしながら,大量に不具合が報告される現状では,個々の不具合に対して適切にバグトリアージすることは容易ではない.実際,大規模オープンソース開発プロジェクトのEclipseやMozillaでは,約4割の不具合に対して,担当者の再割当てが行われており,人手によるバグトリアージには限界があることが知られている.人的リソースの浪費だけではなく,不具合が修正されるまでに多くの時間を要するため,出来る限り再割当てが生じないようにすることが望ましい.
先行研究で提案されている手法のほとんどは,個々の不具合に対して確実かつ迅速に修正できる開発者を推薦することを目的としている.過去の不具合報告とその修正履歴に基づいて,新規に報告された不具合に対して適任の担当者を推薦することで,再割当を起こしにくくすることが狙いである.しかし,既存手法は,個々の不具合修正の難易度や手間を考慮しないため,ごく一部の開発者にタスク割当てを集中させる傾向にある.優秀な開発者でも不具合修正に取り組める時間は有限であるため,既存手法は現実的でないと考えられる.
bugtriage_background

アプローチ


本研究では,開発者が一定期間内に修正作業に使える時間に上限を設けた上で,プロジェクト全体の不具合修正効率にとって最適となる開発者と不具合の組み合わせを求める新たなバグトリアージ手法を提案する.そのアプローチとして,本研究では,不具合と開発者の組合せ問題をマルチナップサック問題と見なす.マルチナップサック問題(Multiple knapsack problem)とは,重みと利得を持つ複数のアイテムを,最大重量が決まっている複数のナップサックに入れる際,ナップサックに入れたアイテムの総価値が最大となるようなアイテムの組合せを求める問題である.本研究では,ナップサックの集合をプロジェクト,各ナップサックの最大重量を各開発者が修正作業に使える時間の上限,アイテムを不具合,重みを不具合の修正に必要な時間,利得を不具合に対する開発者の適性を数値化したもの(プリファレンス)として考え,マルチナップサック問題の解法である 0-1 整数計画法を用いる.
bugtriage_approach

主な論文


柏 祐太郎, 大平 雅雄, 阿萬 裕久, 亀井 靖高, “大規模OSS開発における不具合修正時間の短縮化を目的としたバグトリアージ手法,” ソフトウェアエンジニアリングシンポジウム2014論文集, pages 66-75, 2014年