AIDF-NEXA トレーニングプログラム

Day 5: コード生成・テスト生成実践

前提条件: Day 1-4 すべて完了、DD生成・コード生成理解済み

時間割

時間 トピック 時間配分
10:00 Day 4 振り返り 5 分
10:05 コード生成実践 30 分
10:35 コードレビュー + 品質確認 20 分
🔄 休憩 5 分
11:00 テストケース生成 30 分
11:30 総括: パイプライン完走 15 分
11:45 フィードバック + クロージング 15 分

実践中心の最終日

Day 4 振り返り

Day 4 で学んだこと:

   BD 生成完了: 全画面・API の基本設計

   DD 4ステップ: /dd:plan → :generate → :review → :validate

   DD テンプレート: 9セクション + 4-State Model + EVT_XXX

   Coder Pack: DD + コンテキスト → コード生成準備

今日: コード生成実践 + テスト生成 + パイプライン完走

Day 5 Git ワークフロー

1
DD 演習: BD 完了ブランチから開始 / DD Exercise: Bắt đầu từ BD complete
git checkout checkpoint/02-bd-complete
git checkout -b trainee/<名前>/cp3-dd
→ BD 全8画面 + API + DB 完了済み / BD 8 screens + API + DB đã xong
2
DD 生成: 2画面練習 / DD Generate: Thực hành 2 màn hình
/dd:generate SCREEN-00103_詳細設計/91_Output/SCREEN-001-login-dd.md
/dd:generate SCREEN-00203_詳細設計/91_Output/SCREEN-002-dashboard-dd.md
→ commit & push: git push -u origin trainee/<名前>/cp3-dd
3
Code 演習: DD 完了ブランチから開始 / Code Exercise: Bắt đầu từ DD complete
git checkout checkpoint/03-dd-backend
git checkout -b trainee/<名前>/cp4-code
→ DD 全8画面 + Backend scaffold 完了済み / DD 8 screens + Backend scaffold đã xong
4
Code 生成: 1画面練習 / Code Generate: Thực hành 1 màn hình
/code:plan @03_詳細設計/91_Output/SCREEN-001-login-dd.md
/code:process @03_詳細設計/91_Output/SCREEN-001-login-dd.md
→ commit & push: git push -u origin trainee/<名前>/cp4-code
📌 参照ブランチ / Branch tham khảo:  DD start: checkpoint/02-bd-complete →  Code start: checkpoint/03-dd-backend →  模範 / Đáp án: checkpoint/04-full-app

パート1: コード生成実践

10:05 - 10:55

コード生成: フロントエンド

React + TypeScript + Tailwind 生成

# Step 1: 実装計画
/code:plan @03_詳細設計/91_Output/SCREEN-001-login-dd.md

# Step 2: フロントエンド生成
/code:process @[DD file] --target=frontend

生成されるファイル:

04_実装/frontend/src/
├── pages/[Screen]/
│   └── [Screen]Page.tsx          ← メインページ
├── components/[Screen]/
│   ├── [Screen]Form.tsx          ← フォーム
│   ├── [Screen]FormFields.tsx    ← フィールド
│   └── [Screen]Table.tsx         ← テーブル
├── hooks/
│   └── use[Screen]Api.ts         ← API フック
└── types/
    └── [screen].ts               ← 型定義

コード生成: バックエンド

Express.js + TypeScript + better-sqlite3 生成

# バックエンド生成
/code:process @03_詳細設計/91_Output/SCREEN-001-login-dd.md --target=backend

生成されるファイル:

04_実装/backend/src/
├── routes/
│   └── [screen].ts                ← REST API ルート
├── middleware/
│   └── auth.ts                    ← JWT 認証
├── db.ts                          ← SQLite 接続
└── index.ts                       ← Express サーバー

ルール: Route → Business Logic 分離、JWT middleware、prepared statements

コードレビュー + 品質確認

DD 準拠チェック

# フロントエンドレビュー
/code:review @04_実装/frontend/src/pages/[Screen]/[Screen]Page.tsx \
             --against @[DD file]

# バックエンドレビュー
/code:review @04_実装/backend/src/routes/auth.ts \
             --against @03_詳細設計/91_Output/SCREEN-001-login-dd.md

確認ポイント:

チェック Frontend Backend
DD フィールド実装
バリデーションルール
エラーハンドリング
型定義 (no any)
スコア ≥ 70

よくあるコード問題 + 修正

// ❌ 問題1: 暗黙的 any
const handleSubmit = (data) => { ... }
// ✅ 修正
const handleSubmit = (data: TaskFormData) => { ... }

// ❌ 問題2: useEffect + fetch(React Query 使うべき)
// ✅ 修正
const { data, isLoading } = useQuery({
  queryKey: ['tasks'], queryFn: () => api.getTasks()
})

// ❌ 問題3: Route にビジネスロジック
router.post('/tasks', (req, res) => {
  if (req.body.title.length > 255) return res.status(400)... // ← NG
})
// ✅ 修正 / Fix: バリデーション分離 / Separate validation
router.post('/tasks', validateTask, (req, res) => {
  const task = createTask(req.body); res.json(task); // ← OK
})

パート2: テスト生成 + 総括

11:00 - 11:45

テストケース生成: tcgen エンジン

DD からテストケース自動生成

# Step 1: テスト計画
/testcase:plan @03_詳細設計/91_Output/SCREEN-001-login-dd.md

# Step 2: テストケース生成
/testcase:process @[DD file]

# Step 3: Excel 出力
/testcase:export-xlsx @05_テスト/91_Output/[test case file]

ISTQB テスト技法:

技法 用途
BVA (境界値) 数値・範囲 金額: 0, 1, 9999999, 10000000
EP (同値分割) カテゴリ ステータス: 有効/無効
DT (デシジョンテーブル) 条件組合せ 承認ロジック

テスト品質チェック

カバレッジ + 品質スコア

テストケース品質チェック

  カバレッジ
    全DDフィールドにテストあり?     ≥ 85% 目標

  品質スコア
    カバレッジ 30% + 明確さ 20% + 技法 20% + トレーサビリティ 15% + データ 15%

  グレード
    ≥ 90: 優秀 / Excellent    ≥ 80: 良好 / Good
    ≥ 70: 合格 / Pass         < 70: 不合格 / Fail
指標 あなたの結果
DD テスト項目数 _____
テストケース数 _____
カバレッジ ____%
品質スコア ___/100

総括: パイプライン完走

11:30 - 11:45

RD→BD→DD→Code→Test 完走

┌──────────────────────────────────────────────────────────────┐
│                NEXA FULL PIPELINE — 5 DAYS                    │
├──────────────────────────────────────────────────────────────┤
│                                                               │
│  Day 1-2: Foundation                                          │
│  NEXA哲学 + SoT + テンプレート + ワークフロー                    │
│                                                               │
│  Day 3: RD + BD Start                                         │
│  /rd:generate → /rd:review → /bd:generate (画面1)              │
│                                                               │
│  Day 4: BD Complete + DD + Code Theory                        │
│  /bd:generate (残り) → /dd:plan → :generate → :review          │
│  DD 9セクション + 4-State + EVT_XXX → Coder Pack               │
│                                                               │
│  Day 5: Code Practice + Test + Wrap-up ← 今日
│  /code:process → :review → /testcase:process → :export-xlsx    │
│                                                               │
│  結果 / Result: RD → BD → DD → Code → Test 完走!              │
│  Kết quả: Hoàn thành pipeline RD → BD → DD → Code → Test!     │
│                                                               │
└──────────────────────────────────────────────────────────────┘

5日間で学んだスキル

✅ NEXA プロジェクト構造ナビゲーション

✅ SoT 4ルール: 唯一のソース + 最新版 + コピー + Input 不可

✅ 5フェーズ品質ゲート: RD → BD → DD → Code → Test

✅ DD テンプレート: 9セクション + 4-State + EVT_XXX

✅ コード生成: Coder Pack → Frontend + Backend

✅ テスト生成: tcgen + ISTQB (BVA/EP/DT)

✅ 品質レビュー: /bd:review, /dd:review, /code:review

よくある落とし穴

落とし穴 対策
BD不明確のまま DD 生成 BD レビュー先
レビューなしでコード生成 ゲート強制
テストをスキップ カバレッジ目標設定
手動で全部やる NEXA コマンド使用
1人で作業 ペアレビュー
品質スコア無視 ダッシュボード確認

フィードバック + クロージング

11:45 - 12:00

フィードバック

以下について評価してください (1-5):

  1. 研修内容の理解度
  2. 研修資料の品質
  3. ハンズオンの有用性
  4. トレーナーの説明
  5. 実務への適用可能性

次のステップ:

  • ✅ パイロットプロジェクトでNEXA使用
  • ✅ 内部研修計画
  • ✅ Slack チャネル参加

サポート: Slack #nexa-training-support | aidf-support@fabbi.com.vn

お疲れ様でした!

RD → BD → DD → Code → Test — Pipeline Complete!

5日間の研修、ありがとうございました!

Chào mừng mọi người đến với Day 5 — ngày cuối cùng. Hôm nay 100% thực hành: tạo code frontend+backend, code review, tạo test case bằng tcgen, và tổng kết toàn bộ pipeline. Đây là ngày áp dụng mọi thứ đã học trong 4 ngày.

Chương trình Day 5: phần 1 thực hành code generation và review. Phần 2 thực hành test generation và tổng kết. Cuối cùng feedback và closing ceremony. Hôm nay không có lý thuyết mới — tất cả là hands-on.

Ôn tập Day 4: đã hoàn thành BD, DD workflow 4 bước, DD template 9 sections với 4-State Model và EVT_XXX, Coder Pack concept. Hôm nay chúng ta sẽ thực sự chạy code generation, review code, tạo test cases, và hoàn thành toàn bộ pipeline.

Git workflow Day 5. Bước 1-2: DD exercise — checkout từ checkpoint/02-bd-complete (BD đã xong 8 màn), tạo branch cá nhân, generate DD cho 2 màn hình. Bước 3-4: Code exercise — checkout từ checkpoint/03-dd-backend (DD đã xong 8 màn + backend scaffold), tạo branch cá nhân, generate code cho 1 màn hình. Mỗi phần commit và push riêng.

Bắt đầu phần thực hành code generation. Trong 50 phút, các bạn sẽ tạo code frontend và backend từ DD, rồi review quality.

Frontend code generation: chạy code:plan trước để xem AI sẽ tạo gì, rồi code:process tạo code thực tế. Output: page component, form component, fields, API hooks với React Query, và type definitions. Tech stack: React 18 + TypeScript + Tailwind + zustand + react-query — đúng như CLAUDE.md quy định.

Backend code generation: Express.js + TypeScript + better-sqlite3 + JWT. Route files chứa endpoint definitions. Auth middleware kiểm tra JWT. db.ts quản lý SQLite connection với prepared statements (chống SQL injection). Rule quan trọng: tách route handler và business logic, dùng prepared statements cho tất cả queries.

Code review: chạy code:review với --against flag để so sánh code với DD spec. Kiểm tra: DD fields đã implement đủ chưa, validation rules có match không, error handling đúng chưa, TypeScript types có dùng any không. Target: cả frontend và backend score ≥ 70. Nếu có CRITICAL issues, sửa rồi review lại.

3 lỗi thường gặp nhất: 1) Implicit any — phải khai báo type rõ ràng, không dùng any. 2) useEffect+fetch — phải dùng React Query cho API calls, có loading/error state tự động. 3) Logic trong Route handler — tách validation và business logic ra function riêng, route handler chỉ gọi và trả response.

Phần 2: thực hành test generation với tcgen engine và tổng kết toàn bộ pipeline.

Test generation: 3 lệnh — testcase:plan, testcase:process, testcase:export-xlsx. tcgen engine đọc DD và tạo test cases theo ISTQB techniques. BVA cho field số — kiểm tra biên. EP cho categories — 1 test mỗi nhóm. Decision Table cho logic phức tạp — liệt kê tất cả tổ hợp. Target: coverage ≥ 85%.

Kiểm tra chất lượng test: Coverage phải ≥ 85% — tất cả DD items đều có test case. Quality score 5 chiều — coverage, clarity, technique, traceability, test data. Target score ≥ 70 để pass. Điền bảng results cho work của mình.

Tổng kết — nhìn lại toàn bộ pipeline đã hoàn thành trong 5 ngày.

5 ngày — hoàn thành toàn bộ pipeline. Day 1-2: nền tảng — triết lý, SoT, templates, workflow. Day 3: tạo RD và bắt đầu BD. Day 4: hoàn thành BD, DD generation, code generation theory. Day 5: thực hành code + test + tổng kết. Các bạn đã đi từ input thô đến code và test cases hoàn chỉnh.

7 kỹ năng đã master: navigate project structure, SoT 4 rules, 5-phase quality gates, DD template 9 sections, code generation với Coder Pack, test generation với tcgen + ISTQB, và quality review commands. Đây là bộ kỹ năng hoàn chỉnh để vận hành NEXA pipeline trong công việc hàng ngày.

6 bẫy thường gặp và cách tránh. Quan trọng nhất: KHÔNG tạo DD từ BD mờ, KHÔNG tạo code mà không review, KHÔNG bỏ qua test. Dùng NEXA commands thay vì làm thủ công. Pair review để có thêm perspective. Luôn check quality score.

Phần cuối: feedback và closing ceremony.

Feedback 5 mục, đánh giá 1-5. Và 3 next steps: dùng NEXA ngay trên pilot project, lên kế hoạch training nội bộ, join Slack channel. Support channel luôn mở: Slack và email.

Xin cảm ơn tất cả mọi người. Các bạn đã hoàn thành toàn bộ NEXA pipeline: từ requirements đến code và test cases. Đây là một thành quả ấn tượng trong 5 ngày. Chúc các bạn thành công trên hành trình NEXA Developer! お疲れ様でした!