米Coverityが年次オープンソースソフト品質レポートを発表、Linuxは低い不具合率をキープ

 米Coverityは5月7日(米国時間)、ソフトウェア品質についての年次調査「2012 Coverity Scan Open Source Report」を発表した。オープンソースソフトウェアとプロプライエタリソフトウェアの不具合率はほぼ同じとなり、Linuxカーネルの不具合率は平均値を下回る好成績だったという。

 Coverityは、開発テストやオープンソースソフトウェアの品質解析サービス「Coverity Scan」などを提供するベンダー。「Coverity Scan Open Source Report」はオープンソースソフトウェアの完全性を調べるもので、米国土安全保安省との共同プロジェクトとして2006年にスタートした。現在はCoverityのプロジェクトとして年に一度報告書を作成している。

 Coverity ScanサービスはCoverityの顧客が開発するプロプライエタリなソフトウェアを匿名化しながら抽出した3億8000行以上のコードと、Linux、PHP、Apacheなどの「活発なオープンソースソフトウェア開発プロジェクト」に由来する6800万行以上のコードを対象として調査を行っている。今回のレポートでは、解析エンジンに同社の「Coverity 6.5」を利用し、アクティブなオープンソースプロジェクト上位118件を調べた。52%のプロジェクトがコード行数10万~49万9999行、10万行以上は45%で、コード行数は増加傾向にあるという。

 不具合率(コード1000行あたりで検出された不具合数)は0.69となり、前年の0.45から増加した。プロプライエタリソフトウェアの不具合率は0.68で、わずかな差でオープンソースソフトウェアを下回った。同社では「高品質ソフトウェア」の基準を1.0としており、2年連続でオープンソースとプロプライエタリが共に1.0を下回る好結果となった。なお、Linuxカーネルの不具合率は2011年が0.62、2012年が0.66となり、「品質のベンチマーク」と評価している。レポート作成時にスキャンした「Linuxカーネル3.8」(760万行)の不具合率はさらに低く、0.59と報告している。

 調査ではまた、コード行数と不具合率の相関関係も調べている。その結果、プロプライエタリソフトの場合コード行数が増えるほど不具合率が下がるのに対し、オープンソースではコード行数が増えると不具合率が上がることが分かった。原因として、オープンソースでは少数の開発者がボトムアップ的にスタートするのに対し、プロプライエタリではプロジェクトが大きくなると管理体制が適用されるといった習慣の違いや、開発テストプロセスを実装する段階が異なることなどを挙げている。

 2012年に修正された不具合のうち、「高リスク」に分類されたものは36%となった。このように高リスクの不具合が発生していることに注意を促すと同時に、メモリ破損、不正なメモリアクセスなどは自動コード解析なしには検出が難しいと助言している。

米Coverity
http://www.coverity.com/