このセクションの内容
概要
テスト コンフィギュレーションは、どのようにコードを解析するかを定義したものです。たとえば、有効にする静的解析ルール、実行するテストなどの解析パラメーターを定義します。Jtestにはビルトイン テスト コンフィギュレーションがあらかじめ用意されていますが、ユーザーは、DTP Server でユーザー独自のテスト コンフィギュレーションを作成して保存することもできます。 DTP プラグインから DTP Server にアクセスできます。DTP Report Center の管理者レベルのアクセス権限を持っている場合、DTP で直接テスト コンフィギュレーションを作成できます ([管理] > [エンジン] > [テスト コンフィギュレーション])。
DTP Server からユーザー定義のテスト コンフィギュレーションをダウンロードし、*.properties ファイルとして [INSTALL_DIR]/configs/user ディレクトリに保存できます。
テスト コンフィギュレーションの実行
実行するテスト コンフィギュレーションを指定する方法はいくつかあります。
-config スイッチを使用し、ビルトイン、ユーザー定義、またはDTP にホストされたテスト コンフィギュレーションを指定して
jtestcli
を実行します。-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"
たとえば、コマンドは次のようになります。
jtestcli -config "user://Configuration Name"
.properties ファイルで、
-config
オプションが指定されていない場合に実行されるデフォルト コンフィギュレーションを指定します。jtest.config=user://Configuration Name
Ant and Maven Pattern
Ant または Maven を使用する場合、次のパターンでテスト コンフィギュレーションを指定することもできます。
<config>user://Configuration Name</config>
Settings Property Pattern
jtest.config=user://Configuration Name
利用可能なテスト コンフィギュレーションの表示
利用可能なテスト コンフィギュレーションを出力するには、-listconfigs スイッチを使用します。
引数を指定してコンフィギュレーションをフィルターできます。ワイルドカード "*" を使用できます。
-listconfigs
- 利用可能なすべてのコンフィギュレーションを表示します。-listconfigs builtin
- すべてのビルトイン コンフィギュレーションを表示します。-listconfigs builtin*Secure*
- 名前に "secure" が含まれるすべてのビルトイン コンフィギュレーションを表示します。
ビルトイン テスト コンフィギュレーション
次の表は、[INSTALL]/configs/builtin ディレクトリにインストールされるビルトイン テスト コンフィギュレーションです。
ビルトイン テスト コンフィギュレーション | 説明 |
---|---|
Recommended Rules | 推奨ルールのデフォルト コンフィギュレーションです。重要度 1 および 2 の大部分のルールをカバーします。Flow Analysis Fast コンフィギュレーションのルールを含みます。 |
Find Duplicated Code | 重複コードをレポートする静的コード解析ルールを適用します。重複コードは、アプリケーションの設計が適切でないことを表す可能性があり、保守性の問題につながる場合があります。 |
Internationalize Code | 国際化を妨げる可能性が高いコードを検出する静的コード解析を適用します。 |
Metrics | コード メトリクスを計測します。 |
Critical Rules | 重要度 1 のルールの大部分および Flow Analysis Fast コンフィギュレーションのルールを含みます。 |
Flow Analysis Standard | テスト ケースやアプリケーションを実行せずに複雑な実行時エラーを検出します。検出されるエラーには、未初期化または無効なメモリの使用、null ポインター間接参照、配列およびバッファーのオーバーフロー、ゼロ除算、メモリおよびリソース リーク、デッド コードなどが含まれます。特別なFlow Analysis ライセンス オプションが必要です。 |
Flow Analysis Aggressive | 深いフロー解析を行うルールを含みます。このコンフィギュレーションの実行には、非常に長い時間がかかる可能性があります。 |
Flow Analysis Fast | 浅いフロー解析を行うルールを含みます。許容できる可能性があるエラーがレポートされるのを抑制します。 |
Demo Configuration | さまざまなコード解析技術をデモンストレーションするルールを含みます。大規模なコードの解析には適していない可能性があります。 |
Find Memory Problems | メモリ管理の問題を検出するルールを含みます。 |
Find Unused Code | 未使用コード/デッド コードを検出するためのルールが含まれます。 |
CWE-SANS Top 25 2011 | CWE-SANS の Top 25 Most Dangerous Programming Errors として分類された問題を検出するルールを含みます。 |
CERT for Java | CERT 標準で識別された問題を検出するルールを含みます。 |
OWASP Top 10 2017 | OWASP のセキュリティ脆弱性トップ 10 で識別された問題を検出するルールを含みます。 |
PCI Data Security Standard | PCI Data Security Standard で識別された問題を検出するルールを含みます。 |
UL 2900 | UL-2900 標準で識別された問題を検出するルールを含みます。 |
Thread Safe Programming | マルチスレッド環境で実行するのが危険なコードを検出し、デッドロック、競合状態、通知の失敗、無限ループ、データ破壊などのスレッド処理でよくある問題を防ぐのに役立つルールです。 |
Unit Tests | 生成されるレポート ファイルに、単体テストの実行データを含めます。 |
Calculate Application Coverage | アプリケーション カバレッジ データを処理して coverage.xml ファイルを生成します。詳細については「アプリケーション カバレッジ」を参照してください。 |
Unit Testing Best Practices | 単体テストのベスト プラクティスを徹底するのに役立つほか、単体テストでアサーションが確実に作成されるようにします。 |
Code Smells | Kent Beck と Martin Fowler による Code Smells ドキュメント (http://xp.c2.com/CodeSmell.html) に基づいたルールです。 |
TDD | DD (Test Driven Development) コンフィギュレーションは、Code Smells ドキュメント (http://xp.c2.com/CodeSmell.html) に基づいたルール、テスト対象クラスに対して JUnit テスト クラスが包括的かどうかをチェックするルール、および Critical Rules (Must Have) テスト コンフィギュレーションのルールを含みます。 |
Unit Test Assistant | 単体テストの品質向上に役立つルールを含みます。このテスト コンフィギュレーションを CQA モードで使用することを推奨します。 |
カスタム ルールの作成
カスタム ルールを作成するには、RuleWizard を使用します。DTP Engine でルールを使用するには、テスト コンフィギュレーションでルールを有効化し、カスタム ルール ファイルを以下のどちらかのディレクトリに配置する必要があります。
- [INSTALL_DIR]\rules\user\
- [DOCUMENTS DIR]\Parasoft\[engine]\rules
[DOCUMENTS DIR] は Windows の "My Documents" ディレクトリを指します。