tdd について
TDDは、事前に承認された境界で小さなレッド・グリーンのサイクルを回すテストスキルです。期待値の独立した根拠と境界クラスを記録し、テスト結果や不足する境界を報告します。
主な機能
- 01各反復でテストと実装を一つずつ実施
- 02承認済みの境界だけでテスト
- 03期待値に独立した根拠を使用
- 04境界クラスに応じた代替
- 05バグ修正前に失敗テストを作成
- 06境界一覧とレッド・グリーンの証拠を報告
活用シーン
- 01仕様に沿った段階的な動作実装
- 02実装変更前のバグ再現
- 03テスト境界不足で検証できない動作の特定
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ yeachan-heo/ oh-my-claudecode --skill tddインストール後、Claude Code で/tddを入力して読み込まれたか確認します。
詳細
TDD
事前に合意した境界で、小さなステップでレッドからグリーンへ進めます。ローンチ実行時は、境界のリストが C2 の承認済み出力です。ローンチ以外では、最初のテストを作成する前にユーザーと境界について合意します。誰も承認していない境界にはテストを作成しません。
サイクル
テストを1つ → 実装を1つ → 繰り返します。
- 次の境界でテストを作成します。実行し、想定した理由で失敗することを確認します。失敗しないテストはテストではありません。
- テストをグリーンにする最小限の変更を実装します。
- 繰り返します。各テストはトレーサーバレットです。振る舞いを通る、狭くても完全な経路であり、単独のレイヤーを仕上げるものではありません。
ルール
- 期待値は独立した信頼できる情報源(仕様の記述、具体的な例、文書化された出力など)から取得します。テスト対象の実装から取得してはいけません。コードがたまたま行うことをアサートするテストは検証ではなく、単なる反映です。
- 置き換えは、境界に対して宣言されたクラスのみに限ります。クラスは、インプロセス、ローカルで置き換え可能、所有するリモートポート、または真の外部です。C2 は各境界のクラスを記録します。テスト対象の境界内部では、置き換えを行いません。
- リファクタリングはこのサイクルには含まれません。レビュー段階で行い、修復担当者が担います。レッドからグリーンへ進む途中でリファクタリングしてはいけません。
- バグ修正は、そのバグを再現する失敗テストから始めます。理論より再現を優先する。これがデバッガーの原則です。
- 境界を提案するときは、それが何を検出し、何を見逃すかを1行で述べます。評価できない境界の選択は、決定ではなく推測です。
適合する境界がない場合
承認済みの境界で振る舞いをテストできない場合は、停止してその旨を伝えます。存在しない境界を所見として報告します(architecture-survey と refit に引き継がれます)。境界を捏造したり、内部を通じてテストしたりしてはいけません。
出力
- 使用した境界リスト。各境界のクラスと、検出するもの/見逃すものを記した行を含めます
- レッド/グリーンの証拠。失敗した実行と成功した実行
- 境界が存在しない場合の所見
コメント
Markdown 対応