Coverity ® Solution Overview

SOLUTION OVERVIEW
Coverity Software Testing Platform
Coverity® Software Testing Platformは品質とセキュリティに関わる重大な不具合の
洗い出し、管理、改善を支援、開発チームによるテスト実行を効率化することにより、ソフ
トウェアエラーにかかるコスト削減、時間短縮、そしてリスク低減を実現します。
リスクを抑え、早期に製品の市場投入を実現するには、品質・セキュリティ上の問題を、可能な限りソフ
トウェア開発ライフサイクル(SDLC)の早い段階で検出し改善する必要があります。市場をリードする
数々の企業が、Coverity Software Testing Platform を使い受け身のテストプロセスを攻めのプロセスに
変え、競争力の強化に役立てています。
Coverity Software Testing Platform
Coverity Software Testing Platform は、早期に品質・セキュリティテストを開発プロセスに組み入れ、
ソフトウェアを迅速かつ確実に、また予定通りに仕上げられるだけでなく、品質保証チームがソースコー
ドへアクセスすることなく、コード変更に関わる影響に応じて自動・手動テストの実行を絞り込めるの
で、品質保証(QA)のテストサイクル短縮も可能にします。これによりコスト削減、リスク低減が可能
となり、市場投入を加速化、ひいては顧客満足度の向上と売上増加につながります。
主要ソリューションと機能
Coverity Foundation
受賞歴を持つコベリティの静的コード解析機能が Coverity Software Testing Platform の土台を支えてい
ます。10 年以上にわたり重ねてきた、50 億行を超える商用やオープンソースのソフトウェアコードの研
究・開発・分析をもとに、複数の特許取得済解析技術を応用したコベリティの静的コード解析は、書かれ
たままのコードを自動的にテストします。従来は検証や検出が困難な問題も正確・確実に洗い出します。
パス全体を網羅し、あらゆるコード行と想定可能なすべての実行パスを確実に検証します。全プロシー
ジャ間の解析により、開発者は単純なスタイル違反または表面的な問題の解決にとどまらず、機能の枠を
超えた複雑な不具合を識別、修正できるようになります。
デベロップメントテスト
の利点
・QAやセキュリティテストの
サイクルを短縮します。
・デベロップメント、QA、セ
キュリティチーム間のコラ
ボレーションを改善しま
す。
・トラブルシューティングや
手戻りのコストと時間を削
減します。
・より多くの時間とリソース
を機能開発に充てられま
す。
・フィールドまたはリリース
段階にまで残る不具合を
削減できます。
・リスクの高いコード変更を
洗い出し、テスト実施にお
いてどのような影響が生じ
得るかを評価します。
Coverity Software Testing Platform は 1,100 を超える顧客に愛用されています。
COVERITY SOFTWARE TESTING PLATFORM
コベリティの静的コード解析は、誤検出率を低減し、修正可能なア
ドバイスを提供するために、洗練された技術を採用しています:
• プロシージャ間データフロー解析で、機能やファイル、クラス
の枠を超えた複雑な問題を検出。
• ブール値充足可能性ソルバーで、ビットレベルでの解析の精度
を向上。
• フォールスパス・プルーニングにより、データのコード依存性
を理解し、実行不可能なパスを解析から排除。
• 統計プロファイリングにより自動的にコーディングパターン
を検出し、解析結果の「ノイズ」を低減してプログラマーの
やりたいことを学習、つまりコード自体に注目するのではな
く、プログラマーの意図を理解。
• 解析に組み込まれたパターンやプログラム用語を理解する、設
計パターン・インテリジェンス。
• エンタープライズ・フレームワーク・アナライザにより、依
存性の注入、エントリーポイントや MVC デザインパラダイム
など、最新のウェブアプリケーションに関しての深い理解を
実現し、ソースコード解析を補強。
• ホワイトボックスファザーは、データのサニタイジングルーチ
ンの実行によって信頼度の低いデータが無害化され、ルーチ
ンが正しいコンテクストで実行されているかを自動的に判断。
• チェンジインパクト解析では、自動でコードおよび関数の依存
マッピングを行い、変更を加えたことで影響が生じるあらゆ
るコード、つまり変更されたコードとその変更による影響を
受けるコード全てを解析。
コベリティプラットフォームはスケーリングが可能なので、何千人
もの開発者が、それぞれの場所からプロジェクト解析を実施でき、
1 億を超えるコード行でも容易に解析することができます。並列解
析を使えば、大容量の複雑なコードベースでも迅速に解析可能で
す。きわめて複雑なコードベースでも定期的スキャンが可能となり、
ソフトウェアのテスト実行を毎晩、あるいは継続した開発プロセス
の一環として定着させることができます。差分解析を使えば、開発
者にとって、変更されたコード、またはその変更によって影響を受
けるコードの迅速な解析が可能となり、貴重な時間の節約になり
ます。
Coverity Connect ですばやい修正
Coverity Connect は、開発者が問題管理を共同で行えるインター
フェースで、ソースコード解析から洗い出されたあらゆる問題を効
率的に管理し、一つのワークフローの中で解決できるようになって
います。自動化された問題管理の主な機能には次のものがありま
す:
• 問題の重大さと影響の大きさに基づいた優先順位づけおよび
フィルタリング
• ソースコードナビゲーションで、パス上の正確な不具合の位置
を特定
• 共通コード内の不具合発生を全て洗い出だすインパクトマッ
ピング
• それぞれの問題をしかるべき開発者に自動的に割り当て
SOLUTION OVERVIEW
Coverity Software Testing Platform は拡張可能なので、サードパー
ティーの解析ツールと統合し、その解析結果を Coverity Connect
で可視化することができます。これにより、コード解析・管理を
簡素化し、一貫したシステムを提供します。拡張性のあるプラット
フォームなので、追加コンポーネント(ソースコントロール管理シ
ステム、バグ追跡システム、統合開発環境(IDE)、ビルドシステム、
継続的統合システム、アプリケーションライフサイクルマネジメント
(ALM)など)を開発環境へ素早く統合できます。
Coverity Quality Advisor
Coverity Quality Advisor は、ソフトウェア開発におけるワークフ
ロー内の重大な品質不具合を正確に洗い出し、修正可能なアドバ
イスを提供します。これにより、開発者は迅速かつ効率的に問題
解決に取り組み、品質保証(QA)段階までに並列処理の問題や
API 使用上のエラー、メモリリーク、パフォーマンスやメンテナン
ス性の問題など対応を必要とする品質不具合の解決を可能にしま
す。ユーザは解析を継続的統合サーバまたはメインソフトウェアの
一部と連動させ、自社 IDE 内部から直接実行することが可能です。
Coverity Quality Advisor なら、開発サイクルの初期段階で品質を
確保し、品質に関わる問題やソフトウェア不具合にかかるコスト削
減、時間短縮、リスク低減を実現します。
さらに、コベリティの解析で特定された品質不具合に、別の解析
エンジンからの結果をスムーズに統合できるので、様々なタイプの
品質不具合を一貫したソフトウェアテスト実行ワークフロー内で管
理できます。
Coverity Quality Advisor に統合可能な解析パッケージとして次の
ものを用意しています:
• Coverity Dynamic Analysis for Coverity Quality Advisor は競合
状態やデッドロック、Java プログラムでのメモリリークなど
並列処理の問題を検知。
• Coverity Architecture Analysis for Coverity Quality Advisor で
構造上の不備の洗い出しを実行。
• Analysis Integration を使い、開発者がコベリティのプラットフ
ォームで洗い出した不具合と同じワークフロー内で FindBugs
や FxCop の不具合を管理でき、不具合の表示、改善を一カ所
で実施可能。
• Coverity Analysis Integration Toolkit は、サードパーティーの
プログラムによる解析結果をコベリティのプラットフォーム
へ統合し、多種多様の品質・セキュリティ上の問題に対し、
それぞれ異なったツールの適用を実現。さらに検出された不
具合を全て一つのワークフローで処理。
Coverity Security Advisor
Coverity Security Advisor は、開発途中でセキュリティ上の脆弱性
につながる可能性のある重大な不具合を洗い出すことにより、企
業団体においてリスク低減、プロジェクトのコスト削減を可能にし
ます。コベリティの静的コード解析を採用し、SQL 注入やクロス
サイトスクリプティング(XSS)、クロスサイトリクエストフォージェリ
(CSRF)など、Web 用 Java アプリケーションにおける OWASP
Top 10 や CWE Top 25 に関わる重大な不具合を洗い出します。こ
れまでのセキュリティツールが開発において成功しなかった主な原
因の一つは、誤検出が多く、解析結果が不正確だったことが挙げ
COVERITY SOFTWARE TESTING PLATFORM
られます。それに対してコベリティの静的コード解析エンジンは、
複雑化した今日のアプリケーションに対応すべく一から構築してい
ます。そのため、結果がより正確で、開発者が誤検出や検出漏れ
の調査のために時間を浪費せずに済みます。その時間を関連性の
高い重大な不具合の解決に傾注できるのです。
Coverity Security Advisor を使えば、開発プロセスにセキュリティ
が実質的に組み入れられます。これにより、開発サイクルの後半に
なって不具合が検出され、遅延や作業のやり直しでコストが嵩むこ
ともありません。ひいては市場や本番稼働でセキュリティ違反を起
こし、改修コストの発生やブランドを傷つけるようなリスクも低減
することができ、プロジェクト全体のコスト削減につながります。
Coverity Test Advisor ̶ Development Edition
ユニットテストのような自動テストは、概念としては大切ですが、
実用としては効率よくありません。コード網羅率は開発段階におい
て「充足性」の判断の尺度として一般的に用いられることが多い
反面、時に誤解も招きます。つまり、コードに対する正しい理解が
なければ、網羅率は単なる数字に過ぎません。開発者の時間の浪
費となるだけでなく、リスク増大にもつながります。Coverity Test
Advisor – Development Edition は、コードのリスクが最も高い部
分に時間とリソースを傾注し、未検証の違反コードを洗い出すこと
で自動テストの効率を高めるので、開発者がそのワークフロー内
で修正をより迅速かつ効率的に実行できます。
Coverity Test Advisor – Development Edition を使えば、開発チー
ムにとって、どのコードが最も高リスクで、徹底した検証が必要か
を定義したテストポリシーを定義することが可能になります。
Coverity Test Advisor – Development Edition には最も注目すべき
コードを検証するために役立つ以下のような機能が備わっていま
す:
• チェンジインパクト解析で、コードへの変更により生じる機能
的影響を洗い出し。
SOLUTION OVERVIEW
• 深いコード解析により、チームがデッドコードや検査不能コー
ド、デバッグや例外処理コードを自動テスト実行から排除す
ることを可能に。
• テストルールコンフィギュレータは、管理者が高リスク条件に
基づいて、プロジェクトやチームに一貫したテストルールを
確立、執行できるよう支援。
• テスト優先付けは、コードやプロジェクトの優先順位に対する
変更に基づき、どのテストを実施すべきかの判断材料を提供
し、テストにかかる時間を高速化。
• テストデータ相関解析は、コベリティ静的コード解析やテス
トカバレッジ、構成管理ツールを含む複数のソースから離散
データを自動的に結び付け、それらのデータを対処可能なテ
ストインテリジェンスへ変換。
Coverity Connect が未検証の違反コードを洗い出すので、修正を
迅速かつ容易に実施できます。テストが不十分な場合は、開発者
やテストエンジニア向けの作業アイテムに変換し、管理者がその作
業を追跡、処理完了まで見届けることができます。
Coverity Test Advisor – QA Edition
Coverity Test Advisor – QA Edition は品質保証(QA)チームにソ
フトウェアテスト用のインテリジェントなチェンジインパクト解析を
提供します。自動テストの実行状況と結果を監視することで、チー
ムにとってソースコードへの変更に基づいたテストの優先付けや最
も重要なコードの洗い出しが可能になります。市場投入までの時
間を短縮すると同時に、関連性の高いテストを全て確実に実施で
きます。その結果、製品が十分に検証済みで問題はすべて解決済
みだという安心感につながるのです。
Coverity Test Advisor – QA Edition は Java アプリケーションや C#
アプリケーション、web アプリケーションを解析し、それぞれのテ
ストがコード変更をどの程度カバーしているのかをスコアにして算
出します。チームメンバーが自ら加えた修正に関連の高いテストに
集中できるので、テストに要する時間が短縮されます。チームが、
エグゼクティブ向けにプロジェクトの潜在リスク領域を可視化、プロジェクト管理を向上します。
COVERITY SOFTWARE TESTING PLATFORM
SOLUTION OVERVIEW
リスクの高さに応じてテストの優先順位を決定できるため、品質も改善されていきます。
Coverity Test Advisor – QA Edition は継続的に記録されるテストの履歴とコード変更を結び
付け、開発製品の機能的な概要を生成します。このインテリジェントなデータ集約により、テ
ストチームによるカバレッジ内のギャップの識別を可能にし、本番段階でのリグレッション不
具合のリスクを回避します。
Coverity Test Advisor – QA Edition のダッシュボードを使えば、リスク解析を実施し、コー
ドの変更が既存のテストにどのように影響を与えるかを発見すると同時に、インパクトアナラ
イザを駆使して加えた修正がテストプランに与える影響を評価し、不要なテストを排除します。
また、テストカバレッジ内のギャップを排除したテストシナリオ生成も可能です。この 起こ
りうる事象 の想定により、品質管理チームは、製品に加えられた変更のリスクをテストサイ
クルの前にモデル化することができます。
Coverity Test Advisor – QA Edition の使用においては、特別なビルドを用意する必要はあり
ません。レコーディングエージェントが、.NET、Java および Web アプリケーションをそれぞ
れのネイティブランタイム環境上でバイナリから発見した情報を利用して監視します。ソース
コードやソース管理サーバへのアクセスも必要なく、またコードやアプリケーション、データ
がお客様のネットワーク外に発信される心配もありません。
Coverity Policy Manager
Coverity Policy Manager の使用により、企業内でコード品質、セキュリティ、テスト基準を
一貫して定義、施行できます。カスタマイズ可能な画面で、開発評価基準(メトリクス)と
しきい値を到達目標に合わせて選択できます。また選択した基準はプロジェクトのどの時点
でも変更可能です。違反を生じさせているコード内の不具合を検証し、チームやプロジェク
ト、コンポーネントが開発標準とトレーサビリティに準拠しているかを判定できる可視性を与
えます。可視性とトレーサビリティが向上することで、より良い判断が可能となり、製品リリー
スの予測も正確さを増します。
不具合密度、未修正と修正済み不具合数、変更の影響による未修正不具合を含め数多くの
コベリティメトリクスを活用し、コード品質とセキュリティを監視します。またテストポリシー
カバレッジ、未修正テストポリシー違反などのメトリクスを使用すれば、テスト効率も管理で
きます。
品質とセキュリティの現状を監視し、その動向を継続して追跡。日次または月次のツール使
用ユーザや作りこまれた不具合と解決済みの不具合、その他の重要情報を掌握するメトリク
スを利用することで、ソフトウェアテストの実施ごとに不具合密度が低くなることを監視して
いきます。
特定できる品質とセキュ
リティ不具合
・デッドロック、競合状態と
いった並列処理の不具合
・メモリーリーク、データベー
スコネクションリークなど
による性能劣化問題
・Nullポインタの間接参照、
不適切なメモリ割り当てな
どのクラッシュを引き起こ
すエラー
・デッドコード、未初期化変
数、およびその他エラーに
よる不適切なプログラムの
挙動
・整数およびバッファーオー
バーフローが原因の任意コ
ード実行
・破壊によるデータロス
・データタイプの誤使用と混
合にる完全性の喪失
・高リスクな暗号関数の使用
・S Q L イ ン ジ ェク ショ
ン、XSS、パストラバーサル
などのWebアプリケーショ
ンのセキュリティ不具合
コベリティジャパン株式会社
〒163-0509 東京都新宿区西新宿1-26-2 新宿野村ビル 9階
TEL: 03-5909-8838 Email: [email protected]
Website: http://www.coverity.com/html_ja/
無料トライアル:http://www.coverity.com/html_ ja/ にて
「無料トライアル」
を選択
©2014 Coverity, Inc. All rights reserved.(不許複製・禁無断転載)Coverity、Coverityロゴ 、Coverity SAVE は米国およびその他の国における
登録商標です。その他の製品及び会社名は、該当する各社の商標、
または登録商標です。
201407-02
201407-04