Ant プロジェクト 準備
Jtestを使用してJavaプロジェクトの解析およびテストを実行するための準備を行います。
Ant 起動確認
「ant -version」コマンドを実行して、Antが実行可能かを確認します。
>ant -version
Apache Ant(TM) version 1.9.14 compiled on March 12 2019
Ant のバージョン情報が表示されない場合は、ご利用環境の環境設定を見直してください。
サンプルプロジェクトのビルド
demo プロジェクトがビルドできることを確認します。
demoプロジェクトディレクトリに移動し、「ant compile」コマンドを実行してdemoプロジェクトをビルドします。
demo>ant compile Buildfile: C:\jtest\examples\demo\build.xml compile: [mkdir] Created dir: C:\jtest\examples\demo\ant-target [javac] C:\jtest\exmaples\demo\build.xml:23: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds [javac] Compiling 65 source files to C:\jtest\examples\demo\ant-target BUILD SUCCESSFUL Total time: 2 seconds
「BUILD SUCCESSFUL」 が出力されビルドが成功したことを確認します。
ビルドエラーが発生する場合は、ご利用環境の環境設定を見直してください。
Jtest 解析用ビルドスクリプト
Jtestを適切に実行するためにプロジェクトのbuild.xmlを変更することも可能ですが、その代わりにJtest用のビルドファイルを作成することができます。
これにより、プロジェクトの成果物であるbuild.xmlに影響を与えることなくJtestの解析が実行可能になります。
Jtest用のビルドファイルのサンプルとして、demoプロジェクトディレクトリに jtest.xml があります。このチュートリアルでは jtest.xmlを利用します。
demoプロジェクトディレクトリに存在するjtest.xmlでは次の5個のビルドターゲットを定義しています。
jtest-analysis
Jtestを使用して静的解析(コーディング規約チェック、フロー解析、メトリクスの計測)を実行します。実行にはビルトインテストコンフィギュレーション「Recommended Rules」が使用されます。
実行の結果はプロジェクトディレクトリのparasoft/jtest/reportディレクトリに出力されます。
testディレクトリ以下に保存されているソースコードは、解析の対象外となります。jtest-sae
Jtestを使用して静的解析(コーディング規約チェック、フロー解析、メトリクスの計測)を実行します。
実行にはビルトインテストコンフィギュレーション「Recommended Rules」が使用されます。実行の結果はプロジェクトディレクトリ直下のreport-saeディレクトリに出力されます。
testディレクトリ以下に保存されているソースコードは、静的解析およびメトリクスの計測の対象外となります。jtest-utc
単体テストおよびカバレッジの計測を実行します。実行にはJtestのビルトインのテストコンフィギュレーション「Unit Tests」が使用されます。
実行の結果はreport-utcディレクトリに出力されます。testディレクトリ以下に保存されているソースコードは、単体テストの対象外となります。clean
プロジェクトをクリーンします。プロジェクトのbuild.xmlのcleanターゲットを実行します。build
プロジェクトをビルドします。プロジェクトのbuild.xmlのbuildターゲットを実行します。
テストコンフィギュレーション
テストコンフィギュレーションは、Jtest でどのようにコードを解析するかを定義したものです。
OWASP への準拠、メトリクスの計測、単体テストの実行などテストの目的に合わせて解析に利用するルールの設定や、解析の範囲、実行時のパラメーターを定義します。
「jtestcli -listconfigs」コマンドを実行すると、現在使用可能なテストコンフィギュレーションの一覧を表示できます。
>jtestcli -listconfigs
Parasoft Jtest 2023.1.2 (10.6.2.202307131601) -- Copyright (C) 2023 Parasoft Corporation
[Jtest] 使用状況データの送信は無効です。有効化するには usage.reporting.enabled を使用します
[Jtest] ライセンス: マシン ID WIN32-15cc8c3 (Default)
[Jtest] 利用可能なテスト コンフィギュレーション: 38
[Jtest] builtin://Android Guidelines
[Jtest] builtin://Calculate Application Coverage
[Jtest] builtin://CERT for Java
[Jtest] builtin://CERT for Java Guidelines
[Jtest] builtin://Code Smells
[Jtest] builtin://Critical Rules
[Jtest] builtin://CWE 4.10