Jtestを使用してJavaプロジェクトの解析およびテストを実行するための準備を行います。
Maven 起動確認
「mvn -version」コマンドを実行して、Mavenが実行可能かを確認します。
>mvn -version Apache Maven 3.6.0 (97c98ec64a1fdfee7767ce5ffb20918da4f719f3; 2018-10-25T03:41:47+09:00) Maven home: C:\apache-maven-3.6.0\bin\.. Java version: 1.8.0_201-1-ojdkbuild, vendor: Oracle Corporation, runtime: C:\jtest_hanson\openjdk-1.8.0.201\jre Default locale: ja_JP, platform encoding: MS932 OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"
Maven のバージョン情報が表示されない場合は、ご利用環境の設定を見直してください。
サンプルプロジェクトのビルド
demo プロジェクトがビルドできることを確認します。
demoプロジェクトディレクトリに移動し、「mvn clean compile」コマンドを実行してdemoプロジェクトをビルドします。
jtest\examples\demo>mvn clean compile [INFO] Scanning for projects... [INFO] [INFO] -------------------------< com.parasoft:demo >-------------------------- [INFO] Building Demo Project 1.0.0 [INFO] --------------------------------[ jar ]--------------------------------- [INFO] [INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ demo --- [INFO] [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ demo --- [WARNING] Using platform encoding (MS932 actually) to copy filtered resources, i.e. build is platform dependent! [INFO] Copying 18 resources [INFO] [INFO] --- maven-compiler-plugin:3.8.1:compile (default-compile) @ demo --- [INFO] Changes detected - recompiling the module! [WARNING] File encoding has not been set, using platform encoding MS932, i.e. build is platform dependent! [INFO] Compiling 66 source files to C:\jtest2022.1\examples\demo\target\classes [INFO] /C:/jtest2022.1/examples/demo/src/main/java/examples/flowanalysis/np/MyDictionary.java: 入力ファイルの操作のうち 、未チェックまたは安全ではないものがあります。 [INFO] /C:/jtest2022.1/examples/demo/src/main/java/examples/flowanalysis/np/MyDictionary.java: 詳細は、-Xlint:unchecked オプションを指定して再コンパイルしてください。 [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 6.304 s [INFO] Finished at: 2022-08-16T18:41:16+09:00 [INFO] ------------------------------------------------------------------------
- 「BUILD SUCCESS」 が出力されビルドが成功したことを確認します。
ビルドエラーが発生する場合は、ご利用環境の環境設定を見直してください。
テストコンフィギュレーション
テストコンフィギュレーションは、Jtest でどのようにコードを解析するかを定義したものです。
OWASP への準拠、メトリクスの計測、単体テストの実行などテストの目的に合わせて解析に利用するルールの設定や、解析の範囲、実行時のパラメーターを定義します。
「jtestcli -listconfigs」コマンドを実行すると、現在使用可能なテストコンフィギュレーションの一覧を表示できます。
>jtestcli -listconfigs Parasoft Jtest 2022.1.0 (10.6.0.202205101413) -- Copyright (C) 2022 Parasoft Corporation [Jtest] 匿名の使用状況データの送信は無効です。有効化するには usage.reporting.enabled を使用します [Jtest] ライセンス: Jtest 10.6 のローカル ライセンスを初期化しています [Jtest] ライセンス: Custom Edition をアクティブ化しています [Jtest] ライセンス: 機能をチェックしています ... ~ 中略 ~ [Jtest] 利用可能なテスト コンフィギュレーション: 85 [Jtest] builtin://Calculate Application Coverage [Jtest] builtin://CERT for Java [Jtest] builtin://Code Smells [Jtest] builtin://Critical Rules [Jtest] builtin://CWE 4.4 [Jtest] builtin://CWE Top 25 + On the Cusp 2020 [Jtest] builtin://CWE Top 25 2020 [Jtest] builtin://Demo Configuration [Jtest] builtin://DISA-ASD-STIG [Jtest] builtin://Find Duplicated Code [Jtest] builtin://Find Memory Problems