このセクションの内容

概要

テスト コンフィギュレーションは、どのようにコードを解析するかを定義したものです。たとえば、有効にする静的解析ルール、実行するテストなどの解析パラメーターを定義します。C/C++testにはビルトイン テスト コンフィギュレーションがあらかじめ用意されていますが、ユーザーは、DTP Server でユーザー独自のテスト コンフィギュレーションを作成して保存することもできます (詳細は DTP のマニュアルを参照)。

DTP Server からユーザー定義のテスト コンフィギュレーションをダウンロードし、*.properties ファイルとして [INSTALL_DIR]/configs/user ディレクトリに保存できます。 

テスト コンフィギュレーションの実行

実行するテスト コンフィギュレーションを指定する方法はいくつかあります。

  • -config スイッチを使用し、ビルトイン、ユーザー定義、またはDTP にホストされたテスト コンフィギュレーションを指定してcpptestcliを実行します。

    -config "builtin://Recommended Rules"
    -config "user://Foo Configuration"
    -config "dtp://Foo Team Configuration" 
    -config "dtp://FooTeamConfig.properties"

    テスト コンフィギュレーションの .properties ファイルのファイル名または URL を指定することもできます。

    -config "C:\Devel\Configs\FooConfig.properties"
    -config "http://foo.bar.com/configs/FoodConfig.properties"

    たとえば、コマンドは次のようになります。

    cpptestcli -config "builtin://Recommended Rules" -compiler gcc_3_4 -input cpptest.bdf

  • .properties ファイルで、-config オプションが指定されていない場合に実行されるデフォルト コンフィギュレーションを指定します。

    cpptest.configuration=user://Configuration Name

利用可能なテスト コンフィギュレーションの表示

利用可能なテスト コンフィギュレーションを出力するには、-listconfigs スイッチを使用します。 

ビルトイン テスト コンフィギュレーション


次の表は、[INSTALL]/configs/builtin ディレクトリにインストールされるビルトイン テスト コンフィギュレーションです。

静的解析

このグループには、ユニバーサルな静的解析テスト コンフィギュレーションが含まれます。特定のコーディング標準を推進するテスト コンフィギュレーションについては、「コンプライアンス パック」を参照してください。

ビルトイン テスト コンフィギュレーション説明
Effective C++Scott Meyers の『Effective C++』に基づいたルールをチェックします。C++ プログラムの効率性をチェックします。
Effective STLScott Meyers の『Effective STL』に基づいたルールをチェックします。
Find Duplicated Code

重複コードをレポートする静的コード解析ルールを適用します。重複コードは、アプリケーションの設計が適切でないことを表す可能性があり、保守性の問題につながる場合があります。

Find Unused Code未使用コード/デッドコードを検出するルールを含みます。
Flow Analysis Standard

テスト ケースやアプリケーションを実行せずに複雑な実行時エラーを検出します。検出されるエラーには、未初期化または無効なメモリの使用、null ポインター間接参照、配列およびバッファーのオーバーフロー、ゼロ除算、メモリおよびリソース リーク、デッド コードなどが含まれます。特別なFlow Analysis ライセンス オプションが必要です。

Flow Analysis Aggressive深いフロー解析を行うルールを含みます。このコンフィギュレーションの実行には、非常に長い時間がかかる可能性があります。
Flow Analysis Fast浅いフロー解析を行うルールを含みます。許容できる可能性があるエラーがレポートされるのを抑制します。
Global Analysis グローバル静的解析ルールをチェックします。
Metrics

コード メトリクスを計測します。 

Modern C++ (11, 14 and 17) モダン C++ 規格 (C++11、C++14、C++17) 向けのベスト プラクティスを推進するルールをチェックします。
Recommended Rules

推奨ルールのデフォルト コンフィギュレーションです。重要度 1 および 2 の大部分のルールをカバーします。Flow Analysis Fast コンフィギュレーションのルールを含みます。 

Sutter-AlexandrescuHerb Sutter と Andrei Alexandrescu の『C++ Coding Standards』に基づいたルールをチェックします。
The Power of Ten

Gerard J. Holzmann の記事「The Power of Ten - Rules for Developing Safety Critical Code」 (http://spinroot.com/gerard/pdf/Power_of_Ten.pdf) に基づいたルールをチェックします。


コンプライアンス パック

コンプライアンス パックには、特定のコンプライアンス領域に合わせて調整されたテスト コンフィギュレーションが含まれ、業界固有のコンプライアンス標準およびプラクティスを推進するのに役立ちます。

(info) コンプライアンス パックを使用するには、専用のライセンス機能をアクティベートする必要があります。コンプライアンス パックのライセンスについては、Parasoft 製品サポートにお問い合わせください。

航空パック

ビルトイン テスト コンフィギュレーション説明

Joint Strike Fighter

Joint Strike Fighter (JSF) プログラム コーディング規約を推進するルールをチェックします。

自動車パック

ビルトイン テスト コンフィギュレーション説明
AUTOSAR C++14 Coding Guidelines

AUTOSAR C++ Coding Guidelines (Adaptive Platform, version 17-10) を推進するルールをチェックします。

HIS Source Code Metrics

Herstellerinitiative Software (HIS) グループによって要求されるメトリクスをチェックします。

High Integrity C++High Integrity C++ Coding 標準を推進するルールをチェックします。
MISRA C 1998MISRA C コーディング規約を推進するルールをチェックします。
MISRA C [2004, 2012]MISRA C 2004 または 2012 コーディング規約を推進するルールをチェックします。
MISRA C++ 2008MISRA C++ 2008 コーディング規約を推進するルールをチェックします。

医療機器パック

ビルトイン テスト コンフィギュレーション説明
Recommended Rules for FDA (C)「FDA General Principles for Software Validation」に準拠するために推奨されるルールをチェックします (C 言語用コンフィギュレーション)。
Recommended Rules for FDA (C++)「FDA General Principles for Software Validation」に準拠するために推奨されるルールをチェックします (C++ 言語用コンフィギュレーション)。

セキュリティ パック

ビルトイン テスト コンフィギュレーション説明

CWE-SANS Top 25 Most Dangerous Programming Errors

CWE-SANS の Top 25 Most Dangerous Programming Errors として分類された問題を検出するルールを含みます。


OWASP Top 10 2017OWASP のセキュリティ脆弱性トップ 10 で識別された問題を検出するルールを含みます。
Payment Card Industry Data Security Standard

PCI Data Security Standard で識別された問題を検出するルールを含みます。 

SEI CERT C Guidelines

SEI CERT C コーディング スタンダードのルールとリコメンデーションをチェックし ます。このコーディング スタンダードは、セキュア コーディングの ためのガイドラインを提供します。その目的は ( たとえば未定義の プログラム動作や悪用可能な脆弱性をもたらしかねない未定義の動 作を排除することによって) 安全で信頼でき、セキュアなシステム の開発を容易にすることです。

SEI CERT C RulesSEI CERT C コーディング スタンダードのルールをチェックし ます。このコーディング スタンダードは、セキュア コーディングの ためのガイドラインを提供します。その目的は ( たとえば未定義の プログラム動作や悪用可能な脆弱性をもたらしかねない未定義の動 作を排除することによって) 安全で信頼でき、セキュアなシステム の開発を容易にすることです。
SEI CERT C++ RulesSEI CERT C++ コーディング スタンダードのルールをチェックし ます。このコーディング スタンダードは、セキュア コーディングの ためのガイドラインを提供します。その目的は ( たとえば未定義の プログラム動作や悪用可能な脆弱性をもたらしかねない未定義の動 作を排除することによって) 安全で信頼でき、セキュアなシステム の開発を容易にすることです。
Security Rulesセキュリティの問題を検出する一般的なテスト コンフィギュレーションです。
UL 2900UL-2900 標準で識別された問題を検出するルールを含みます。

実行時解析

ビルトイン テスト コンフィギュレーション説明
Coverage コード カバレッジ レポートを生成します。
GoogleTestGoogle Test の単体テストの結果を解析します。
Unit Testing

C/C++test のコネクターで収集された CppUnit または CppUTest のテスト結果を解析します (「Integrating with CppUnit and CppUtest」を参照)。

カスタム ルールの作成

カスタム ルールを作成するには、RuleWizard を使用します。DTP Engine でルールを使用するには、テスト コンフィギュレーションでルールを有効化し、カスタム ルール ファイルを  [INSTALL_DIR]\rules\user\ ディレクトリまたは別のユーザー固有のディレクトリに配置する必要があります。





  • No labels