Java Runtime Checks
ゴール
このスキルの目的は、**「どこを動作確認すべきかを見落とさない」**こと。
コードの差分を見ながら、変更内容を
- •どんな操作
- •どんな入力
- •どんな状態/前提
で確認すべきかを、チェックリスト形式で整理する。
このスキルは、
java-code-reviewなどコード品質のレビューとセットで使う想定。
いつ使うか
次のようなケースで、このスキルを適用する。
- •JavaのPRレビュー/コードレビューをするとき
- •「レビューコメントとして、動作確認観点をPRに残したい」とき
- •「どのパターンをテストすべきか」を整理してから手動/自動テストを行いたいとき
基本ルール
ルール: 次の種類の変更を見つけたら、必ず1つ以上の動作確認項目を書く。
- •公開API/エンドポイントの変更
- •
publicメソッド - •Controller/RESTエンドポイント
- •DTOやリクエスト/レスポンスのフィールド追加・削除・型変更
- •
- •条件分岐の追加・変更
- •
if / else if / else - •
switch - •三項演算子
- •
- •例外処理・エラーハンドリング
- •
try-catch,throws - •例外クラスの変更
- •エラーメッセージ/エラーレスポンスの変更
- •
- •DB/外部API/メッセージキューなどI/Oの変更
- •SQLやクエリメソッドの追加・変更
- •RESTクライアント、gRPCクライアントなどの呼び出し追加・変更
- •メッセージ送信/購読の追加・変更
- •バッチ/スケジューラ/非同期処理
- •スケジュール条件(cron等)の変更
- •非同期実行(スレッド、Executor、キュー)の追加・変更
- •重要な定数/設定値の変更
- •タイムアウト
- •リトライ回数
- •上限値(件数・サイズ・金額など)
これらの変更を見つけたら、「どのパターンをどう操作して確認するか」を必ず1つ以上列挙する。
動作確認項目の書き方
PRコメントやレビュー結果に、次のような形で「動作確認観点」セクションを作る。
markdown
### 動作確認観点 - [ ] 正常系: 〇〇(どの操作・どのAPIをどう呼ぶか) - [ ] 異常系: 〇〇(バリデーションエラー・タイムアウトなど) - [ ] 境界値: 〇〇(0件 / 最大件数 / 文字数上限 など) - [ ] 権限: 〇〇(権限あり / なし の両パターンがある場合) - [ ] エラー表示・ログ: 〇〇(ユーザー表示とログ出力の両方)
具体例1: 条件分岐の追加
変更内容:
- •売上レポートのAPIで、「期間指定なしの場合は直近30日を対象にする」分岐を追加。
動作確認観点の例:
markdown
### 動作確認観点 - [ ] 正常系: 期間未指定でAPIを呼び出したとき、直近30日分のレポートのみが返る - [ ] 正常系: 期間を指定した場合は、指定した期間のみが対象になる - [ ] 境界値: ちょうど30日前/31日前のデータが境界どおりに含まれる・含まれないこと
具体例2: 例外ハンドリングの変更
変更内容:
- •外部APIタイムアウト時に独自例外を投げ、レスポンスを
504 Gateway Timeoutに変更。
動作確認観点の例:
markdown
### 動作確認観点 - [ ] 正常系: 外部APIが正常応答するときに200でレスポンスされる - [ ] 異常系: 外部APIがタイムアウトしたときに、504と想定どおりのエラーメッセージが返る - [ ] ログ: タイムアウト時にWARN/ERRORレベルのログが1回だけ出力される
手順(レビュー時の思考プロセス)
- •変更差分をざっと読む
- •各変更について自問する:
- •「この変更はどのユーザー操作/どのバッチ/どのAPI呼び出しに現れるか?」
- •「正常系・異常系・境界値・権限のうち、どれを確認すべきか?」
- •対応する動作確認項目を、上記テンプレートのいずれかのチェックとして書き出す
- •書き出した項目を見直し、漏れていそうな観点(例: 境界値・権限・ログ)を補う
- •可能であれば、実際に手動テスト or 自動テストケースとして反映する
出力フォーマット(テンプレート)
このスキルを使って動作確認観点を整理するときは、次の形式で出力する。
markdown
### 動作確認観点 #### 正常系 - [ ] シナリオ1 - [ ] シナリオ2 #### 異常系 - [ ] シナリオ1 - [ ] シナリオ2 #### 境界値 - [ ] シナリオ1 #### 権限・ロール(該当する場合) - [ ] 権限あり - [ ] 権限なし #### ログ・監視(該当する場合) - [ ] エラー発生時に期待するログが出力される - [ ] メトリクス/監視アラートが想定どおり動作する
このテンプレートに沿って、**コード変更から逆算した「確認すべき振る舞い」**を漏れなく洗い出すこと。