testing について
Appleプラットフォームアプリ向けに、TDDのワークフローとテスト基盤を提供するClaude Codeスキル集です。新規・既存のコードベースに対応し、バグの再現やリファクタリングの保護から、テストのひな型や決定的なチェックまで扱います。
主な機能
- 01機能開発とバグ修正のレッド・グリーン・リファクタ
- 02特性テストとリファクタリングの保護
- 03契約テストと統合テストのひな型
- 04スナップショットテストとテストデータファクトリー
- 05アーキテクチャ、カバレッジ、ミューテーションの検査
活用シーン
- 01新規コードベースでTDDによる機能開発
- 02修正の実装前にバグを再現
- 03リファクタリング中に既存動作を保護
- 04プロジェクト固有のアーキテクチャとカバレッジの基準設定
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ rshankras/ claude-code-apple-skills --skill testingインストール後、Claude Code で/testingを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
coverage-ratchet/templates/coverage-gate.shcrap-report.shfitness-functions/templates/ContractPinTests.swiftImportBoundaryTests.swiftNetworkSentinelTests.swiftmutation-testing/templates/muter.conf.ymltdd-feature/rules/swiftlint.yml詳細
テストと TDD のスキル
Apple プラットフォームアプリ向けのテスト駆動開発ワークフローとテスト基盤です。新規および既存のコードベースに対応しています。
このスキルが有効になるタイミング
次のような場合にこのスキルを使用します。
- AI が生成したコードで TDD(テスト駆動開発)を行いたい
- 既存コードをリファクタリングする前にテストを追加する必要がある
- レッド・グリーン・リファクタリングのサイクルでバグを修正したい
- テスト基盤(ファクトリー、モック、コントラクト)が必要
- スナップショットテストやビジュアルリグレッションテストについて知りたい
- テストを通じて AI が生成したコードの正しさを確認したい
- エージェントが書いたコードに決定論的なゲート(アーキテクチャの不変条件、カバレッジの下限、ミューテーション監査)を設けたい
利用可能なスキル
既存のコードベース向け
characterization-test-generator/ リファクタリング前に既存コードの現在の動作を記録します。コードが実際に何をするか(どう動くべきかではなく)を記録するテストを生成し、AI 支援によるリファクタリングの安全網を提供します。
tdd-bug-fix/ 再現を優先するバグ修正ワークフローです。まずバグを示す失敗テストを書いてから、修正します。バグの再発を防ぎます。AI が修正を生成する場合に特に重要です。
tdd-refactor-guard/ リファクタリング前の安全チェックリストです。AI が既存コードに手を加える前に、テストカバレッジがあることを確認します。「安全網なしでリファクタリングする」問題を防ぎます。
新規コード向け
tdd-feature/ 新機能向けのレッド・グリーン・リファクタリングのひな形です。まず失敗するテストを生成し、それを通す実装へと導いた後、リファクタリングします。TDD の中核となるワークフローです。
test-contract/ プロトコル/インターフェースのテストスイートです。コントラクト(例:「どの DataStore も、空の状態、単一アイテム、100 個のアイテム、エラーに対応する必要がある」)を定義すると、あらゆる実装が通過すべきテストスイートを生成します。
インフラストラクチャ
snapshot-test-setup/ swift-snapshot-testing を使った SwiftUI のビジュアルリグレッションテストです。スナップショットテストのひな形、設定、CI 連携を生成します。
test-data-factory/ モデル用のテストフィクスチャファクトリーです。ひな形のデータ設定をなくし、テストの作成を効率化します。Builder パターンと静的ファクトリーメソッドに対応しています。
integration-test-scaffold/ モックサーバー、インメモリストア、テスト設定を備えたモジュール横断テストハーネスです。ネットワーキング、永続化、ビジネスロジックを組み合わせてテストします。
flow-walkthrough/ シミュレーターで各ユーザーフローを実行し(XCUITest と各ステップのスクリーンショット)、ナビゲーショングラフの行き止まりを監査し、人間が機能を発見できるかを確認します。
決定論的なゲート
fitness-functions/ アーキテクチャのフィットネス関数です。プロジェクトの厳格なルール(モジュールのインポート境界、オフライン保証、件数/文言のコントラクト)を、プロジェクト自身のテストターゲット内から適用するテストです。文章で記述された制約を終了コードに変換します。
coverage-ratchet/ 下限が引き上げられることはあっても、下がることはないカバレッジ下限です。コミットされたベースラインによって、アプリターゲットの行カバレッジがその値を下回ることを禁止し、生成された xccov スクリプトでゲートします。参考情報として、CRAP レポート(複雑度 × 未カバー箇所)も含まれます。
mutation-testing/ 実験的な、参考情報のみのミューテータ設定です。エンジンターゲットに限定され、生き残ったミュータントから、カバーされていてもアサーションのないコードを見つけられます。マージゲートとしては使用しません。手動で意図的にコードを壊す代替手順も含まれます。
使い方
- ユーザーが新規コードと既存コードのどちらに取り組んでいるかを特定します
- 該当するスキルの SKILL.md を読み、詳細なワークフローを確認します
- プロジェクトのコンテキスト(テストフレームワーク、アーキテクチャ、既存のテスト)を把握します
- スキルのワークフローに従ってテストを生成します
- テストがコンパイルされ、実行できることを確認します
test-generator との関係
generators/test-generator/ スキルは、テストのボイラープレート(ユニットテスト、統合テスト、UI テスト)を生成します。これらのテストスキルは相互に補完するもので、単にテストファイルを生成するのではなく、ワークフローと方法論(TDD サイクル、特性テスト、コントラクト)に重点を置いています。
相互参照:
- 「このクラスにテストを追加して」には
test-generatorを使用します - 「この新機能を TDD で開発したい」には
testing/tdd-featureを使用します - 「これを安全にリファクタリングしたい」には
testing/characterization-test-generatorを使用します - 「このバグを修正して、二度と再発しないようにして」には
testing/tdd-bug-fixを使用します