テスト戦略
体系的なテストアプローチでスキルが信頼性高く動作することを確認します。
テストマトリクス
3つの次元でスキルをテストします:
1. 通常の動作
スキルは典型的なユースケースで機能するか?
テストシナリオ:
- スコープ内の標準的なリクエスト
- リクエストの一般的なバリエーション
- 連続する複数の関連リクエスト
「React ガイドライン」スキルの例:
「ボタンコンポーネントを作成」
「ローディング状態のクリックハンドラーを追加」
「アクセシブルにする」
2. エッジケース
スキルは異常だが有効なリクエストを処理するか?
テストシナリオ:
- 境界条件
- 異常な組み合わせ
- 最小および最大の入力
例:
「空のコンポーネントを作成」
「20個のpropsを持つコンポーネントを作成」
「5レベルの深さのネストされたコンポーネント」
3. スコープ外
スキルは正しく保留または辞退するか?
テストシナリオ:
- スキルのドメイン外のリクエスト
- 関連しているように見えるがカバーされていないリクエスト
- スキルと競合する可能性のあるリクエスト
「React ガイドライン」スキルの例:
「データベースをセットアップするには?」
「Pythonスクリプトを書いて」
「代わりにVueを使うべき?」
テストチェックリスト
リリース前
- [ ] すべての文書化されたガイドラインをテスト
- [ ] 例が期待通りの出力を生成することを確認
- [ ] エッジケースがエラーを起こさないことを確認
- [ ] スコープ外の処理が適切であることを確認
- [ ] すべてのサポートされているプラットフォームでテスト
リリース後
- [ ] ユーザーフィードバックをモニター
- [ ] 実際のシナリオでテスト
- [ ] 人気のスキルとの競合をチェック
- [ ] 更新が既存の動作を壊さないことを確認
プラットフォーム固有のテスト
Claude Code
bash
# スキルをインストール
claude skill add your-username/skill-name
# プロジェクトでテスト
claude "テストプロンプトをここに"
# 動作を確認
# レスポンスがガイドラインに従っているかチェック
Codex CLI
bash
# スキルを追加
codex config add-skill your-username/skill-name
# テスト
codex "テストプロンプトをここに"
ChatGPT
- スキルの内容をカスタム指示に追加
- 新しい会話を開始
- プロンプトをテストしてレスポンスを確認
自動テスト
徹底的なテストのために、テストスイートを作成:
typescript
// skill-tests.ts
interface TestCase {
prompt: string;
expectedBehavior: string[];
shouldNotContain?: string[];
}
const testCases: TestCase[] = [
{
prompt: "Create a React button component",
expectedBehavior: [
"Uses functional component",
"Includes TypeScript types",
"Has accessibility attributes",
],
shouldNotContain: [
"class component",
"any type",
],
},
// テストケースを追加...
];
回帰テスト
スキルを更新する際:
- 現在の動作を文書化 - 現在の出力例を保存
- 変更を加える - スキルを更新
- 出力を比較 - 予期しない変更をチェック
- 改善を確認 - 意図した変更が機能することを確認
ユーザーテスト
広範なリリース前に:
- アルファテスト - 2〜3人の信頼できるユーザーでテスト
- フィードバックを収集 - 何が機能する?何が混乱する?
- 反復 - 改善を行う
- ベータテスト - より大きなグループでテスト
- リリース - マーケットプレイスに公開
一般的な問題のデバッグ
スキルが有効にならない
確認事項:
- スキルは正しくインストールされているか?
- プロンプトはスキルのドメインに関連しているか?
- より高い優先度の競合するスキルがあるか?
一貫性のない動作
確認事項:
- ガイドラインは十分に具体的か?
- 矛盾するルールがあるか?
- スキルが広すぎるか?
予期しない出力
確認事項:
- 例は明確か?
- コンテキストセクションは正確か?
- カバーされていないエッジケースがあるか?