米Coverityが毎年恒例のソフトウェア品質レポートを発表、オープンソースとプロプライエタリソフトウェアを比較

 米Coverityは4月15日(米国時間)、オープンソースのソフトウェア品質調査レポート「2013 Coverity Scan Report」を発表した。過去最大レベルのコードサンプルを対象に品質の分析を行ったとのことで、C/C++プロジェクトでは初めてオープンソースがプロプライエタリを上回る品質に到達したという。

 Coverity Scan Reportは、オープンソースソフトウェアのコード品質を同社のソフトウェア品質・セキュリティテストツールを利用して調査したもの。米国土安全保障省との共同プロジェクトとしてスタートした年次調査で、今回で8年目となる。品質解析サービス「Coverity Scan」および商用で利用されている「Coverity Development Testing Platform」を利用して、コードを解析し不具合率を調べた。

 今回の調査では700以上のオープンソースのC/C++プロジェクトと、同社の顧客企業が開発するプロプライエタリソフトウェアを対象とした。コードの行数は過去最大の7億5000万行にのぼり、2013年3月以降にスタートした人気のオープンソースプロジェクトも複数含まれているという。

 コード1000行あたりで検出された不具合数(不具合率)はオープンソースのC/C++プロジェクトで0.59を達成、これはプロプライエタリのC/C++プロジェクトの0.72を下回った。オープンソースがプロプライエタリの不具合率を下回る(=品質が上回る)のは調査開始以来初めてという。なお、Coverityでは「良い品質のソフトウェア」の基準となる不具合率は1.0としている。今回の調査ではC/C++を含むすべてのオープンソースプロジェクトで不具合率がプロプライエタリよりも下回り、品質の面でオープンソースはプロプライエタリを上回ったと報告している。

 オープンソースプロジェクトにおいてLinuxは一種のベンチマークとなっており、バグが発見されてから修正されるまでに要する平均日数は2008年に122日だったのが、今回の調査では6日に短縮された。今回の調査では850行以上のLinuxのコードをスキャンした結果、不具合率は0.61。2012年は0.66だったので、この1年で品質がさらに改善されたことになる。

 一方で、同じオープンソースでも、JavaベースのプロジェクトはC/C++プロジェクトと比較すると脆弱性の修正が遅いことも指摘されている。今回の調査では、「Apache Hadoop」や「Apache HBase」、「Apache Cassandra」といった100以上のオープンソースのJavaプロジェクト、800万行以上のコードを調べた。これらJavaプロジェクトにおける深刻な欠陥の修正率は13%で、C/C++の46%を大きく下回る。このうち、HBaseは8月にScanサービスに加わった後に220以上の欠陥を修正しており、深刻な欠陥の修正率は66%。このため、HBaseはJavaプロジェクトにおけるベンチマーク的存在としている。

Coverity Scan
https://scan.coverity.com/