[論文レビュー] Exploring Microtask Crowdsourcing as a Means of Fault Localization
本論文は、ソフトウェア工学におけるバグ局所化のための新しい手法として、マイクロタスク・クラウドソーシングを調査している。アマゾン・メカニカル・トゥークを用いて、作業者が特定のコード断片にバグが含まれるかどうかを評価するマイクロタスクを配布した。その結果、クラウドは高い正確性でバグあり・バグなしのコード断片を区別できることを示したが、カバレッジとコストの面で制限があることがわかった。
Microtask crowdsourcing is the practice of breaking down an overarching task to be performed into numerous, small, and quick microtasks that are distributed to an unknown, large set of workers. Microtask crowdsourcing has shown potential in other disciplines, but with only a handful of approaches explored to date in software engineering, its potential in our field remains unclear. In this paper, we explore how microtask crowdsourcing might serve as a means of fault localization. We particularly take a first step in assessing whether a crowd of workers can correctly locate known faults in a few lines of code (code fragments) taken from different open source projects. Through Mechanical Turk, we collected the answers of hundreds of workers to a pre-determined set of template questions applied to the code fragments, with a replication factor of twenty answers per question. Our findings show that a crowd can correctly distinguish questions that cover lines of code that contain a fault from those that do not. We also show that various filters can be applied to identify the most effective subcrowds. Our findings also presented serious limitations in terms of the proportion of lines of code selected for inspection and the cost to collect answers. We describe the design of our experiment, discuss the results, and provide an extensive analysis of different filters and their effects in terms of speed, cost, and effectiveness. We conclude with a discussion of limitations and possible future experiments toward more full-fledged fault localization on a large scale involving more complex faults.
研究の動機と目的
- マイクロタスク・クラウドソーシングが、小さなコード断片におけるバグの局所化に効果的に機能するかどうかを評価すること。
- 大規模で匿名のクラウドを用いて、バグあり・バグなしのコード行を区別する可能性を評価すること。
- バグ局所化における正確性と効率を向上させるための効果的なフィルタリング戦略を同定すること。
- 大規模なバグ局所化において、コスト、スピード、効果性のトレードオフを分析すること。
提案手法
- 著者らは、既知のバグを含むオープンソースプロジェクトから小さなコード断片を抽出した。
- 特定のコード断片にバグが含まれるかどうかを評価するための標準化されたテンプレート質問を設計した。
- 各質問をアマゾン・メカニカル・トゥーク経由で20回送信し、質問1件あたり20件の作業者回答を収集した。
- 断片がバグがあるとみなされるかどうかを決定するために、回答の過半数によるコンSENSUS(合意)を計算した。
- 回答の品質と一貫性に基づいて、高パフォーマンスのサブクラウドを同定するためのさまざまなフィルタリング技術を適用した。
- スピード、コスト、正しいバグ位置の特定における有効性の観点から、フィルタリング手法の効果を評価した。
実験結果
リサーチクエスチョン
- RQ1非専門の作業者からなるクラウドが、マイクロタスクを用いて小さなコード断片にバグが含まれるかどうかを正確に特定できるか?
- RQ2さまざまなフィルタリング戦略は、クラウドを用いたバグ局所化の正確性と効率をどの程度向上できるか?
- RQ3マイクロタスク・クラウドソーシングを用いたバグ局所化において、コスト、スピード、正確性のトレードオフはどのようなものか?
- RQ4作業者は、バグありのコード断片をバグなしのものと比較して、どの程度正確に特定できるか?
- RQ5クラウドの回答を集約する際のコンセンサス手法は、バグあり・バグなしのコード断片を信頼性を持って区別できるか?
主な発見
- クラウドは、バグあり・バグなしのコード断片を区別する際に高い正確性を示し、コンセンサスによる回答が、顕著な割合でバグを正しく特定した。
- 回答の一貫性と信頼性に基づいて作業者をフィルタリングすることで、コストを著しく増加させることなく、バグ局所化の正確性が向上した。
- バグの特定において高い正確性を示したが、検査対象のコード行の割合はわずかにとどまり、カバレッジが限定的であることがわかった。
- 1件の質問に対して20件の回答を必要とするため、コストが高く抑えられず、スケーラビリティの課題が浮き彫りになった。
- パフォーマンス指標に基づいてフィルタリングされたサブクラウドは、効果性が向上しており、品質管理メカニズムが結果を向上させられることを示唆している。
- 本研究では、マイクロタスク・クラウドソーシングがバグ局所化に実用可能であることが明らかになったが、実用的導入においてはコストと低いコードカバレッジという制限があることがわかった。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。