OSS開発者のHigh Impact Bugに対する認識調査

軽微な不具合、重大な不具合

大規模化、複雑化している近年のソフトウェア開発では非常に多くの不具合が報告されています。そのためタイプミスなどの「軽微な不具合」からセキュリティに関する「優先度の高い不具合」までが同等に扱われてしまうことが問題になっています。

これに対して、個々の不具合が与える影響を考慮した分類・分析の研究が行われており、ユーザーや開発者に大きな影響を与える6種類の不具合はHigh Impact Bugと呼ばれています。

6種類のHigh Impact Bugについて

High Impact Bugを定義した先行研究は、重大な不具合として以下の6種類を挙げました。

Surprise Bug
予期せぬ箇所(リリース前にあまり変更されないファイルなど)かつ予期せぬ時期(特にリリース直後)に発生する不具合
Dormant Bug
あるリリースに向けて開発を行っている際に埋め込まれ、テスト中またはリリース後には見つからずに、次のリリースの後に見つかる不具合
Blocking Bug
ソフトウェアコンポーネント(部品化されたソフトウェア)の依存関係のために、他の不具合の修正を阻害している不具合
Security Bug
それ自体が何かに影響を及ぼすものではなく、攻撃者により悪用される可能性がある不具合
Performance Bug
ユーザーエクスペリエンスやレスポンス、スループット(単位時間の処理能力)の低下などを含む、プロダクトのパフォーマンス低下を招く不具合
Breakage Bug
不具合の修正や新しい機能の追加によって、以前使えていた機能を使えない状態にする不具合

High Impact Bugは開発者にとって重要か?

High Impact Bugは研究者の知識や経験に基づいて定義されたものです。しかし、現場の開発者が実際に重要な不具合だと認識しているかは明らかになっておらず、High Impact Bugの分析および予測手法の提案を開発者が求めていない可能性があります。

実際の開発者がどのような不具合を重要だと認識しているのか、調査する必要があります。

アンケートによる開発者の認識調査

今回の調査では、GitHubユーザからアンケート対象者を選定し、メールでアンケート調査への参加を依頼しました。

アンケート対象者は、GitHub APIを用いて得られるユーザのメールアドレスやcontribution(あるリポジトリに対して開発者がコミットした回数)などのデータを参考に18299人を選定し、321件の回答が得られました。

アンケート結果から得られたもの

  • High Impact Bugのうち、Security Bugを最も重要視している
  • Userに関する不具合が重大なものであると考えている
  • High Impact Bugを迅速に修正することで再現技術の向上や、熟練の開発者による修正、複数人が修正活動に関与するなどの対策が有効である
  • OSS開発者はHigh Impact Bugの発生を主にコードの複雑さと不十分なテストが原因だと認識している
  • 開発しているプロダクトのドメインによって重要視されるHigh Impact Bugは異なっている

以上のことを理解することができました。