オープンソース活用研究所 | 静的解析ツールCoverity、その人気の秘密

静的解析ツールCoverity、その人気の秘密

オープンソース活用研究所

2016年10月25日
オープンソース活用研究所 所長 寺田雄一

2016年07月21日オージス総研東京本社会議室にて、「組込みシステムの品質を改めて考える(設計フェーズと実装フェーズでの対策)」セミナーが開催されました。

セミナー第二部では、株式会社オージス総研サービス事業本部プロダクトサービス部 Coverity Certified Professionalの高橋 作典氏が「静的解析ツールCoverity(コベリティ)、その人気の秘密」というテーマで講演されました。

高い完成度と優れた投資対効果のある、静的解析ツールCoverityは、外部品質のバグ検知と修正に多くの時間とコストを費やしている企業にとってはメリットが大きいツールです。

本稿では、同講演のハイライトをオープンソース活用研究所所長 寺田雄一がレポートします。

完成度が高くROIも抜群の静的解析ツール、Coverity。

Coverity(コベリティ)は、実用的なバグを早期に検知し、短時間に大量のソースの品質を確保できるソースコード静的解析ツールです。

Coverityは、2012年アメリカの組込み静的解析ツール市場において35.8%と市場一位のシェアを誇っていました。2016年現在でもCoverityのシェア一位は変わらず、世界的にも、また日本市場においても同様で、2016現在、日本で最も活用されている静的解析ツールと言えます。

Coverityを使っているユーザー企業には、名だたるグローバルメーカーが名前を連ねています。また、インターネット、金融、証券と、業種を問わず活用されているのも特徴的です。Coverityの人気の理由としては「ツールの完成度」とともに「投資対効果(ROI)」も挙げられています。

スライド-Embedded Static Analysis tools

 

Coverityは、過去の課題を解決した進化系静的解析ツール。

静的解析ツールにはランタイムエラー検出系とパターンマッチング系に大別できます。Coverityは、ランタイムエラー検出系の代表製品であり、過去の類似製品の課題を踏まえた進化をしています。

静的解析技術の第一世代は、1970年から1990年にかけて開発されたLintに代表される製品群でした。Lintはノイズが多く性能上の限界がありました。1990年代に、第二世代であるパターンマッチング系解析技術が登場しました。パターンマッチングは可能になりましたが、引き続きノイズが多い状態は続いていました。

そんななか、2000年初頭、パターンマッチングではなく実行時のエラーを検出する技術をもったのが、第三世代のCoverityです。Coverityは業界トップクラスの高精度の解析エンジンにより、低い誤検知率を実現しています。

スライド-静的解析技術の進化

誤検知率は15%以下というCoverityの正確性。

Coverityの完成度の高さの具体例として突出しているのが誤検知率の低さです。Coverityの誤検知率は15%以下で、他のパターンマッチング系ツールの誤検知率50%を大きく下回ります。

Coverityが公式に発表している誤検知率は15%以下としていますが、実際のユーザー企業のなかには誤検知率は一ケタ、中には数パーセントという企業も存在しています。結果、Coverityのポリシーから出力されるのはほぼ確実にバグである、ということになっています。

またCoverityは、疑似コード実行による全パス解析を行うため、関数コールの先にあるバグまで検出することができます。

さらに、高速な解析もCoverity の特徴で、ビルド時間の3倍から4倍の時間で解析が完了します。

例えば130万行規模の大規模コードのビルドが30分掛かるとすると、Coverityの解析はわずか1時間半程度で完了します。

Coverityの完成度の高さは、開発者のバグ修正時間と手間を大きく削減します。

結果的に開発者に時間的・気持ち的な余裕が生まれ、内部品質の改善に踏み込むことができ、品質改善のスパイラルを作ることも可能です。

Coverityが検知するバグは、微細にわたる。

 Coverityが検知する不具合は、「並列処理の問題」、「パフォーマンスの低下」、「クラッシュの原因」、「プログラムの不正な動作」、「セキュリティ」など、きめ細かく多岐に渡ります。

スライド-Coverityが検出する不具合の一例

ここで高橋氏はCoverityが実際に不具合を検知する様子をデモで見せてくださいました。

Coverityは、解析用と解析結果の参照用、ふたつのコンポーネントで構成されています。開発者は、Webブラウザでコンポーネントがあるサーバへアクセスして解析結果を確認し、ソースコードにCoverityがメッセージを添える形で不具合を指摘します。そのほか統計情報から不具合を検出したり、検出条件をあらかじめ設定したりすることもできます。もちろん、日本語にも対応しています。

Coverityが実際に不具合を検知するデモでは、C言語のメモリリークの不具合検出の様子、NULL戻り値の間接参照の不具合検出、コピーペーストエラー検出の様子が紹介されました。

開発予算を抑えるCoverityの優れた投資対効果。

 Coverityが投資対効果に優れていることは、Coverityのユーザー企業12社を対象にした調査結果からも窺うことができます。

Coverity導入前の不具合修正時間を16人時間/バグ、導入後を2人時間/バグとした上で、導入前開発コスト3,000万円を導入後には375万円まで削減しました。またCoverityの導入コストを加えても1,000万円以下にまでコストの削減を実現させました。

スライド-Coverity導入前後での開発コストの比較

なかでも、不具合を早期発見することによるメリットは大きいものがあります。リリース前後でのバグの発生は致命的になり、開発コストの増減に直結するからです。

Coverityを導入し開発初期の段階でバグを検出することが可能になったことで、そういったリリース前後の不測の事態が圧倒的に軽減されました。

Coverityを導入することでリリース後の修正コストの発生を防止できるだけでなく、社会的側面を見れば信用失墜や損害賠償コストの発生も未然に防ぐことが可能となります。

トータルで見るとCoverity導入による投資対効果は極めて大きなものになります。

高橋氏は最後にCoverityの人気の秘密の二つのポイント、ツールの完成度と投資対効果をおさらいし、講演の幕を閉じました。

スライド-Coverityがもたらす投資対効果

ご参考

本セミナーの講演資料はマジセミから入手していただけます。


OSSNEWSに広告を掲載しませんか?

著者プロフィール

オープンソース活用研究所 所長 寺田雄一

1993年、株式会社野村総合研究所(NRI)入社。 インフラ系エンジニア、ITアーキテクトとして、証券会社基幹系システム、証券オンライントレードシステム、損保代理店システム、大手流通業基幹系システムなど、大規模システムのアーキテクチャ設計、基盤構築に従事。 2003年、NRI社内に、オープンソースの専門組織の設立を企画、10月に日本初となるオープンソース・ソリューションセンター設立。 2006年、社内ベンチャー制度にて、オープンソース・ワンストップサービス 「OpenStandia(オープンスタンディア)」事業を開始。オープンソースを活用した、企業情報ポータル、情報分析、シングルサインオン、統合ID管理、ドキュメント管理、統合業務システム(ERP)などの事業を次々と展開。 オープンソースビジネス推進協議会(OBCI),OpenAMコンソーシアムなどの業界団体も設立。同会の理事、会長や、NPO法人日本ADempiereの理事などを歴任。 2013年、NRIを退社し、株式会社オープンソース活用研究所を設立。

最新TOPICS

【オープンソース活用研究所、『第三回目「認証・ID管理の課題と、今後「SKUID」に求められる機能」』と題したコラムを掲載】(2017年02月20日 12:39)

オープンソース活用研究所は、『第三回目「認証・ID管理の課題と、今後「SKUID」に求められる機能」』と題したコラムを掲載しています。 2016年12月5日、GMOグローバルサイン株式会社にて「クラウドサービス利用時のID/パスワード管理 運用実務 勉強会」が開催されました。当日は、クラウドサービスにおける認証とID管理の動向や、パスワード使いまわしなどID管理のリスクをご紹介するとともに、ID...

関連オープンソース

WSO2 Identity Server(ダブルエスオーツー アイデンティティ サーバ)

  • シングルサインオン

WSO2 Identity Server(ダブルエスオーツー アイデンティティ サーバ)とは、シングルサインオンソリューションです。アプリケーション/API/クラウド/モバイル間で統合ID管理を行います。

LibreSSL(リブレ エスエスエル)

  • ネットワーク系ツール

LibreSSL(リブレ エスエスエル)とは、SSL/TLSプロトコルのオープンソース実装(通信用ソフトウェア)で、「OpenSSL」の派生改良版です。圧倒的シェアを持つが問題が多い「OpenSSL」を代替できるものとして期待されています。

Vuls(バルス)

  • セキュリティソフト

Vuls(バルス)とは、脆弱性スキャンツールです。Linux(FreeBSD)系OS/各種ミドルウェア/各種フレームワークなどに対する脆弱性存在を検査し、詳細情報をレポーティングします。

OpenSSH(オープンエスエスエイチ)

  • ネットワーク系ツール

OpenSSH(オープンエスエスエイチ)。ネットワーク経由通信を暗号化する「SSH」のオープンソース実装です。おもにUNIX/Linuxサーバに対するネットワーク経由でのリモートログインに使用します。

FreeRADIUS(フリーラディウス)

  • 認証サーバ

FreeRADIUS(フリーラディウス)。オープンソースの高機能RADIUSサーバです。認証用プロトコル「RADIUS」機能を実現するデファクトスタンダードとして広く使われています。

OpenSSL(オープンエスエスエル)

  • ネットワーク系ツール

OpenSSL(オープンエスエスエル)。オープンソースSSL/TLS暗号化ライブラリです。世界中のWebサイトで圧倒的シェアを持っており、事実上の業界標準となっています。

Apache DS(アパッチディーエス)

  • 認証サーバ

Apache DS(アパッチディーエス)。オープンソースのLDAP(ディレクトリ)サーバです。「Apache Directory」プロジェクトで開発されています。

389 Directory Server(389ディレクトリサーバ)

  • 認証サーバ

389 Directory Server(389ディレクトリサーバ)。オープンソースディレクトリサーバです。「Fedora Directory Server」の後継で、商用製品の流れを受けており、ユーザフレンドリーなGUIツールの充実などが特徴です。

OpenIDM(オープンアイディーエム)

  • ID管理

OpenIDM(オープンアイディーエム)。高い柔軟性と拡張性を備え、エンタープライズ/クラウド/モバイル/ソーシャル/レガシーなど多様な環境において、ユーザアカウントのプロビジョニングとライフサイクルの一元管理を実現するID管理製品です。

LISM(リズム)

  • ID管理

LISM(リズム)。シンプルな使いやすさが特徴のID統合管理ソリューションです。

OpenAM(オープンエーエム)

  • シングルサインオン

OpenAM(オープンエーエム)。「OpenSSO」の後継製品として、認証、アクセス認可、フェデレーションなどの機能を備えた、Webアプリケーションやクラウドサービスに対してのシングルサインオンを実現するオープンソース高機能認証ソリューションです。

OpenLDAP(オープンエルダップ)

  • 認証サーバ

OpenLDAP(オープンエルダップ)。最も多くの導入実績があり、ディレクトリサービスを提供するオープンソースLDAPサーバです。

OpenDJ(オープンディージェー)

  • 認証サーバ

OpenDJ(オープンディージェー)。OpenAMに内蔵されており、先進的なレプリケーションアーキテクチャや「REST API」を搭載したLDAP準拠の高機能オープンソースディレクトリサーバです。

バックナンバー

関連記事

11

  • オープソース書籍(サイド)

OSS×Cloud ACCESS RANKING

facebook

twitter