(この記事は、開発元Parasoft社 Blog 「Today’s Jtest 10.3.4 Release」2018年2月16日の翻訳記事です。)
本日、Parasoft Jtest 10.3.4のリリースを発表しました。今回のリリースでは多くの改善を行いましたが、特にユニットテスト関連にフォーカスし、以下に関する改善を行いました。
- ユニットテストの作成
- ユニットテストのスケール拡大
- ユーザビリティ
静的解析のほうでは、最新のOWASPガイドライン(2017)のサポートに加えて、通常のバグ修正および改善を行いました。また、パフォーマンスの向上と、プラットフォームのサポートを拡大しました。これらの機能拡張と、機能を活用する方法の詳細については、この先をお読みください。
ユニットテストの作成
テストピラミッドを構築するには、堅固なユニットテストの基盤が必要ですが、よく言われるように、ユニットテストの作成は面倒で時間がかかります。以前のバージョンのJtestと同様に、ユニットテストアシスタントはユニットテストの作成を容易にするという目的を追求し続けています。バージョン10.3.4では、この目的に役立つ2つの新機能が追加されました。
1. ファクトリメソッドのサポート
オブジェクトを初期化するためにファクトリメソッドを使用したいけれど、コードの中から目当てのメソッドを見つけるのに苦労するという経験はないでしょうか?あるいは、ファクトリオブジェクトをインスタンス化するための正しい構文を思い出せなかったことはないでしょうか? Jtest 10.3.4では、ソースコード内にあるファクトリメソッドを使用するようにユニットテストアシスタントを設定することで、テスト作成の効率・生産性をさらに向上させることができるようになりました。
ファクトリメソッドにタグを付けたりタグを解除するだけで、ユニットテストアシスタントがファクトリメソッドを自動検出するので、ユーザーはユニットテスト内でそれらのメソッドを使用できます。ファクトリを使用したインスタンス化はユニットテストアシスタントビューで行います。選択した型に対してファクトリメソッドが利用可能な場合、アクションが表示されます。特定の型に対して複数のファクトリメソッドが利用可能な場合、ユニットテストアシスタントは、初期化される変数の型に最も近い型を返すファクトリメソッドを優先します。ユニットテストアシスタントは、同じパッケージ内または最も近い親パッケージ内のファクトリメソッドも優先します。
2. 複数のSpringテストの作成をサポート
1ファイルずつSpringユニットテストを作成するのにうんざりしていませんか? Jtest 10.3.4では、複数のSpringファイルに対してユニットテストを作成する機能を搭載し、作成プロセスの効率化を図りました。ユニットテストアシスタントビューに、新しく「Spring テスト ケースの追加」というアクションアイコンが表示されます。あるいは、エディターのパッケージエクスプローラービューで対象を右クリックし、コンテキストメニューからユニットテストを作成することもできます。
ユニットテストのスケール拡大
ユニットテストの基盤づくりに取り組み始めると、すべてのコードをカバーするようにテストのスケールを拡大することが必要になります。以前のバージョンでは、Springユニットテストのスケールを拡大しようとすると、多少の苦労がありましたが、現バージョンでは、複数のSpringテスト作成がサポートされたことで、簡単にSpringテストスイートを構築できるようになりました。Springユニットテストの一括作成機能によって、Springクラスのパッケージやプロジェクトを選択して、その中に含まれるクラスに対してユニットテストを生成できるため、テストプラクティスを容易に拡大することが可能です。ユニットテストアシスタントを利用すると、簡単にSpringテストを始められるため、テストされるビジネスロジックを追加するほうにより多くの時間を増やすことができます。
ユーザビリティ
Jtest 10.3.3では、ユニットテストアシスタントビューは、すべてのユニットテストデータとアクションを参照するための単一のビューでした。そのために、さまざまなデータを同時に表示するには限界がありました。データとアクションの視認性を向上させるために、ユニットテストアシスタントビューは複数のビューに分割されました。Jtest 10.3.4では以下のビューが利用可能になりました。これらのビューを使用して、テストの作成と拡張、テスト結果のレビューが可能です。
- ユニットテストアシスタントビュー
このダイナミックなインターフェイスでは、ユニットテストを作成、実行、監視することができます。エディターで選択したクラスまたはメソッドに対して作成されたテストを検出し、この特定のクラスまたはメソッドで使用可能なアクションを表示します。
- 推奨事項ビュー
このビューには、テスト実行後に、テスト改善に関する推奨事項が表示されます。
- 変数ビュー
このビューには、メソッド呼び出しに関連する変数が表示されます。このビューを使用すると、メソッド呼び出し前後のオブジェクトの状態を比較できます。
- ファクトリメソッドビュー
このビューは、ファクトリメソッドとしてタグ付けされたメソッドのコードをスキャンし、ツリー構造で表示するインターフェイスを提供します。
これらのビューを簡単に準備するために、バージョン10.3.4では、上記のビューをすべて開くようEclipseのJtestパースペクティブが更新されました。ビューは論理的な順序で配置されているため、必要な情報をすぐに見つけることができます。
静的解析の改善
Jtest 10.3.4では、ユニットテストに重点が置かれましたが、静的解析についても改善を怠ったわけではありません。たとえば、次のカテゴリのコード解析ルールでバグ修正が行われました。
- フロー解析 [BD]
- コーディング規約 [CODSTA]
- 重複コード検出 [CDD]
- 例外 [EXCEPT]
- 書式 [FORMAT]
Jtest 10.3.4では、OWASP標準のサポートを拡張し、 新しいOWASP Top 10 2017対応のビルトインテストコンフィギュレーションを追加しました。これには、OWSAPのトップ10標準で特定されている問題を検出するルールが含まれており、アプリケーションのセキュリティを強化するのに役立ちます。
まだある改善点
Jtestのパフォーマンス向上を求めるユーザーのために、パフォーマンス改善のための新しいUIオプションを追加しました。IDEの起動時にJtestを起動して、初回の解析実行を高速化できます。
Jtest 10.3.4では、新たに次のプラットフォーム、IDE、およびビルドシステムがサポートされ、引き続きサポート範囲が拡大しています。
- Windows Server 2016
- IntelliJ 2017.2 および 2017.3
- Gradle 4.3
これらのすべての改善の詳細はリリースノートで確認できます。Jtestについて詳細を知りたい方は、ぜひ弊社までお問い合わせください。幸せなJavaテストを!
Parasoft Jtestについて
Java対応静的解析・単体テストツール Parasoft Jtest
Jtestは、テスト工数の大幅削減とセキュアで高品質なJavaシステムの開発を強力にサポートするJava対応テストツールです。1,000個以上のコーディング規約をもとにソースコードを静的に解析し、プログラムの問題点や処理フローに潜む検出困難なエラーを検出します。さらに、JUnitを用いた単体テストについて、作成、実行、テストカバレッジ分析、テスト資産の管理といった単体テストに係る作業をサポートし、単体テストの効率化を促進します。