tdd-guide について
要件やコードからテストを生成し、カバレッジとテスト品質を分析する、エンジニアリングチーム向けのテスト駆動開発スキルです。複数の言語とテストフレームワークに対応し、Red-Green-Refactor の進行を支援します。
主な機能
- 01要件からテストケースとスタブを生成
- 02フィクスチャとモックの作成
- 03Red-Green-Refactor ワークフローのガイド
- 04カバレッジレポート解析と不足箇所の特定
- 05テスト品質とコード複雑度の評価
- 06複数のテストフレームワークに対応
活用シーン
- 01ユーザーストーリーや API 仕様からテストを作成
- 02未カバー箇所を見つけて追加テストを計画
- 03新機能の TDD を段階的に進める
- 04Jest テストを Pytest に変換
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ alirezarezvani/ claude-code-skill-factory --skill tdd-guideインストール後、Claude Code で/tdd-guideを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
coverage_analyzer.pyexpected_output.jsonfixture_generator.pyformat_detector.pyframework_adapter.pyHOW_TO_USE.mdmetrics_calculator.pyoutput_formatter.pyREADME.mdsample_coverage_report.lcovsample_input_python.jsonsample_input_typescript.jsontdd_workflow.pytest_generator.py詳細
TDD Guide - エンジニアリングチームのためのテスト駆動開発
複数の言語やテストフレームワークに対応し、インテリジェントなテスト生成、カバレッジ分析、フレームワーク連携、TDD ワークフローのガイダンスを提供する、包括的なテスト駆動開発スキルです。
機能
テスト生成
- 要件からテストケースを生成:ユーザーストーリー、API 仕様、ビジネス要件を実行可能なテストケースに変換します
- テストのひな形を作成:適切な命名、インポート、セットアップ/ティアダウンを備えたテスト関数のひな形を生成します
- テストフィクスチャを生成:さまざまなシナリオに対応する、現実的なテストデータ、モック、フィクスチャを作成します
TDD ワークフローのサポート
- Red-Green-Refactor をガイド:検証を含む TDD サイクルを段階的にガイドします
- 不足しているシナリオを提案:テストされていないエッジケース、エラー条件、境界シナリオを特定します
- テスト品質をレビュー:テストの分離性、アサーションの品質、命名規則、保守性を分析します
カバレッジとメトリクスの分析
- カバレッジを計算:LCOV、JSON、XML のカバレッジレポートを解析し、行/分岐/関数のカバレッジを算出します
- 未テストのパスを特定:テストカバレッジのないコードパス、分岐、エラーハンドラーを見つけます
- 改善策を提案:カバレッジの不足やテスト品質に対し、優先度(P0/P1/P2)を付けた提案を行います
フレームワーク連携
- 複数のフレームワークをサポート:Jest、Pytest、JUnit、Vitest、Mocha、RSpec のアダプター
- 定型コードを生成:適切なインポート、describe ブロック、ベストプラクティスを備えたテストファイルを作成します
- テストランナーを設定:テスト設定、カバレッジツール、CI 連携をセットアップします
包括的なメトリクス
- テストカバレッジ:ギャップ分析を含む、行/分岐/関数のカバレッジ
- コードの複雑度:循環的複雑度、認知的複雑度、テスト容易性のスコア
- テスト品質:テストごとのアサーション数、分離性スコア、命名品質、テストの臭いの検出
- テストデータ:境界値分析、エッジケースの特定、モックデータの生成
- テスト実行:実行時間の分析、低速なテストの検出、不安定なテストの検出
- 不足しているテスト:未カバーのエッジケース、エラーハンドリングの不足、統合シナリオの不足
入力要件
このスキルは柔軟な入力に対応する自動形式検出をサポートしています。
ソースコード
- 言語:TypeScript、JavaScript、Python、Java
- 形式:ファイルパスを直接指定するか、コードブロックをコピーして貼り付けます
- 検出:構文とインポートから言語/フレームワークを自動検出します
テスト成果物
- カバレッジレポート:LCOV(.lcov)、JSON(coverage-final.json)、XML(cobertura.xml)
- テスト結果:JUnit XML、Jest JSON、Pytest JSON、TAP 形式
- 形式:ファイルパスまたは生のカバレッジデータ
要件(任意)
- ユーザーストーリー:機能のテキストによる説明
- API 仕様:OpenAPI/Swagger、REST エンドポイント、GraphQL スキーマ
- ビジネス要件:受け入れ基準、ビジネスルール
入力方法
- オプション A:ファイルパスを指定します(スキルがファイルを読み取ります)
- オプション B:コード/データを直接コピーして貼り付けます
- オプション C:両方を組み合わせます(自動検出されます)
出力形式
このスキルは、利用環境に最適化されたコンテキスト対応の出力を提供します。
コードファイル
- テストファイル:適切な構造を備えた、生成済みテスト(Jest/Pytest/JUnit/Vitest)
- フィクスチャ:テストデータファイル、モックオブジェクト、ファクトリー関数
- モック:モック実装、スタブ関数、テストダブル
レポート
- Markdown:充実したカバレッジレポート、提案、品質分析(Claude Desktop)
- JSON:機械可読なメトリクス、CI/CD 連携用の構造化データ
- ターミナル向け:Claude Code CLI 向けの簡潔な出力
スマートな既定値
- デスクトップ/アプリ:表、コードブロック、視覚的な階層構造を備えた充実した Markdown
- CLI:明確なセクション分けを備えた、簡潔でターミナル向けの形式
- CI/CD:自動処理向けの JSON 出力
段階的な情報開示
- 要約を最初に: 高レベルな概要(200 トークン未満)
- 詳細はオンデマンド: 完全な分析を利用可能(500~1000 トークン)
- 優先順位付け: P0(重大)→ P1(重要)→ P2(あると望ましい)
使用方法
基本的な使い方
@tdd-guide
I need tests for my authentication module. Here's the code:
[paste code or provide file path]
Generate comprehensive test cases covering happy path, error cases, and edge cases.
カバレッジ分析
@tdd-guide
Analyze test coverage for my TypeScript project. Coverage report: coverage/lcov.info
Identify gaps and provide prioritized recommendations.
TDD ワークフロー
@tdd-guide
Guide me through TDD for implementing a password validation function.
Requirements:
- Min 8 characters
- At least 1 uppercase, 1 lowercase, 1 number, 1 special char
- No common passwords
マルチフレームワーク対応
@tdd-guide
Convert these Jest tests to Pytest format:
[paste Jest tests]
スクリプト
コアモジュール
- test_generator.py: 要件とコードからインテリジェントにテストケースを生成します
- coverage_analyzer.py: カバレッジレポート(LCOV、JSON、XML)を解析・分析します
- metrics_calculator.py: テストとコード品質の包括的なメトリクスを計算します
- framework_adapter.py: マルチフレームワークアダプター(Jest、Pytest、JUnit、Vitest)
- tdd_workflow.py: レッド・グリーン・リファクタリングのワークフローガイダンスと検証
- fixture_generator.py: 現実的なテストデータとフィクスチャを生成します
- format_detector.py: 言語とフレームワークの自動検出
ユーティリティ
- complexity_analyzer.py: 循環的複雑度と認知的複雑度の分析
- test_quality_scorer.py: テスト品質のスコアリング(分離性、アサーション、命名)
- missing_test_detector.py: テストされていないパスと不足しているシナリオを特定します
- output_formatter.py: コンテキストに応じた出力フォーマット(デスクトップ vs コマンドライン)
ベストプラクティス
テスト生成
- 要件から始める: 実装を見る前にユーザーストーリーからテストを書きます
- 実装ではなく振る舞いをテストする: コードが何をするかに注目し、どのようにするかには注目しません
- 1 つのアサーションに集中: 各テストは 1 つの特定の振る舞いを検証するべきです
- 説明的な名前: テスト名は仕様のように読めるべきです
TDD ワークフロー
- レッド: まず失敗するテストを書きます
- グリーン: テストに合格するための最小限のコードを書きます
- リファクタリング: テストをグリーンに保ちながらコードを改善します
- 繰り返し: 小さなイテレーション、頻繁なコミット
カバレッジの目標
- 80% 以上を目指す: ほとんどのプロジェクトにおける行カバレッジのベースライン
- 重要なパスは 100%: 認証、決済、データ検証は完全にカバーする必要があります
- ブランチカバレッジが重要: 行カバレッジだけでは不十分です
- メトリクスを操作しない: カバレッジの数値ではなく、意味のあるテストに集中します
テスト品質
- 独立したテスト: 各テストは分離して実行されるべきです
- 高速な実行: 各ユニットテストは 100ms 未満に保ちます
- 決定論的: テストは常に同じ結果を生成するべきです
- 明確な失敗: アサーションメッセージは何が問題だったかを説明するべきです
フレームワークの選択
- Jest: JavaScript/TypeScript プロジェクト(React、Node.js)
- Pytest: Python プロジェクト(Django、Flask、FastAPI)
- JUnit: Java プロジェクト(Spring、Android)
- Vitest: モダンな Vite ベースのプロジェクト
多言語対応
TypeScript/JavaScript
- フレームワーク: Jest、Vitest、Mocha、Jasmine
- ランナー: Node.js、Karma、Playwright
- カバレッジ: Istanbul/nyc、c8
Python
- フレームワーク: Pytest、unittest、nose2
- ランナー: pytest、tox、nox
- カバレッジ: coverage.py、pytest-cov
Java
- フレームワーク: JUnit 5、TestNG、Mockito
- ランナー: Maven Surefire、Gradle Test
- カバレッジ: JaCoCo、Cobertura
制限事項
スコープ
- ユニットテストに注力: 主にユニットテストに最適化されています(統合テストには異なるパターンが必要です)
- 静的解析のみ: テストを実行したり、実際のコードの振る舞いを測定することはできません
- 言語サポート: TypeScript、JavaScript、Python、Java に対する最良のサポート(その他の言語は限定的です)
カバレッジ分析
- レポートへの依存: 既存のカバレッジレポートが必要です(カバレッジをゼロから生成することはできません)
- フォーマットサポート: LCOV、JSON、XML のみ(その他のフォーマットは変換が必要です)
- 解釈のコンテキスト: カバレッジの数値が意味を持つかどうかは人間の判断が必要です
テスト生成
- ベースライン品質: 生成されたテストは足場を提供するものであり、人間によるレビューと改良が必要です
- 複雑なロジック: 高度なビジネスロジックと統合シナリオには手動でのテスト設計が必要です
- モック戦略: モック/スタブの戦略はプロジェクトのパターンに合わせるべきです
フレームワークとの統合
- 設定が必要:テストランナーには適切な設定が必要です(このスキルは package.json や pom.xml を変更しません)。
- バージョンの互換性:生成されるコードは、最近の安定バージョンを対象としています(Jest 29+、Pytest 7+、JUnit 5+)。
このスキルを使用しない場合
- E2E テスト:専用の E2E ツール(Playwright、Cypress、Selenium)を使用してください。
- パフォーマンステスト:JMeter、k6、または Locust を使用してください。
- セキュリティテスト:OWASP ZAP、Burp Suite、またはセキュリティに特化したツールを使用してください。
- 手動テスト:人による探索的テストが必要なシナリオもあります。
ワークフローの例
ワークフロー 1:要件からテストを生成
Input: User story + API specification
Process: Parse requirements → Generate test cases → Create test stubs
Output: Complete test files ready for implementation
ワークフロー 2:カバレッジを改善
Input: Coverage report + source code
Process: Identify gaps → Suggest tests → Generate test code
Output: Prioritized test cases for uncovered code
ワークフロー 3:TDD で新機能を開発
Input: Feature requirements
Process: Guide red-green-refactor → Validate each step → Suggest refactorings
Output: Well-tested feature with clean code
ワークフロー 4:フレームワークを移行
Input: Tests in Framework A
Process: Parse tests → Translate patterns → Generate equivalent tests
Output: Tests in Framework B with same coverage
統合ポイント
CI/CD との統合
- CI アーティファクトからカバレッジレポートを解析
- カバレッジバッジとレポートを生成
- カバレッジのしきい値に達しない場合、ビルドを失敗させる
- カバレッジの推移を継続的に追跡
IDE との統合
- 選択したコードのテストを生成
- 保存時にカバレッジを分析
- テストされていないコードパスを強調表示
- テストの不足に対するクイックフィックスを提案
コードレビュー
- PR のテストカバレッジを検証
- テスト品質の基準を確認
- 不足しているテストシナリオを特定
- マージ前に改善を提案
バージョンサポート
- Node.js:16+(Jest 29+、Vitest 0.34+)
- Python:3.8+(Pytest 7+)
- Java:11+(JUnit 5.9+)
- TypeScript:4.5+
関連スキル
このスキルは、以下のスキルと併用すると効果的です。
- code-review:レビュー中にテスト品質を検証
- refactoring-assistant:リファクタリング中にテストを維持
- ci-cd-helper:パイプラインにカバレッジを統合
- documentation-generator:テストのドキュメントを生成
コメント
Markdown 対応