このリリースには以下の拡張が含まれます。
リリース日:
サポート対象 LLM プロバイダーの追加
Jtest での LLM 統合のサポートが拡張され、Open AI および Azure OpenAI だけでなく、OpenAI REST API と互換性があるチャット コンプリーション エンドポイントを持つ任意の LLM プロバイダーもサポートされるようになりました。これにより、ユーザーはクラウドベースのモデルではなくローカルにデプロイされたモデルと統合することで、プライバシーを高めることができます。
AI 統合の拡張
- AI が推奨する修正を直接コードに適用できるようになりました。差分エディターを使用して変更を確認し、修正をすべて適用するか、一部分を選択して適用できます。詳細については「AI を使用したテストの改善」、「修正の提案の生成」および「推奨事項への対処」を参照してください。
- 単体テスト アシスタント (UTA) によって生成されたテストを AI によって改善できる新機能が追加されました。UTA は、失敗していても一定のカバレッジの増加に寄与する場合、少数の失敗するテストを生成する可能性があります。新しい機能を使用すると、UTA は LLM を使用して失敗するテストを更新し、テストが成功するようにします。詳細については「失敗する生成済みテストを AI で修正」を参照してください。
- 失敗する単体テストのアサーションおよび例外の推奨事項に AI による即時修正が追加されるようになりました。[AI で修正] アクション リンクは、テストを修正する方法の提案を示すとともに、テストに直接修正を適用することを可能にします。
- Visual Studio Code プラグインが AI 生成の修正を使用した静的解析違反の解決をサポートするようになりました。「修正の提案の生成」を参照してください。
単体テスト作成の拡張
- 単体テスト作成機能は、テスト生成時により幅広いクラスのセットを解析し、より適切にテストの初期化と構築を行うことができるようになりました。
- 静的メソッドおよびコンストラクターのモックが有効化されている場合、単体テスト作成時にデフォルトですべての必要な静的モックが作成されるようになりました。例外を設定することもできます。(以前は、ユーザーが手動で静的モック作成の対象を指定する必要がありました)。モックの設定は、UTA の設定で細かく調整できます。詳細については「モック オプションの設定」を参照してください。
- テストの生成で特定の値を必要としない数値のデフォルト値が 0 から 1 に変更されました。
単体テストの推奨事項の拡張
- 複数のテストが同じ例外または類似の理由で失敗する場合に潜在的なセットアップの問題を検出する新しい推奨事項が追加されました。この推奨事項は、テストのセットを実行すると繰り返し失敗がレポートされる場合に、根本的な原因を究明するのに役立ちます。「潜在的なセットアップの問題」を参照してください。
- 静的モックの推奨事項で、特定のパターンをモックから除外できる新しいアクションが利用可能になりました。詳細については、「静的メソッドのモック」を参照してください。
ライブ静的解析およびライブ単体テスト
ライブ静的解析およびライブ単体テストによってコードの品質および変更を継続的にモニターできます。
- ライブ静的解析機能を利用すると、コードに変更を加えながら、バックグラウンドで自動的にコードを解析できます。作業中のコードが開発ポリシーに準拠していない場合、Jtest が通知します。詳細については、「ライブ静的解析」を参照してください。
- ライブ単体テスト機能を利用すると、コードに変更を加えながら、影響を受けるテストを継続的に検出し、実行できます。変更に関連するテストの失敗が警告されます。詳細については「ライブ単体テスト」を参照してください。
コード カバレッジの拡張
- アプリケーション カバレッジを処理する際のメモリの効率性が改善されました。
- デフォルトでは、IDE のテスト クラスに関してカバレッジは収集されません (この動作は設定で変更できます。詳細については、「カバレッジ スコープにテストを含める」を参照してください)。
ファイル内抑制の拡張
- CLI および IDE の両方で使用する抑制ファイルの場所を簡単にカスタマイズする機能が追加されました。
- 抑制の定義の拡張:
- ファイル属性にワイルドカードを含むファイル パスを指定できるようになりました。
- rule-id 属性にルール カテゴリおよび任意で重要度を表す接尾辞を指定できるようになりました。
詳細については、「抑制ファイルでの抑制の定義」を参照してください。
セキュリティ コンプライアンス パックの拡張
- CWE version 4.15 がサポートされ、いくつかのコンフィギュレーションが更新されました。下の「追加または更新されたテスト コンフィギュレーション」セクションを参照してください。
- CERT for Java および CERT for Java Guidelines テスト コンフィギュレーションが拡張され、新規ルールが追加されました。詳細については、下の「追加または更新されたテスト コンフィギュレーション」および「追加または更新された静的解析ルール」セクションを参照してください。
追加または更新されたテスト コンフィギュレーション
Security Compliance Pack が拡張され、以下のテスト コンフィギュレーションのサポートが追加されました。
- CWE 4.15
以下のテスト コンフィギュレーションが更新されました。
- CERT for Java
- CERT for Java Guidelines
- CWE Top 25 2023
- CWE Top 25 + On the Cusp 2023
- Recommended Rules
- UL 2900
以下のテスト コンフィギュレーションが削除されました。
- CWE 4.14
追加または更新された静的解析ルール
以下のルールが追加されました。
| ルール ID | ヘッダー |
|---|---|
| CODSTA.EPC.DNURT | RAW 型を使用しない |
| CODSTA.NTX | 非推奨のパーサー API の使用が削除されました。 |
| CODSTA.ORG.EASE | アサーションで使用される式に副作用があってはならない |
| PB.RE.COLNULL | null ではなく空の配列およびコレクションを返す |
| PB.USC.NASSIGIO | 指定されたファイル I/O メソッドの戻り値が使用されていることを確認する |
| PB.USC.NSIF | if、for、while 条件の直後にセミコロンを置かない |
| SECURITY.WSC.ASNF | 引数として String が渡される場合、暗黙的なファイルの作成を避ける |
| SECURITY.WSC.CFAP | 適切なアクセス権限を付けてファイルを作成する |
| TRS.SGAS | getter および setter メソッドの両方で synchronized キーワードを使用するか、どちらにも使用しない |
以下のルールが更新されました。
ルール ID | 更新 |
|---|---|
| CODSTA.NTX | 非推奨のパーサー API の使用が削除されました。 |
| EJB.CPIM | 非推奨のパーサー API の使用が削除されました。 |
| EXCEPT.NFE | 非推奨のパーサー API の使用が削除されました。 |
| FORMAT.IND | 非推奨のパーサー API の使用が削除されました。 |
| GLOBAL.AUT | 非推奨のパーサー API の使用が削除されました。 |
| INTER.SEO | Java 11 以降のサポートが改善されました。 |
| PB.API.CMMT | 検証済みメソッドのリストが拡張されました。 |
| PB.USC.AES | 精度の向上 |
| SECURITY.WSC.DSER | 抽象クラスの検証を可能にするパラメーターが追加されました。 |
| SECURITY.WSC.SER | 抽象クラスの検証を可能にするパラメーターが追加されました。 |
| PROPS.PLAIN | 精度の向上 |
| UC.ARTD | 非推奨のパーサー API の使用が削除されました。 |
| UC.PM | Serializable インターフェイスの実装にかかわらず、readObject および writeObject メソッドを無視するためのパラメーターが追加されました。 |
IDE のサポート
以下の IDE がサポートされています。
- Eclipse 4.32 (2024-06)
- Eclipse 4.33 (2024-09)
- IntelliJ 2024.2
その他のアップデート
- Lombok 1.18.34 のサポートが追加されました。
- Git 2.46 までのバージョンがサポートされるようになりました。
- Java 21 を使用した Jtest の実行のサポートが追加されました。
- [指摘事項] ビューに [DTP 詳細] プロファイルが追加され、DTP から [指摘事項] ビューにインポートされた違反に関して、追加のメタデータ (AI 生成のメタデータを含む) を表示できるようになりました。
- Jtest Maven および Gradle プラグインに includeTestSources コマンド ライン オプションが追加されました。このオプションを使用すると、テスト ソース コードを解析に含めることができます。詳細については、「jtest.includeTestSources オプションによるスコープの変更」を参照してください。Jtest Maven および Gradle プラグインで excludeTestSources プラグイン オプションが削除されました。
- 共有プロパティ ファイルで単体テスト アシスタント設定がサポートされるようになりました。「設定のエクスポートおよびインポート」を参照してください。
- コマンド ラインから Jtest のシステム プロキシ設定を指定できるようになりました。「プロキシ経由で Jtest を操作する方法」を参照してください。
未サポート ルール (メトリクスおよび重複コード ルール) に関する AI 推奨事項が無効化されました。
解決済みのバグおよび FR
バグ/FR ID | 説明 |
|---|---|
| FA-9934 | "foo() throw E" 条件を含むレシピが生成エンジンによってより適切に解決されるよう改善 |
| JT-76414 | UL 2900 ビルトイン ルールセットの明確化 - SECURITY.WSC.SER |
| JT-76534 | 複数の他の CWE 違反につながる CWE SER 違反の修正 |
| JT-76607 | 2024.1 と 2023.1 で解析スコープが異なる |
| JT-76619 | 静的解析でコンパイル エラー |
| JT-76843 | SECURITY.WSC.DSER、SECURITY.WSC.SER ルールが抽象クラスおよびインターフェイスに対して違反を誤検出する |
| UTA-7944 | java.lang.Throwable: IntelliJ で書き込みアクション内で AWT イベントが許可されない |