このセクションの内容
概要
テスト コンフィギュレーションは、どのようにコードを解析するかを定義したものです。たとえば、有効にする静的解析ルール、実行するテストなどの解析パラメーターを定義します。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 STL | Scott 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-Alexandrescu | Herb 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) に基づいたルールをチェックします。 |
コンプライアンス パック
コンプライアンス パックには、特定のコンプライアンス領域に合わせて調整されたテスト コンフィギュレーションが含まれ、業界固有のコンプライアンス標準およびプラクティスを推進するのに役立ちます。
コンプライアンス パックを使用するには、専用のライセンス機能をアクティベートする必要があります。コンプライアンス パックのライセンスについては、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 1998 | MISRA C コーディング規約を推進するルールをチェックします。 |
MISRA C [2004, 2012] | MISRA C 2004 または 2012 コーディング規約を推進するルールをチェックします。 |
MISRA C++ 2008 | MISRA 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 2017 | OWASP のセキュリティ脆弱性トップ 10 で識別された問題を検出するルールを含みます。 |
Payment Card Industry Data Security Standard | PCI Data Security Standard で識別された問題を検出するルールを含みます。 |
SEI CERT C Guidelines | SEI CERT C コーディング スタンダードのルールとリコメンデーションをチェックし ます。このコーディング スタンダードは、セキュア コーディングの ためのガイドラインを提供します。その目的は ( たとえば未定義の プログラム動作や悪用可能な脆弱性をもたらしかねない未定義の動 作を排除することによって) 安全で信頼でき、セキュアなシステム の開発を容易にすることです。 |
SEI CERT C Rules | SEI CERT C コーディング スタンダードのルールをチェックし ます。このコーディング スタンダードは、セキュア コーディングの ためのガイドラインを提供します。その目的は ( たとえば未定義の プログラム動作や悪用可能な脆弱性をもたらしかねない未定義の動 作を排除することによって) 安全で信頼でき、セキュアなシステム の開発を容易にすることです。 |
SEI CERT C++ Rules | SEI CERT C++ コーディング スタンダードのルールをチェックし ます。このコーディング スタンダードは、セキュア コーディングの ためのガイドラインを提供します。その目的は ( たとえば未定義の プログラム動作や悪用可能な脆弱性をもたらしかねない未定義の動 作を排除することによって) 安全で信頼でき、セキュアなシステム の開発を容易にすることです。 |
Security Rules | セキュリティの問題を検出する一般的なテスト コンフィギュレーションです。 |
UL 2900 | UL-2900 標準で識別された問題を検出するルールを含みます。 |
実行時解析
ビルトイン テスト コンフィギュレーション | 説明 |
---|---|
Coverage | コード カバレッジ レポートを生成します。 |
GoogleTest | Google Test の単体テストの結果を解析します。 |
Unit Testing | C/C++test のコネクターで収集された CppUnit または CppUTest のテスト結果を解析します (「Integrating with CppUnit and CppUtest」を参照)。 |
カスタム ルールの作成
カスタム ルールを作成するには、RuleWizard を使用します。DTP Engine でルールを使用するには、テスト コンフィギュレーションでルールを有効化し、カスタム ルール ファイルを [INSTALL_DIR]\rules\user\ ディレクトリまたは別のユーザー固有のディレクトリに配置する必要があります。