米Coverityは米国時間2008年5月20日,オープンソース・ソフトウエアの品質とセキュリティについて調査した結果を発表した。ApacheWebサーバーやLinux OSなど,250以上のオープンソース・プロジェクトのコード550万行を分析したところ,静的分析による不具合検出密度が過去2年間で16%減少するなど,全般的に品質とセキュリティが向上していることが分かった。

 検出頻度が最も多かった不具合は「NULL pointer dereference」(28%)で,「Resource Leak」(25.7%)が僅差で続いた。逆に少なかったのは「Use before test (negative)」(0.21%)や「Buffer Overrun (dynamically allocated)」(0.31%)だった。

 コードの行数と,不具合の検出密度には強い相関関係があることが分かった。このためコードの行数をもとに不具合の数を72%の精度で推測できるという。また一般的に,関数の平均文字列が長いほど,不具合の検出密度が高いと考えられていたが,両者に相関関係は認められなかった。

 ソフトウエアの複雑さを測るために「Cyclomatic」と「Halstead」の2つの指標を用いたが,いずれもソフトウエアのコード行数が多いほど,複雑さのレベルが上がることが分かった。

[発表資料へ]
[レポート(PDF書類)]