form-testing について
Cursor内蔵ブラウザーでアプリのフォームを体系的にテストするスキルです。フォームの発見、入力検証、境界ケースの確認、結果報告を案内します。
主な機能
- 01アクセシビリティスナップショットでフォームを発見
- 02空欄・無効値・有効値で送信をテスト
- 03二重送信と長文入力を確認
- 04特殊文字の処理とTab順を検証
- 05結果を報告し失敗を調査
活用シーン
- 01ログインや設定フォームの入力検証を監査
- 02実データに近い値で購入フォームを確認
- 03送信時のブラウザーやAPIのエラーを検出
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ spencerpauly/ awesome-cursor-skills --skill form-testingインストール後、Claude Code で/form-testingを入力して読み込まれたか確認します。
詳細
フォームのテスト
Cursor に組み込まれているブラウザーを使って、アプリ内のすべてのフォームを体系的にテストします。
ワークフロー
1. すべてのフォームを見つける
browser_snapshot を使ってアクセシビリティツリーを取得します。form 要素、または input、select、textarea 要素のグループを探します。
アプリのメインページを移動して、すべてのフォームを見つけます。
- ログイン/サインアップページ
- 設定/プロフィールページ
- 検索バー
- お問い合わせ/フィードバックフォーム
- チェックアウトフロー
- 入力欄のあるモーダル
2. 各フォームをテストする
各フォームについて、次の3つのテストを実行します。
テスト1:未入力で送信
- すべてのフィールドを空のままフォームを送信します
- 必須フィールドにバリデーションエラーが表示されることを確認します
- サーバーエラーが発生しないことを確認します(クライアント側でバリデーションされる必要があります)
テスト2:無効なデータ
- メールアドレス欄:
notanemailを入力します - パスワード欄:
a(短すぎる)を入力します - 数値欄:
abcを入力します - 電話番号欄:
12345を入力します - URL 欄:
not-a-urlを入力します - 適切なエラーメッセージが表示されることを確認します
テスト3:有効なデータ
browser_fillまたはbrowser_fill_formを使って、すべてのフィールドに現実的なテストデータを入力します- フォームを送信します
- 成功状態(リダイレクト、トースト、確認メッセージ)を確認します
browser_console_messagesでエラーを確認しますbrowser_network_requestsで失敗した API 呼び出しを確認します
3. エッジケースを確認する
- 二重送信:送信ボタンを素早く2回クリックします。二重送信が防止される必要があります
- 長い入力:非常に長い文字列(1000文字以上)を貼り付けます。切り詰められるか、拒否される必要があります
- 特殊文字:
<script>alert('xss')</script>を入力します。エスケープされる必要があります - タブ順序:Tab を使ってフォーカスがフィールド間を論理的な順序で移動することを、
browser_pressで確認します
4. 報告
Form Test Results:
Login form (/login):
Empty submit: PASS — shows "Email required", "Password required"
Invalid email: PASS — shows "Invalid email"
Valid submit: PASS — redirects to /dashboard
XSS check: PASS — input escaped
Settings form (/settings):
Empty submit: FAIL — submits without validation, returns 500
Valid submit: PASS — shows "Settings saved" toast
見つかった失敗を修正します。
コメント
Markdown 対応