テスト駆動開発ワークフロー
このスキルは、すべてのコード開発が包括的なテストカバレッジを備えたTDDの原則に従うことを保証します。
有効化するタイミング
- 新機能や機能の作成
- バグや問題の修正
- 既存コードのリファクタリング
- APIエンドポイントの追加
- 新しいコンポーネントの作成
コア原則
1. コードの前にテスト
常にテストを最初に書き、次にテストに合格するコードを実装します。
2. カバレッジ要件
- 最低80%のカバレッジ(ユニット + 統合 + E2E)
- すべてのエッジケースをカバー
- エラーシナリオのテスト
- 境界条件の検証
3. テストタイプ
ユニットテスト
- 個々の関数とユーティリティ
- コンポーネントロジック
- 純粋関数
- ヘルパーとユーティリティ
統合テスト
- APIエンドポイント
- データベース操作
- サービス間相互作用
- 外部API呼び出し
E2Eテスト (Playwright)
- クリティカルなユーザーフロー
- 完全なワークフロー
- ブラウザ自動化
- UI相互作用
TDDワークフローステップ
ステップ1:ユーザージャーニーを書く
ステップ2:テストケースを生成
各ユーザージャーニーについて、包括的なテストケースを作成:
ステップ3:テストを実行(失敗するはず)
ステップ4:コードを実装
テストに合格する最小限のコードを書く:
ステップ5:テストを再実行
ステップ6:リファクタリング
テストをグリーンに保ちながらコード品質を向上:
- 重複を削除
- 命名を改善
- パフォーマンスを最適化
- 可読性を向上
ステップ7:カバレッジを確認
テストパターン
ユニットテストパターン (Jest/Vitest)
API統合テストパターン
E2Eテストパターン (Playwright)
テストファイル構成
外部サービスのモック
Supabaseモック
Redisモック
OpenAIモック
テストカバレッジ検証
カバレッジレポートを実行
カバレッジ閾値
避けるべき一般的なテストの誤り
FAIL: 誤り:実装の詳細をテスト
PASS: 正解:ユーザーに見える動作をテスト
FAIL: 誤り:脆弱なセレクタ
PASS: 正解:セマンティックセレクタ
FAIL: 誤り:テストの分離なし
PASS: 正解:独立したテスト
継続的テスト
開発中のウォッチモード
プリコミットフック
CI/CD統合
ベストプラクティス
- テストを最初に書く - 常にTDD
- テストごとに1つのアサート - 単一の動作に焦点
- 説明的なテスト名 - テスト内容を説明
- Arrange-Act-Assert - 明確なテスト構造
- 外部依存関係をモック - ユニットテストを分離
- エッジケースをテスト - null、undefined、空、大きい値
- エラーパスをテスト - ハッピーパスだけでなく
- テストを高速に保つ - ユニットテスト各50ms未満
- テスト後にクリーンアップ - 副作用なし
- カバレッジレポートをレビュー - ギャップを特定
成功指標
- 80%以上のコードカバレッジを達成
- すべてのテストが成功(グリーン)
- スキップまたは無効化されたテストなし
- 高速なテスト実行(ユニットテストは30秒未満)
- E2Eテストがクリティカルなユーザーフローをカバー
- テストが本番前にバグを検出
覚えておいてください:テストはオプションではありません。テストは自信を持ってリファクタリングし、迅速に開発し、本番の信頼性を可能にする安全網です。


