Jtest 2023.1 では以下の変更点があります。
IDEのサポート
次の IDE のサポートが追加されました。
IntelliJ IDEA 20212022.1
IntelliJ IDEA 20212022.2
IntelliJ IDEA 20212022.3Eclipse 2021-03 (4.19)
IntelliJ IDEA 2023.1
Eclipse 20212022-06 (4.2024)
Eclipse 20212022-09 (4.21)1Eclipse 2021-12(4.22)25)
Eclipse 2022-03(4.23)
次のIDEのサポートが削除されました。
IntelliJ IDEA 2017.x ~ 2019.x
Eclipse 4.4
Eclipse 4.5
Eclipse 4.6
Eclipse 4.7
1このIDEはJava16で実行されます。そのため影響を受ける単体テストビューが正しく表示されない可能性があります。
IDEの起動に使用されるJVMに--illegal-access =permitVM引数を渡すことがで回避することができます。
Java のサポート
Java 16 および 17 で作成されたコードを解析できるようになりました。
Lombok のサポート
...
12 (4.26)
Eclipse 2023-03 (4.27)
Visual Studio Codeのサポートを開始しました。
Visual Studio Code 1.53 以上
利用には、コマンドラインでの解析が可能なライセンスが必要です。
Lombok のサポート
Lombok 1.18.24 と 1.18.26 のサポートを追加しました。
Jtest と Lombok ライブラリのプラグイン方法の詳細は、ユーザーマニュアルのLombokとの統合を参照してください。
ビルドツール のサポート
並列ビルドのサポート
テスト影響分析のサポートを追加しました。
MavenとGradleの並列ビルドのテストカバレッジを収集するようになりました。
詳細は、Mavenを使用したテストと分析およびGradleを使用したテストと分析を参照してください。
Gradleのサポート
Gradle7.0、7.3、7.4のサポートを追加しました。
...
Gradle のサポート
Gradle 7.6 のサポートを追加しました。
Maven のサポート
Maven 3.9.x のサポートを追加しました。
Android のサポート
AndroidアプリケーションのJavaソースコードに対して、静的解析が行えるようになりました。
Google Java Style Guideに基づいたAndroid専用のテストコンフィギュレーション「Android Guidelines」に違反するコードを検出します。
Visual Studio Codeのサポート
静的解析の実施および結果の確認、カバレッジ結果の表示の確認をVisual Studio Code上で行えるようになりました。
セキュリティコンプライアンスのテスト コンフィギュレーションの変更
いくつかのセキュリティコンプライアンスのテスト コンフィギュレーションが追加及び変更、削除されました。
※セキュリティコンプライアンス関連機能の使用には専用のライセンス(有償)が必要です。
以下のビルトインテストコンフィギュレーションが追加されました。
CERT for Java Guidelines
CWE 4.610
CWE Top 25 20212022
CWE Top 25 + On the Cusp 20212022
HIPAA
OWASP ASVS 4.0.3
OWASP Top 10-2021
PCI-DSS 4.0
VVSG 2.0
以下のビルトインテストコンフィギュレーションが更新されました。
CERT DISA-ASD-STIGfor Java
UL 2900
以下のビルトインテストコンフィギュレーションが削除されました。
CWE 4.4
CWE 4.5
CWE Top 25 2020
CWE Top 25 + On the Cusp 2020
単体テストアシスタント機能の拡張
JUnit 4 および JUnit5 のテスト実行のデフォルトの最適化
ビルトインのテストコンフィギュレーションがJUnit4およびJUnit5に合わせて最適化され、テスト結果やカバレッジ計測に必要な時間が短縮されました。
テスト作成プロセスの最適化
単一のテスト ケースのカバレッジが増加するようテスト作成プロセスが最適化されました。
UTA はデータフロー解析を利用して、テストを生成するのに必要な最小のテスト ケース事前条件の数を判断できるようになりました。
これにより、テスト ケースのサイズと複雑さが減少し、効率が向上します。
新規カバレッジ オプション
UTA はテスト対象メソッドごとに、さまざまなコード ブランチをカバーする複数のテスト ケースを作成します。次のどちらかに最適化されたテスト スイートを作成できます。
最大のコード カバレッジ - 必要最小限のテストで最多の実行パスをカバーするテストを作成します。
テスト スイートの保守性 - 主な実行パスをカバーする比較的少数のテストを作成し、テストの複雑さを軽減して保守性を増加させます。
UTAその他の拡張
Lombok フレームワークを使用するプロジェクトをサポートするようになりました。
@InjectMocks のサポートが拡張されました。
アサーションの自動追加
UTA は [テスト スイートの作成] オプションを使用したテスト一括作成時にテストにアサーションを追加します。
テストを生成した後、UTA はテストを実行してテスト対象コードの動作をキャプチャし、テスト対象メソッドの戻り値 (あれば) およびテスト対象クラスの変化があったフィールドを検証するアサーションを追加します。
詳細についてはこちらを参照してください。Mockito 3 および 4 のサポートが追加されました。
ルールの更新
ルールIDの変更
BD.PB.ARRAYINP のルールIDが、BD.SECURITY.ARRAY に変更されました。
併せてカテゴリが「セキュリティ」に変更されました。
ルールの更新
幾つかの静的解析ルールが更新されました。
更新されたルールIDの一覧は、以下のユーザーガイドのリリースノートを参照してください。
DockerコンテナーへのJtestのデプロイをサポート
DockerコンテナーへのJtestのデプロイがサポートされました。すぐに利用できるJtestの公式コンテナーイメージをDocker Hub上に公開しました。
コンテナーイメージのダウンロードはこちらを参照してください。
※ Dockerコンテナー上でJtestを利用する場合はフローティングライセンスが必要です。
Azure DevOps との連携
Azure DevOpsに拡張機能としてdotTEST Extension for Azure DevOpsが追加され、JtestとAzurePipelinesの連携が可能になりました。
Jtestの解析を実行することで、Azure DevOps固有のSARIFフォーマットでのレポートを生成し、Azure Pipelines上で解析結果を確認できます。
詳細についてはこちらを参照してください。
GitLab との連携
GitLab ワークフローでJtest の解析を実行して SAST フォーマットで解析レポートを生成が可能になりました。
Jtest からレポートされた結果をコードの脆弱性として GitLab で参照できます。
詳細については こちらを参照してください。
OpenID Connect のサポート
OpenID Connectを介してParasoft DTPへのユーザー認証が可能になりました。
設定方法の詳細はこちらをご参照ください。
その他の拡張
IPv6がサポートされるようになりました。
フロー分析ルールを含むテストコンフィギュレーションを実行するときのJtestのパフォーマンスが向上しました。
log4jの脆弱性に対処しました。Jtest2022.1ではlog4jバージョン2.17.2が使用されています。
フロー解析エンジンの改善により、バージョン2022.1と以前のバージョンで報告された違反に違いが生じる可能性があります。6
SonarQubeとの連携を強化
「Parasoft Findings Plugin for SonarQube」プラグインをSonarQubeに設定することで、SonarQube上でJtestの静的解析結果の確認が可能になりました。
単体テストアシスタント機能の拡張
新規オプションの追加
テストケースの一括作成時に、カバレッジを増加させるテストケースを作成する機能が追加されました。
※ テストケースの一括作成には、「Unit Test Bulk Creation」オプション(別売)が必要です。
UTAその他の拡張
java.lang.Number のサブクラス型の変数初期化のサポートが改善されました。
[影響を受ける単体テスト] ビューが拡張。新規テストを示すアイコンが追加され、カバレッジ データが存在するかどうかにかかわらず、ローカルに追加されたすべての新規テストがビューに表示されます。
Mockito 4.11 のサポートが追加されました。
カバレッジ計測機能の拡張
アプリケーションのバイナリファイルのカバレッジ計測によりソースコードが無い状態でもカバレッジの計測が可能になりました。
ローカルでのコードの変更の影響を受けるテストケースを自動的に検出することが可能なテスト影響分析機能も追加されました。
ルールの更新
新規ルールの追加
フロー解析、セキュリティ関連のルールが追加されました。
カテゴリ | ルールID | ルールの説明 | |
---|---|---|---|
1 | セキュリティ | SECURITY.ESD.WS | 'ws' ではなく 'wss' (WebSocket Secure) によるセキュアな通信を使用する |
2 | フロー解析 | BD.PB.INTWRAP | 整数の算術演算によるラップアラウンドを避ける |
3 | フロー解析 | BD.PB.INTVC | 整数型の変換による値の変化を避ける |
4 | フロー解析 | BD.PB.INTDL | 整数型の変換によるデータの損失を避ける |
5 | フロー解析 | BD.PB.UGHC | ハッシュ コードの等価性を根拠としてオブジェクトの等価を判断しない |
※ カテゴリがセキュリティのルールはSecurity Compliance Pack 、またはLegacyライセンスを利用中の場合のみ利用可能です。
※ カテゴリがフロー解析のルールはEngineライセンスを利用中の場合のみ利用可能です。
その他の拡張
フロー解析エンジンの全般的な改善により、以前のバージョンでレポートされた違反と差異が生じる可能性があります。
Change Based Testing ライセンス機能は Test Impact Analysis に名前が変更されました。
ダーク テーマで実行したときのルック & フィールが改善されました。