OSS開発におけるHigh Impact Bugを考慮した不具合修正時間予測

OSSプロジェクトと不具合報告

近年のソフトウェア開発ではオープンソースソフトウェア(OSS)が幅広く利用されています。ユーザが増えて大規模化したOSSプロジェクトには、日々多くの不具合が報告されています。

Ambari Issues Report

報告される不具合の数は日々増え続けている(OSSプロジェクトのApache Ambariの例)

しかし、報告される不具合の数は非常に膨大なため、すべての不具合を次のバージョンリリースまでに修正することは困難です。プロジェクト管理者は次のバージョンリリースまでにどの不具合を優先的に修正すべきかという意思決定を行う必要が出てきました。

その意思決定の指標として、個々の不具合の修正にかかる時間を見積もることが重要です。このような背景から、近年OSS開発における不具合修正時間を予測する研究が盛んに行われています。

先行研究の問題点

先行研究で提案されている手法は、全ての不具合が与える影響や修正難易度は同一であると仮定して構築されています。しかし実際には不具合の種類によって影響範囲や修正難易度は異なり、不具合修正時間にも違いが生じる可能性があります。

そこで本研究では、近年不具合の分類方法のひとつとして注目されているHigh Impact Bugに着目し、個々の不具合がHigh Impact Bugであるかどうかを考慮した不具合修正時間予測の手法を構築しました。

High Impact Bugとは

High Impact Bugはユーザや開発者に大きな影響を与える6種類の不具合として、先行研究で定義されました。

Surprise Bug
不具合が含まれているとは考えられていなかったファイル(リリース前にあまり変更されないファイルなど)に混入しており、かつ、リリース後に発見された不具合
Dormant Bug
あるバージョンの開発中に混入したが、そのバージョンよりも後のバージョンになって初めて発見された不具合
Blocking Bug
ファイルの依存関係や仕様との競合などから、他の不具合の修正活動を妨げる不具合
Breakage Bug
新機能の追加や既存の不具合の修正のためにソースコードを変更したことによって引き起こされ、それまで利用可能だった機能が利用できなくなる不具合
Security Bug
セキュリティ上の問題に関わる不具合
Performance Bug
ソフトウェアのパフォーマンス低下をもたらす不具合

評価実験と結果

High Impact Bugを考慮することで不具合修正時間予測の予測精度が向上することを確かめるために、4件のOSSプロジェクト(Apache Ambari、Apache Camel、Apache Derby、Apache Wicket)を対象とした評価実験を行いました。

その結果、以下のことを確認しました。

  • High Impact Bugを考慮することによって、不具合修正時間予測モデルの予測精度が0.01%から11.9%向上する
  • プロジェクトによって、先行研究で提案されている6種類のHigh Impact Bugのうち、どのHigh Impact Bugが予測精度向上に寄与するかが異なる