このリリースでは、特にデスクトップを使いやすくするさまざまな新機能の追加や既存機能の拡張が行われました。

デスクトップでのルールおよびテスト コンフィギュレーションのカスタマイズ

このリリースでは、デスクトップでの静的解析のカスタマイズが大幅に改善されました。コード解析ルールおよびテスト コンフィギュレーションを組織の開発ポリシーに合わせてローカルで変更し、保存するための Web インターフェイスが導入されました。詳細については「静的解析ルールのカスタマイズ」および「カスタム テスト コンフィギュレーションの作成」を参照してください。

また、ローカルまたは DTP に保存されたルール マッピングを Jtest に適用することもできます。

IDE からの変更ベースのテスト

変更の影響を受けない大規模なテストのセットを実行する代わりに、ローカルなコード変更の影響を受けるテストだけを識別して実行できます。これにより、テスト作業を最適化してテスト実行プロセスをスピード アップできます。詳細については「テスト影響分析」を参照してください。

IntelliJ IDEA での単体テスト カバレッジの取得

IntelliJ IDEA で実行された単体テストのカバレッジ情報を収集できるようになりました。詳細については「IntelliJ IDEA での単体テスト カバレッジの収集」を参照してください。

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

IntelliJ IDEA のサポート

単体テスト アシスタントの機能が IntelliJ IDEA で利用できるようになりました。

カバーされていないコードの検出

カバーされていないコードを UTA で検出できます。これは、カバーされていない行にテスト作成作業を集中させ、全体的なコード カバレッジを増加させるのに役立ちます。詳細については「カバーされていないコード」を参照してください。

テスト ケースの複製

既存のテスト メソッドを複製する機能が追加されました。これにより、テスト作成プロセスの生産性が向上します。[テストの複製] オプションを使用すると、既存のテスト メソッドをすばやく複製し、複製されたテスト メソッドを必要に応じて変更できます。詳細については「基本的な単体テストの作成」を参照してください。

IDE のサポート

  • IntelliJ 2018.1 のサポートが追加されました。
  • 古い IDE のサポートが削除されました。 – 現在サポートされる IDE の一覧については「要件」を参照してください。

その他の変更点

  • DTP の機能とワークフローを利用するには、DTP 5.4.0 が必要です。
  • DTP で「表示しない」とマークされた指摘事項は、抑制をシミュレートしなくなったため、実際の抑制に変換する必要があります。詳細については「DTP 5.4.0 Release Notes」を参照してください。
  • Maven、Gradle、Ant の instrument ゴール/タスクは非推奨になりました。カバレッジ情報を収集するには、agent ゴール/タスクを使用してください。
  • カバレッジ情報のマージ パラダイムが改善されたため、カバレッジ結果の値が増加する可能性があります。

テスト コンフィギュレーションの追加と更新

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

  • UL 2900
  • OWASP Top 10 2017

古い標準のテスト コンフィギュレーションが削除されました。

  • 古い OWASP Top 10 のテスト コンフィギュレーション (2007, 2010, 2013)
  • 古い JDK のコンフィギュレーション (JDK 1.5 および 7 の新機能)
  • CWE-SANS Top 25 2009
  • DISA-STIG for Java
  • Juliet 1.1 2011
  • SAMATE NIST 2010

グローバル カテゴリのルールが改善され、潜在的な問題をより効率的に検出できるようになりました。正確性の向上がパフォーマンスに影響を与える可能性があります。

新規コード解析ルール

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

ルール IDヘッダー
BD.API.ARGWRITEwrite() メソッドが 0 から 255 の範囲外の整数を出力すると信頼してはならない
BD.PB.MULBUF単一のバイト ストリームまたは文字ストリームに複数のバッファー付きラッパーを作成してはならない
BD.PB.VREADOBJreadObject() メソッドからオーバーライド可能なメソッドを呼び出さない
BD.SECURITY.FPEXC例外値がないか浮動小数点値の入力をチェックする
BD.SECURITY.LOG未検証のバイナリ データをログ記録メソッドに渡さない
BD.TRS.INSTLOCK共有の静的データを保護するためにインスタンス ロックを使用しない
CODSTA.ORG.ASSERT運用コード内でアサーションを使用しない
PB.IKICO比較演算に使用されているキーが不変であることを確認する
TRS.ISTARTThread クラスのインスタンスに対して直接 'start()' メソッドを呼び出さない
TRS.SGC'getClass' メソッドから返されたクラス オブジェクトを同期しない
TRS.SOBC背後のコレクションにアクセス可能な場合、コレクション ビューを同期しない

更新されたコード解析ルール

  • BD.PB.VOVR
  • BD.TRS.ORDER

  • OPT.USCL
  • FORMAT.U2B

  • GLOBAL.ASI

  • GLOBAL.DPPM

  • GLOBAL.UPAC

  • SECURITY.WSC.PPKG

  • SECURITY.WSC.INIVF

  • PB.NUM.UBD

  • PB.CUB.IMM

  • UC.AAI

以下のルールは DTP による処理方法が変わったため、以前の抑制設定が有効でない可能性があります。

  • INTER.CCL
  • CODSTA.BP.EXIT

解決済みのバグおよび FR

バグ/FR ID説明
FA-5994BD.EXCEPT.NP で null を許容しないメソッドとしてコンストラクターを定義できない
FA-6140一部のルールで flowanalysis.output.performance.info をレポートする際、カウントされないパスがある
JT-47125PB.CLOSE が try-with-resorces に対して違反を誤検出する
JT-48547PB.CUB.IMM に違反の誤検出の可能性がある
JT-48635SECURITY.IBA.VPPD-2 が正しく違反をレポートしない

JT-69723

ラムダに関する違反の誤検出
JT-69873UC.AAI - Java 8 と互換性がない
JT-699399.5 と10.3.1+ で動作が異なる
UTA-1028モック化可能なメソッドの推奨事項が表示されない
UTA-2296UTA で作成された単体テストの1 部が顧客のプロジェクトで失敗する
XT-35411CVS レポート内の空白が 2 行目から開始する

 




  • No labels