2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

受け入れ駆動開発 × Claude Code — AIコードをテストで検証する実践パターン

2
Posted at

Claude Code にコードを書いてもらうとき、「動いているように見えるが仕様を満たしていない」という状況に気づいたことはないでしょうか。

AIが生成したコードを信頼するためには、受け入れ条件を先に定義して検証するという考え方が有効です。本記事では、Claude Code との開発で実践している「受け入れ駆動アプローチ」を3つのパターンで紹介します。

なぜ受け入れ条件が必要か

AIは指示された内容を実装しますが、「何をもって完了とするか」が曖昧だと、動くけど要件を満たさないコードが返ってきます。

典型的なケース:

「ログイン機能を作って」
→ AI: 認証ロジックは書いた。でもエラー時のリダイレクト先が仕様と違う

この問題に対処するのが受け入れ条件の明示化です。

パターン1: CLAUDE.mdに受け入れ条件の書き方を定義する

プロジェクトの CLAUDE.md に、実装依頼の際の必須フォーマットを書いておきます。

## 実装依頼フォーマット

機能を依頼する際は以下を必ず明示する:

### 受け入れ条件(AC)
- AC1: [ユーザー視点での期待動作]
- AC2: [エラーケースの挙動]
- AC3: [パフォーマンス・セキュリティ条件]

Claudeは実装前にACを確認し、テストコードを先に提示すること。

これにより Claude Code は「まずテストを書く」という流れを自然に実行します。

パターン2: Vitest でのスナップショット受け入れテスト

UI変更に対しては、スナップショットテストを受け入れ条件として使います。

// tests/acceptance/TodoList.test.ts
import { render } from '@testing-library/react'
import { TodoList } from '@/components/TodoList'

describe('TodoList 受け入れテスト', () => {
  it('AC1: 完了済みアイテムには打ち消し線が表示される', () => {
    const items = [
      { id: 1, text: '買い物', done: true },
      { id: 2, text: '掃除', done: false },
    ]
    const { container } = render(<TodoList items={items} />)
    
    // Claude Code に「このテストが通るように実装して」と渡す
    expect(container.querySelector('.done')).toHaveStyle('text-decoration: line-through')
  })
  
  it('AC2: 空リストのときはメッセージを表示する', () => {
    const { getByText } = render(<TodoList items={[]} />)
    expect(getByText('タスクはありません')).toBeInTheDocument()
  })
})

このテストを Claude Code に渡し、「テストが全件通るように実装して」と指示するだけです。

パターン3: Claude Codeへの「テスト先渡し」指示テンプレート

実際の依頼文のテンプレートです。

以下の受け入れテストが全件グリーンになるように実装してください。

[テストコードをここに貼り付け]

## 制約
- 既存テストを壊さない
- 新たにAPIを追加しない(既存のエンドポイントを使う)
- TypeScript strict modeでエラーなし

実装前に、どのようなアプローチを取るか一言確認してください。

「実装前に確認」を入れることで、方向性のズレを最小化できます。

まとめ

Claude Code × 受け入れ駆動のポイント:

  1. CLAUDE.mdに受け入れ条件フォーマットを定義する(毎回書かなくて済む)
  2. テストを先に書いてClaudeに渡す(動作定義が明確になる)
  3. 「実装前に確認」を必ず入れる(方向性のズレを防ぐ)

AIが書いたコードの品質を人間がコントロールするための、シンプルで効果的な設計パターンです。


未経験者向けの講座を運営しています

未経験から Next.js + Supabase + Claude Code で Webアプリを作って公開するまで を、全20セッションで体系化した教材です。Claude Code を学習パートナーにする CLAUDE.md / Skills 設計までセットで含みます。

※ Qiita 読者の方には易しすぎる内容なので、初心者の知り合いへの紹介や社内研修の参考としてどうぞ。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?