このリリースには以下の拡張が含まれます。

リリース日: 2021年11月2日

Azure DevOps および GitLab との統合

CI システムを使用するワークフローの合理化に役立つ拡張が行われました。Jtest からレポートされた結果を直接 Azure Pipelines または GitLab で簡単に確認できます。

Azure DevOps との統合

Jtest extension for Azure DevOps が追加され、Jtest を簡単に Azure DevOps パイプラインに統合できるようになりました。Jtest extension は、Jtest の解析を実行し、 Azure DevOps 固有の SARIF フォーマットで Jtest レポートを生成するタスクを提供します。パイプラインを実行するたびに、解析の結果がビルド結果に表示されます。詳細については https://marketplace.visualstudio.com/items?itemName=parasoft.jtest-azure-devops を参照してください。

GitLab との統合

Jtest の解析を実行して SAST フォーマットで解析レポートを生成するよう GitLab ワークフローを変更することで、GitLab と Jtest を統合できるようになりました。Jtest からレポートされた結果をコードの脆弱性として GitLab で参照できます。詳細については https://gitlab.com/parasoft/jtest-gitlab を参照してください。

単体テスト アシスタントの拡張

テスト作成プロセスの合理化と UTA オプション設定の利便に役立つ新機能の追加および既存機能の拡張が行われました。

UTA の新機能および拡張

新規カバレッジ オプション

UTA はテスト対象メソッドごとに、さまざまなコード ブランチをカバーする複数のテスト ケースを作成します。次のどちらかに最適化されたテスト スイートを作成できます。

  • 最大のコード カバレッジ - 必要最小限のテストで最多の実行パスをカバーするテストを作成します。
  • テスト スイートの保守性 - 主な実行パスをカバーする比較的少数のテストを作成し、テストの複雑さを軽減して保守性を増加させます。

詳細については「テスト スイートの作成」を参照してください。

アサーションの自動追加

UTA は [テスト スイートの作成] オプション (以前は [テスト ケースの作成] オプション。「その他の UTA の変更」を参照) を使用したテスト一括作成時にテストにアサーションを追加します。  テストを生成した後、UTA はテストを実行してテスト対象コードの動作をキャプチャし、テスト対象メソッドの戻り値 (あれば) およびテスト対象クラスの変化があったフィールドを検証するアサーションを追加します。「テスト スイートの作成」を参照してください。

UTA の拡張

  • [テスト スイートの追加] オプションが [テスト スイートの作成] という名前に変更されたほか、ダイアログのオプションが簡略化され、一般的に使用されるオプションだけが表示されるようになりました。その他のオプションはすべて設定ダイアログに移動されました。「その他の UTA の変更」を参照してください。
  • UTA は Lombok フレームワークを使用するプロジェクトをサポートするようになりました。
  • 例外をスローすることが期待されるコードを検証するテスト ケースは、期待値として例外のスローが設定されるようになりました。
  • @InjectMocks のサポートが拡張されました。
  • String 型の初期化が改善され、テスト対象メソッドの特定のブロックをカバーするのに必要な値が設定されるようになりました。
  • ファクトリ メソッドに渡される値の初期化が改善され、テスト対象メソッドの特定のブロックをカバーするのに必要な値が設定されるようになりました。

その他の UTA の変更

領域更新参照
テスト ケースの一括作成
  • [テスト ケースの作成] オプションは [テスト スイートの作成] オプションに名前が変更されました。
  • [テスト スイートの作成] オプションを使用して作成されたテストは、[トラックしてアサーションを作成] 機能を使用して自動的に実行され、アサーションを追加します。
パラメータライズド テストの作成
  • パラメータライズド テストを作成するには、UTA の設定でオプションを有効化し、設定を行う必要があります。
  • [テスト スイートの作成] (以前の [テスト ケースの追加]) オプションでは、パラメータライズド テストは作成されなくなりました。単体テスト アシスタント ビューの [パラメータライズ] オプションでだけパラメータライズド テストを作成できます。
  • パラメータライズド テストを設定するオプションは、一括作成ダイアログから UTA 設定に移動されました。
Spring テストの作成
  • Spring テストを作成するには、UTA の設定でオプションを有効化し、設定を行う必要があります。
  • [テスト スイートの作成] (以前の [テスト ケースの追加]) オプションでは、Spring テストは作成されなくなりました。  単体テスト アシスタント ビューの [Spring] オプションでだけ Spring テストを作成できます。
  • パラメータライズド テストを設定するオプションは、一括作成ダイアログから UTA 設定に移動されました。
設定

すばやく直感的に UTA を設定できるよう、設定オプションが整理されました。

テスト実行のタイムアウト[テストにタイムアウトを設定 (ミリ秒)] オプションは、一括作成ダイアログから設定ページに移動されました。
アサーション テンプレート

[サンプル アサーションの生成] オプションを有効にしても、[テスト スイートの作成] (以前は [テスト ケースの追加]) オプションを使用してテストを生成したときにアサーション テンプレートが追加されなくなりました。

Docker コンテナーからの Jtest の実行

Docker コンテナー イメージへの Jtest のデプロイがサポートされるようになりました。Docker コンテナーから Jtest を実行すると、コンテナー化された環境で Jtest の機能を利用し、チームや複数の開発サイクルでの一貫性を確保することができます。「Docker コンテナーへの Jtest のデプロイ」を参照してください。

Java のサポートの拡充

Java 16 および 17 で作成されたコードを解析できるようになりました。

IDE のサポート

次の IDE のサポートが追加されました。

  • IntelliJ 2021.1
  • Eclipse 2021-03 (4.19)
  • Eclipse 2021-06 (4.20)
  • Eclipse 2021-09 (4.21)1

1 この IDE は Java 16 を使用して実行されるため、テスト影響分析に影響を与える可能性があります。回避策については「既知の制限事項」を参照してください。

Cucumber のサポート

Jtest と Cucumber を統合できます。Cucumber は自然言語で記述された実行可能な仕様を読み取るツールです。Cucumber との統合によって、Jtest は Cucumber テストの結果をレポートし、カバレッジ データを収集できます。「Cucumber との統合」を参照してください。

セキュリティ コンプライアンス パックの拡張

Security Compliance Pack が拡張され、CWE および OWASP Top 10 の最新版のサポートが追加されました。下の「追加または更新されたテスト コンフィギュレーション」セクションを参照してください。

追加または更新されたテスト コンフィギュレーション

以下のテスト コンフィギュレーションが追加されました。

  • CWE 4.5
  • CWE Top 25 2021
  • CWE Top 25 + On the Cusp 2021
  • OWASP Top 10-20211

 1 このテスト コンフィギュレーションはプレビュー版であり、Parasoft Compliance Pack ソリューションには含まれません。コンプライアンス拡張を使用して DTP でルールの違反を参照することはできません。

削除されたテスト コンフィギュレーション

  • CWE 4.4
  • CWE Top 25 2020
  • CWE Top 25 + On the Cusp 2020

追加または更新された静的解析ルール

以下のルールが追加されました。

ルール IDヘッダー
SECURITY.WSC.IDP意図しないユーザーにファイルの書き込みまたは実行権限を設定しない

以下のルールが更新されました。

  • BD.SECURITY.TDRESP
  • SECURITY.WSC.MCNC
  • UC.UIMPORT

Parasoft エンド ユーザーライセンス契約書への同意

Jtest を利用するには、Parasoft エンド ユーザーライセンス契約書 (EULA) への同意が必要です。Parasoft EULA は Jtest のインストール ディレクトリおよび https://www.techmatrix.co.jp/quality/support/parasoft/license/ にあります。

EULA に同意するには、jtestcli.properties 設定ファイルで次の設定を有効にします。parasoft.eula.accepted=true

IDE に Parasoft Plugin をインストールする場合、インストール ウィザードによって EULA への同意が求められ、jtestcli.properties ファイルに自動的に EULA への同意設定が追加されます。

その他の拡張

  • Gradle 7.0 のサポートが追加されました。
  • Lombok 1.18.20 のサポートが追加されました。
  • HTTPS プロトコルを使用して Jtest のカバレッジ エージェントと接続できるようになりました。「HTTPS 経由での Coverage Agent への接続」を参照してください。

解決済みのバグおよび FR

バグ/FR ID説明
FA-8624BD.EXCEPT.NP の誤検出。ループ内で null 以外の値が代入されている変数に対して BD.EXCEPT.NP が違反を検出する。
FA-8650連結されたキャストを簡略化しようとした後、CFG が正しくない
JT-73624 データベース クロー時に例外
JT-73664SECURITY.WSC.MCNC に NPE
JT-73698解析実行時に Lombok 自動生成コードをスキップできるか
JT-73720UC.UIMPORT の誤検出
UTA-5250Lombok フレームワークのサポート
XT-39322 軽量 Parasoft Plugin でライセンスを要求したときにプロキシ設定が適用されない

  • No labels