ビルド・テスト・WAR の確認
ビルドとテスト
Maven
mvn clean test
mvn clean package
Gradle
./gradlew clean test
./gradlew clean build
BUILD SUCCESS(Gradle はBUILD SUCCESSFUL)だけでなく、テストの件数・失敗・スキップを更新前(作業前の準備で記録したもの)と比べる- 成果物(
target\またはbuild\libs\の WAR・JAR)ができ、更新日時と大きさが妥当である
WAR に入った JAR を確かめる
jar tf target\<成果物>.war | Out-File -Encoding utf8 war-contents.txt
Select-String -Path war-contents.txt -Pattern "<artifactId>" -SimpleMatch
Gradle では build\libs\<成果物>.war です。jar が見つからないと出た場合は、JDK の bin フォルダーにパスが通っているかを確かめます。
- 更新先のバージョンの JAR だけが入っている
- 古いバージョンの JAR が残っていない
- 同じ成果物の別のバージョンが入っていない
- 座標が変わった場合、古い座標の JAR が入っていない
- サーバーが提供する API(
provided・compileOnly)が入っていない
テストの観点
ライブラリの更新だけを理由に、すべてのテストを新しく書く必要はありません。既存のテストで確かめられるものは再実行します。バージョンページのカードの「確かめ方」に、その変更に固有の観点があります。
| 観点 | 既存のテストがある場合 | 無い場合 |
|---|---|---|
| ライブラリを使う主要な機能 | 再実行する | 業務上重要なものについて代表的な正常系を足す |
| 書き換えた箇所(消えた API・名前空間・設定) | 再実行する | 書き換えた処理の正常系・異常系を足す |
| 例外の扱い | エラー応答のテストを再実行する | HTTP ステータスなど、外から見える結果と、機密情報が出ないことを確かめるテストを足す |
| 解消するはずの脆弱性に関わる機能 | 異常系のテストを再実行する | その機能を使っている場合に、代表的な攻撃入力が拒否されることを確かめる |
| 境界値 | 再実行する | 上限ちょうど・空・省略を確かめる |
正常系:更新前と同じ入力で、同じ業務結果になる。異常系:不正な入力・上限超過・存在しない対象が、制御されたエラーになる。
Eclipse での最終確認
- 「Problems」ビューで Java のエラーが0件、依存関係のエラーが無い
- 更新前より意図しない警告が増えていない(増えた警告は理由を記録する)
- 「Maven Dependencies」(Gradle は「Project and External Dependencies」)で、対象が更新先のバージョンにそろっている