2010年11月17日、コベリティは「2010年度オープンソース品質評価レポート」の結果や、12月に出荷するソースコード解析ツール「Coverity 5.3」などの発表を行った。CodeZineでは、来日した米Coverity CEOのセス・ハレム(Seth Hallem)氏にインタビューを行い、オープンソースソフトウェア(OSS)の品質調査プロジェクト「Scan Project」の現状や、ソフトウェア開発のトレンドと課題、そしてCoverity 5.3をはじめとする同社の今後の展開について聞いた。
複雑化するソフトウェア開発と開発者にかかる品質への責任
ソースコードの解析ツールなど、ソフトウェア開発支援を行うコベリティ。同社は米国でLinux、Apache、Androidといった人気の高いオープンソースソフトウェア(OSS)プロジェクトの品質を無償で評価し、情報提供を行う品質調査プロジェクト「Scan Project」を展開している。このプロジェクトは、米国国土安全保障省の資金提供のもと、2006年にスタンフォード大学との協業により発足したものだ。
ハレム氏は、Scan Projectの目標は2つあるとし「1つは、オープンソースの品質をさらに改善するメカニズムを提供することです。というのは、今ではオープンソース自体が重要なアプリケーションやインフラなどで頻繁に使われるようになっているからです。もう一つは、(ソースコードの)静的解析の研究を継続するためです。これまで291のOSSプロジェクトを解析し、各OSSコミュニティ側で解決したバグの数は12,000件を超えます」と、趣旨と成果について語った。
ハレム氏は、ソフトウェア開発で目立ってきたトレンドとして、ソフトウェアのサプライチェーンの複雑化について挙げた。スマートフォン1台のソフトウェアを考えてみても、Broadcom社 やQualcomm社のような半導体チップメーカーの部品、AndroidやLinuxなどのOS、NOKIAやMotorolaといったデバイスメーカーが独自に開発したものなどが含まれる。これらに加え、開発者が作ったアプリケーションが入った上で消費者に提供される。さらにそのアプリケーションは、クラウドコンピューティングのように、端末以外の要素とも関わるようになっている。
「これまで開発者は、自分たちが作ったソースコードだけの品質を見ていればよかったのかもしれません。しかし、もはやそれだけでは十分ではなく、それぞれ異なるソフトウェアのコンポーネントがどのような相互作用をするのかなど、全体の仕組みを把握したうえで、品質のテストをしなければならなくなってきました」とハレム氏は語る。
ハレム氏は、複雑化だけでなく、熾烈な市場競争による開発サイクルの短縮も1つのトレンドとなっているとし、こうした流れの中、開発者にはより多くの品質に対する責任が生じるようになっていると語る。
「ソフトウェアがさらに複雑になると、システム全体をテストすることが難しくなります。ですから、開発者は、早い段階で各コンポーネントをテストしなければならないのです。Scan Projectの結果を見ると、OSSのコードで直面する課題に大きな変化はなく、トレンドと関係なく人為的なミスが最も大きいことが分かります。この課題を未然に解消するための開発ツールやテストの自動化の必要性が今後も高まると考えています」とハレム氏は説明した。
今回発表された「2010年度オープンソース品質評価レポート」では、調査したOSSで見つかった11,201のバグの45%が、メモリ破損や、リソース・リーク、未初期化変数など高リスクであるとしている。こうしたバグは、セキュリティ違反やシステムのクラッシュ、データ破損など、安全上の問題を生じる可能性がある。OSSを活用するなど、開発元の異なるソフトウェアコンポーネントから構成される製品を提供する企業、業界からは、OSSに対する可視性が求められるようになっているという。
こうした背景から、同社では、Scan Projectの結果をOSSの開発者だけでなく、開発者に一定の調査期間を与えた上で、一般にも公開する予定だ。無修正のまま放置されているバグの修正を促進するとともに、OSSを活用する開発者には、品質の可視性を提供し、ソフトウェアの完全性向上を推進するのが狙いだ。