AgentSkillsCN

java-runtime-checks

能够从 Java 代码的变更内容中,全面梳理出所需的各项测试用例(包括正常场景、异常场景、边界值测试以及权限验证等),确保无一遗漏。在进行 Java PR 评审或代码评审时,若希望清晰界定“应当重点测试哪些功能”,便可借助此技能加以整理。

SKILL.md
--- frontmatter
name: java-runtime-checks
description: Javaコードの変更内容から、必要な動作確認項目(正常系・異常系・境界値・権限など)を漏れなく洗い出すためのスキル。JavaのPRレビューやコードレビュー時に「何を動作確認すべきか」を整理したいときに使用する。

Java Runtime Checks

ゴール

このスキルの目的は、**「どこを動作確認すべきかを見落とさない」**こと。

コードの差分を見ながら、変更内容を

  • どんな操作
  • どんな入力
  • どんな状態/前提

で確認すべきかを、チェックリスト形式で整理する

このスキルは、java-code-review などコード品質のレビューとセットで使う想定


いつ使うか

次のようなケースで、このスキルを適用する。

  • JavaのPRレビュー/コードレビューをするとき
  • 「レビューコメントとして、動作確認観点をPRに残したい」とき
  • 「どのパターンをテストすべきか」を整理してから手動/自動テストを行いたいとき

基本ルール

ルール: 次の種類の変更を見つけたら、必ず1つ以上の動作確認項目を書く。

  1. 公開API/エンドポイントの変更
    • public メソッド
    • Controller/RESTエンドポイント
    • DTOやリクエスト/レスポンスのフィールド追加・削除・型変更
  2. 条件分岐の追加・変更
    • if / else if / else
    • switch
    • 三項演算子
  3. 例外処理・エラーハンドリング
    • try-catch, throws
    • 例外クラスの変更
    • エラーメッセージ/エラーレスポンスの変更
  4. DB/外部API/メッセージキューなどI/Oの変更
    • SQLやクエリメソッドの追加・変更
    • RESTクライアント、gRPCクライアントなどの呼び出し追加・変更
    • メッセージ送信/購読の追加・変更
  5. バッチ/スケジューラ/非同期処理
    • スケジュール条件(cron等)の変更
    • 非同期実行(スレッド、Executor、キュー)の追加・変更
  6. 重要な定数/設定値の変更
    • タイムアウト
    • リトライ回数
    • 上限値(件数・サイズ・金額など)

これらの変更を見つけたら、「どのパターンをどう操作して確認するか」を必ず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回だけ出力される

手順(レビュー時の思考プロセス)

  1. 変更差分をざっと読む
  2. 各変更について自問する:
    • 「この変更はどのユーザー操作/どのバッチ/どのAPI呼び出しに現れるか?」
    • 「正常系・異常系・境界値・権限のうち、どれを確認すべきか?」
  3. 対応する動作確認項目を、上記テンプレートのいずれかのチェックとして書き出す
  4. 書き出した項目を見直し、漏れていそうな観点(例: 境界値・権限・ログ)を補う
  5. 可能であれば、実際に手動テスト or 自動テストケースとして反映する

出力フォーマット(テンプレート)

このスキルを使って動作確認観点を整理するときは、次の形式で出力する。

markdown
### 動作確認観点

#### 正常系
- [ ] シナリオ1
- [ ] シナリオ2

#### 異常系
- [ ] シナリオ1
- [ ] シナリオ2

#### 境界値
- [ ] シナリオ1

#### 権限・ロール(該当する場合)
- [ ] 権限あり
- [ ] 権限なし

#### ログ・監視(該当する場合)
- [ ] エラー発生時に期待するログが出力される
- [ ] メトリクス/監視アラートが想定どおり動作する

このテンプレートに沿って、**コード変更から逆算した「確認すべき振る舞い」**を漏れなく洗い出すこと。