DAY 2 / 2

テスト・デバッグ・実践演習
IDホールディングス 新入社員向け 生成AI活用研修

2026年7月16日(木)
9:00 - 16:30(7時間)
60名
ビジョンセンター市ヶ谷
Day 2 タイムテーブル
09:00

Day 1復習とウォームアップ30分

前日の振り返りクイズ、Copilot操作確認

09:30

テストコード生成 / デバッグ実践140分

JUnitテスト生成、バグ修正、リファクタリング

10:50

休憩10分

12:00

昼休憩60分

13:00

総合演習: AI活用ミニ開発120分

設計書から実装、テスト、レビューまでの一気通貫演習

15:00

休憩10分

15:10

配属に向けた活用ガイド / クロージング80分

現場での活用シーン、質疑応答、アンケート

Session 01
Day 1 復習とウォームアップ

昨日の内容を思い出してから、Day 2に入りましょう。

Day 1 復習クイズ
Q1. Copilotのインラインサジェストを受け入れるキーは?

Q2. Copilot Chatでコードの問題点を修正させるスラッシュコマンドは?

Q3. AI生成コードのレビュー3観点は?
Session 02
テストコード生成 / デバッグ・リファクタリング実践

テストを書く工程はAIの恩恵を最も受けやすい領域です。退屈な定型作業をCopilotに任せ、人間はテスト設計に集中する。

01 JUnitテスト自動生成

実装クラスを開いた状態で /tests コマンドを実行すると、JUnitテストのひな型を一括生成してくれます。

// テスト対象: UserValidator.java の isValidEmail メソッド // Copilot Chatで: /tests と入力 class UserValidatorTest { @Test void isValidEmail_正常なメール_trueを返す() { assertTrue(validator.isValidEmail("user@example.com")); } @Test void isValidEmail_アットマークなし_falseを返す() { assertFalse(validator.isValidEmail("userexample.com")); } @Test void isValidEmail_null入力_例外をスロー() { assertThrows(IllegalArgumentException.class, () -> validator.isValidEmail(null)); } }
Tips: テストケースの網羅性

Copilot Chatに「このメソッドのテストケースを列挙して」と依頼すると、正常系・異常系・境界値のケースをリストアップしてくれます。テストコード生成の前にまずケースを洗い出す習慣をつけましょう。

補足: E2Eテスト(ブラウザ自動テスト)について

AI時代のテスト手法として、Playwright(Microsoft製)を使ったE2Eテストの自動化も急速に普及しています。画面操作を丸ごと自動化し、ユーザー視点での動作確認をAIに任せる手法です。今回の研修ではユニットテストを中心に扱いますが、E2Eテストのデモも予定しています。環境構築が複雑なため、デモ形式で「こういうことができる」を見ていただく想定です。

02 デバッグ支援

エラーメッセージやスタックトレースをCopilot Chatに貼り付けるだけで、原因の特定と修正案を提示してくれます。

エラー発生
スタックトレースをコピー
Copilot Chatに貼付
/fix で修正
テストで検証

以下のコードを実行するとエラーになります。Copilotの /fix コマンドで修正してください。

public class OrderCalculator { public double calculateTotal(List<OrderItem> items, double taxRate) { double subtotal = 0; for (int i = 0; i <= items.size(); i++) { // Bug 1: <= で境界値超過 OrderItem item = items.get(i); subtotal += item.getPrice() * item.getQuantity(); } return subtotal * taxRate; // Bug 2: 税率の加算ではなく乗算になっている } public String formatPrice(double price) { return "¥" + price; // Bug 3: 小数点が出る(整数表示すべき) } }
03 リファクタリング実践
リファクタリング

長いメソッドの分割

Copilot Chatで「このメソッドを適切な単位に分割して」と依頼。関心の分離を自動化。

リファクタリング

マジックナンバーの定数化

コード内の裸の数値を選択し、「これらを定数に変換して」と指示。

リファクタリング

コード説明の自動生成

/explain で既存コードの説明を生成。/doc でJavadocを自動付与。

Session 02 参考リンク
Session 03
総合演習: AI活用ミニ開発

2日間の集大成。設計書を読み、Copilotと一緒に実装、テスト、レビューまでを駆け抜けます。手作業との時間差を体感してください。

01 演習の進め方
設計書を読む
Copilotで実装
テスト生成・実行
レビュー・修正
成果共有

個人開発タイマー(80分)

80:00
02 演習課題: 商品管理API

以下の簡易仕様書をもとに、商品管理のサービスクラスとDAOクラスをCopilotで実装してください。

項目仕様
エンティティProduct(id, name, price, stock, category, createdAt)
必須メソッドfindById, findByCategory, create, updateStock, delete
ビジネスルール在庫が0未満にならないこと、価格は0円以上であること
テスト各メソッドに対して最低2件(正常系+異常系)
制約JDBC使用、PreparedStatement必須、例外ハンドリングあり
進め方のヒント

まずProductクラスをCopilotに見せた状態でDAOクラスを作成すると、フィールド名を自動認識して精度の高いCRUDコードを生成します。テストは実装完了後に /tests で一括生成し、境界値テストを手動で追加してください。

03 成果共有の観点
成果発表で共有してほしいこと
Copilotが役に立った場面

どの工程で最も時間短縮を感じたか。具体的なコードを示して説明してください。

Copilotが邪魔だった/不正確だった場面

期待通りのコードが出なかった場面、手動で修正が必要だった場面を共有してください。

手作業との時間比較

Java研修で同規模のコードを書いた時と比べて、どの程度速くなったか体感を共有してください。

Session 04
配属に向けた活用ガイド / クロージング

8月の配属後にCopilotをどう使うか。現場での判断基準を持って、この研修を終えましょう。

01 現場でのCopilot活用シーン
場面

新プロジェクト参画時

既存コードを /explain で理解。知らないフレームワークの使い方をCopilot Chatに質問。

場面

定型コードの高速生成

getter/setter、DAO、テストコード、バリデーション。パターンが決まっているコードはCopilotに任せる。

場面

コードレビュー前の自己チェック

レビュー依頼の前にCopilot Chatで「このコードのセキュリティリスクを指摘して」と確認。

場面

ドキュメント作成

Javadoc自動生成、コードの説明文作成、コミットメッセージの提案。

02 AIに任せてよい場面 / 自分で書くべき場面
場面判断理由
getter/setterAIに任せてよい定型的で間違いが少ない
CRUDの定型処理AIに任せてよいパターンが決まっている
テストのひな型生成AIに任せてよいただし境界値テストは人間が設計
ビジネスロジックの核心自分で考えて書く要件の理解が必要。AIは要件を知らない
セキュリティ関連のコード必ず人間がレビュー脆弱性は致命的な影響を及ぼす
お客様環境での利用上長に確認してから契約やセキュリティポリシーによる制限がある場合も
03 2日間のまとめ
Key Message 1

AIは道具。使いこなすのは人間

Copilotは優秀なアシスタントだが、最終判断は常に人間が行う。

Key Message 2

プロンプトの質 = 生成コードの質

具体的に、コンテキストを与えて、明確なゴールを示す。この3つで精度が変わる。

Key Message 3

レビューを省略しない

AIが書いたコードほど注意深くレビューする。セキュリティ・ロジック・命名の3観点。

Key Message 4

わからなければ上長に聞く

配属先でCopilotが使えるかどうかは環境次第。迷ったら確認してから。

04 最終理解度チェック
2日間の総合テスト
Q1. Copilotの /tests コマンドで生成されたテストはそのまま使ってよいか?
  • そのまま使ってよい。Copilotが網羅してくれる
  • ひな型として使い、境界値や異常系は人間が追加する
  • 使わないほうがよい。テストは全て手書きすべき

Q2. 配属先のプロジェクトで新しいフレームワークに出会った。Copilotの正しい活用法は?
  • ChatGPTに聞く
  • 先輩に全部教えてもらう
  • /explain で既存コードを理解し、Chatで使い方を質問。公式ドキュメントでも裏取りする

Q3. Copilotが生成したSQLが文字列連結だった。正しい対応は?
  • 動くのでそのまま使う
  • Copilot Chatに「PreparedStatementに変換して」と依頼
  • Copilotが間違えたので手動で全部書き直す
05 学習リソース
GitHub
公式

GitHub Copilot ドキュメント

最も信頼できる情報源。新機能も随時更新されます。

VSCode
公式

VSCode ドキュメント

ショートカットや拡張機能の活用法が詳しく載っています。

JUnit
テスト

JUnit 5 ユーザーガイド

テストコードの書き方の基本からアドバンスドまで。

Tips: WSLや仮想コンテナでの安全な開発環境

配属先ではWSL(Windows Subsystem for Linux)やDockerコンテナ内で開発環境を構築するケースが増えています。Copilotの認証情報やGitHubトークンをコンテナ内に閉じ込めることで、ホストOSへのセキュリティリスクを最小化できます。環境構築の選択肢として覚えておいてください。

今後の研修予定

アプリケーション事業本部向けに、Claude Code研修(1回)、上流工程研修(2回)、下流工程研修(2回)を別日程で実施予定です。新卒向けはIDホールディングス全体での実施となります。

Session 04 参考リンク