ビルド失敗の原因は?

2014年6月28日 20:04

Googleと香港科技大学、ネブラスカ大学が共同で、ソフトウェアのビルド失敗が発生する頻度や原因、修正の手間について調査・分析を行ったそうだ(論文: PDFITworldの記事本家/.)。

調査はGoogleの開発者18,000人が9か月間に実行したC++とJavaのビルド結果2,660万回分を対象に行われた。ビルド失敗率の中央値はC++が38.4%、Javaが28.5%となった。C++の開発者は多くがテキストエディターで作業するのに対し、Javaの開発者は多くがIDEで作業するため、IDEに組み込まれたチェック機能が役立っているとみられるとのこと。

ビルド失敗の原因はコンパイラーのエラーメッセージごとに集計。さらに「依存関係エラー」「型の不一致」「シンタックスエラー」「セマンティックエラー」「その他」の5つのカテゴリーにまとめている。最も多かったのは依存関係エラーで、C++が52.68%、Javaが64.71%となる。なお、Javaでは変数名のミスタイプでも出力される「cant.resolve」が依存関係エラーに含められている。「cant.resolve」はJavaのコンパイルエラーの中で最も多い43.25%を占めるが、原因の4分の3をミスタイプとして除外してもカテゴリーごとの順位は変動しないという。C++ではJavaと比べてシンタックスエラーが多い点が目立つ。ここでもIDEの使用率の違いが出ているようだ。

エラーの修正時間の中央値はC++が5分、Javaが12分となっている。修正時間としては、最初のビルド失敗からビルドが成功するまでの時間を使用しているが、開発者が途中で別の作業を始めてしまった場合や、帰宅してしまった場合などには意味のないものになってしまう。そのため、解決までに12時間以上かかったビルドは除外している。さらに、複数種のエラーをまとめて修正する場合は、エラーの種類ごとに修正時間を区別するのは難しいので、1種類のエラーのみが原因のビルドに絞り込んで集計したとのこと。

この調査はGoogleの開発者のみが対象なので、一般に適用できるかどうかは不明だ。/.Jerはどう考えるだろうか。 スラッシュドットのコメントを読む | デベロッパーセクション | Google | 統計 | プログラミング | Java | デベロッパー

 関連ストーリー:
プログラマーが自分につく9つの小さな嘘 2014年03月16日
iOS7.0.6で修正された「最悪のセキュリティバグ」はありがちなコーディングミスで発生していた 2014年02月24日
/.Jに聞け:Javaを使うメリットは? 2014年01月31日
ドイツの裁判所、オープンソースプログラムに違法なコードが混入したのはプロジェクトオーナーの責任と判断 2013年12月08日
COBOLで書かれた米国防総省の給与システム700万行、実質的に更新不可能 2013年07月14日
よいコードを書くようにチームを説得するには? 2013年01月26日
Firefox、バイナリサイズが大きくなりすぎて 32 ビット Windows では最適化ビルドできなくなる 2011年12月16日
Android 4.0 (Ice Cream Sandwich) のビルドには 16 GB の RAM 推奨 2011年10月25日
スラッシュドットに聞け: make に代わるビルドツール、おすすめは ? 2011年06月10日

 

関連記事

最新記事