mcpField
T
tdd-workflow

tdd-workflow

github.com/sickn33テスト・品質48.7k1.0k 回インストール今日更新
リポジトリ

tdd-workflow について

RED、GREEN、REFACTORのサイクルに沿った、開発者向けのTDDワークフローです。最小限の変更、振る舞いを対象としたテスト、段階的なテスト優先度を重視します。

主な機能

  1. 01RED、GREEN、REFACTORのサイクル
  2. 02テスト先行と最小限の実装
  3. 03AAAによるテスト構成
  4. 04段階的なリファクタリング原則
  5. 05テスト優先度の指針

活用シーン

  1. 01新機能の前に失敗するテストを作成
  2. 02修正前にバグを再現
  3. 03複雑なロジックのテスト順を計画

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/sickn33/agentic-awesome-skills --skill tdd-workflow

インストール後、Claude Code で/tdd-workflowを入力して読み込まれたか確認します。

詳細

TDD ワークフロー

まずテストを書き、次にコードを書きます。


1. TDD サイクル

🔴 RED → Write failing test
    ↓
🟢 GREEN → Write minimal code to pass
    ↓
🔵 REFACTOR → Improve code quality
    ↓
   Repeat...

2. TDD の三つの法則

  1. 失敗するテストを成功させるためだけにプロダクションコードを書く
  2. 失敗を示すのに十分なテストだけを書く
  3. テストを成功させるのに十分なコードだけを書く

3. RED フェーズの原則

書くべきもの
焦点例
振る舞い「二つの数値を加算するべき」
エッジケース「空の入力を処理するべき」
エラー状態「不正なデータに対して例外を投げるべき」
RED フェーズのルール
  • テストはまず失敗しなければならない
  • テスト名は期待される振る舞いを記述する
  • テストごとに一つのアサーション(理想的には)

4. GREEN フェーズの原則

最小限のコード
原則意味
YAGNIYou Aren't Gonna Need It(必要になるまで作らない)
最もシンプルなもの成功させるのに最小限のものを書く
最適化しないとにかく動かす
GREEN フェーズのルール
  • 不要なコードを書かない
  • まだ最適化しない
  • テストを成功させる、それ以上は何もしない

5. REFACTOR フェーズの原則

改善すべきもの
領域アクション
重複共通コードを抽出する
命名意図を明確にする
構造構成を改善する
複雑さロジックを単純化する
REFACTOR のルール
  • すべてのテストはグリーンを維持しなければならない
  • 小さな漸進的な変更
  • 各リファクタリング後にコミットする

6. AAA パターン

すべてのテストは次の流れに従います。

ステップ目的
Arrangeテストデータを準備する
Actテスト対象のコードを実行する
Assert期待される結果を検証する

7. TDD をいつ使うか

シナリオTDD の価値
新機能高
バグ修正高(まずテストを書く)
複雑なロジック高
探索的低(スパイクしてから TDD)
UI レイアウト低

8. テストの優先順位

優先度テストの種類
1ハッピーパス
2エラーケース
3エッジケース
4パフォーマンス

9. アンチパターン

❌ しないこと✅ すること
RED フェーズを飛ばすまずテストが失敗するのを見る
後からテストを書く前にテストを書く
最初から過剰に設計するシンプルに保つ
複数のアサーションテストごとに一つの振る舞い
実装をテストする振る舞いをテストする

10. AI を活用した TDD

マルチエージェントパターン
エージェント役割
エージェント A失敗するテストを書く(RED)
エージェント B成功させるために実装する(GREEN)
エージェント C最適化する(REFACTOR)

覚えておいてください: テストは仕様です。テストが書けないなら、その要件を理解していません。

使用するタイミング

このスキルは、概要に記載されたワークフローまたはアクションを実行する場合に適用できます。

制限事項

  • このスキルは、タスクが上記の範囲に明確に一致する場合にのみ使用してください。
  • 出力を環境固有の検証、テスト、または専門家によるレビューの代替として扱わないでください。
  • 必要な入力、権限、安全境界、または成功基準が欠けている場合は、停止して確認を求めてください。

コメント