コードジンのヘッダーが入ります Developers Summit 2009

コベリティ日本支社

【13-E-6】Coverityの提供する「Coverity Inegrity Suite」によるソフトウェアテストプロセス/ソフトウェア開発ライフサイクル改善と品質の向上
リージョナルセールスマネージャー 丸山智樹

現代のソフトウェア開発では、アプリケーションの機能が増大し、ソースコードは複雑化している。定期的にソフトウェアを更新することもあれば、あるいはイレギュラーな修正が突然入ってくることもある。リソースへの制限は厳しくなる一方もかかわらず、機能への要求は高まるばかりだ。
そういった要求すべてにすばやく対応することがデベロッパーに求められているが、ソースコードの可読性が問題となり、開発の大きな負担になっている。ある調査結果によれば、プロジェクトの予算の少なくとも約25%、多いところでは50%がテスト、あるいはテストに基づいたバグフィックスに費やされているという。
コベリティ日本支社の丸山智樹氏(リージョナルセールスマネージャー)による「『Coverity Integrity Suite』によるソフトウェアテストプロセス/ソフトウェア開発ライフサイクル改善と品質の向上」と題したプレゼンでは、コベリティが提供するソースコードの静的解析ツールを利用して、テスト効率を改善し、ソフトウェア開発上の問題を解決する手法が示された。
コベリティは、スタンフォードのコンピュータラボで研究されてきたソースコード静的解析ツールの提供をメイン事業として、2003年に設立された。C/C++、Java、C#の静的解析ツールのソリューションを提供し、併せてテストツールなども提供している。

求められる解決策

テストに起因する問題を解決するためには、マネージャにとっては、評価のための何らかの手段があればよい。コード品質、複雑度、リスクを迅速に評価するツールがあれば、バグ修正やリファクタリングのうち重要課題は何かという優先順位付けができ、それぞれに投入するリソースの効率を向上できる。

一方、開発者にとっては、複雑で大規模になったソースコードを迅速に理解することが求められる。またソースコードにバグがなく、リポジトリにチェックイン可能な状態であることを確認できなければならない。

アーキテクト(ソフトウェアの構造設計者)にとっては、潜在的な変更およびリファクタリング時の影響を確認することが必要で、仕様を変更をしたときにもソフトウェア全体にどのような影響を及ぼすかを迅速に確認したい。

こういった目的に合致するソリューションが、コベリティの提供する「Coverity Integrity Suite」である。高度に統合されたソフトウェア開発ソリューションで、開発ライフサイクル全体を通して、信頼性の高いコードを提供する。「Coverity Integrity Suite」では、以下の3つがテストツールと1つのマネージャツールが統合されている。

大規模な開発環境でも利用されるCoverity Prevent

実際のセッションでは、その場でのデモと事例紹介が行われ、例えば人の手ではチェックできなくなるほど深い呼び出しを確認できるPreventの優位性などが紹介された。デモに使用されたコードでは、関数が呼ばれた先でNULLのまま参照されて落ちる可能性であるとか、NULLチェックが抜けている箇所のリスティング、循環参照が起きている構造上の欠点などが実際に発見されていた。

また、ユーザー事例としてユニークだったのは、株式会社セガが数十億かけたゲーム開発のプロジェクトに導入しているという。大規模な開発環境での活用により、全開発工程の生産性が約20%向上している。Preventによる日次解析結果を、各開発者にレポートとして配布している。また、低誤検知率も5%以下と優れた解析精度を見せ、後工程が格段に楽になっているという。

テストシナリオの負荷を軽減するコベリティのソリューションにより、テストにかかる費用と時間を最適化できている様子がありありと理解できた。

図1:Coverity Software Integrity Suite
問い合わせ先
コベリティ日本支社
〒163-0532
東京都新宿区西新宿1-26-2 新宿野村ビル32階
URL: http://www.coverity.com/html_ja/
E-mail: kwatanabe@coverity.com
戻る
コードジンのフッターが入ります