browser-qa について
browser-qaは、Playwrightと実際のChromiumブラウザーでWebアプリを検査するスキルです。フロントエンド開発者向けに、ページ状態、レスポンシブ表示、操作、ナビゲーションを確認し、構造化されたQAレポートを作成します。
主な機能
- 01PlaywrightとChromiumによる実ブラウザーテスト
- 02ページ状態とネットワークの確認
- 03デスクトップとモバイルのレイアウト確認
- 04フォーム、リンク、操作要素のテスト
- 05QAレポートと失敗時のスクリーンショット
活用シーン
- 01プルリクエスト前のフロントエンド機能確認
- 02デプロイ後のWebアプリのスモークテスト
- 03報告された表示や操作の不具合調査
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ c0x12c/ ai-toolkit --skill browser-qaインストール後、Claude Code で/browser-qaを入力して読み込まれたか確認します。
同梱ファイルplaywright-snippets.md
詳細
ブラウザー QA スキル
実際のブラウザーを使って Web アプリをテストします。ユーザーが気づくバグを見つけます。
使用するタイミング
- フロントエンド機能を構築した後
- UI 変更の PR を作成する前
- ユーザーから「何か表示がおかしい」と報告されたとき
- デプロイ後のスモークテスト
このスキルでできること
- 実際の Chromium で Playwright を起動します
- アプリ内で見つけられるすべてのページにアクセスします
- コンソールエラー、ネットワーク障害、アセットの破損を確認します
- インタラクティブ要素(フォーム、ボタン、リンク)をテストします
- モバイルでのレスポンシブ対応を検証します
- 構造化された QA レポートを作成します
QA チェック項目
1. ページの健全性
すべてのページで以下を確認します:
- HTTP ステータスが 2xx である
- JavaScript コンソールエラーがない
- 失敗したネットワークリクエスト(4xx/5xx)がない
- 画像やアセットの欠落がない
- 3 秒以内にページが読み込まれる
2. レイアウトとレスポンシブ対応
- デスクトップ(1280px):横スクロールや要素の重なりがない
- モバイル(375px):横スクロールがなく、テキストが読みやすく、ボタンをタップできる
- コンテンツが意図せず切り取られたり隠されたりしていない
3. インタラクティブ要素
- ボタン:クリックすると何かが起きる(反応しないボタンがない)
- リンク:クリックすると有効なページに移動する(404 がない)
- フォーム:空のまま送信すると検証メッセージが表示される。有効な内容で送信すると成功のフィードバックが表示される
- ドロップダウン/モーダル:開くとコンテンツが表示される。閉じるとコンテンツが隠れる
4. ナビゲーションフロー
- ナビゲーション内のすべてのリンクが有効なページに移動する
- 戻るボタンが想定どおりに動作する
- パンくずリスト(ある場合)が正確である
- 認証リダイレクトが機能する(保護されたページ → ログイン → 元のページに戻る)
5. データ表示
- リストにデータが表示される(データがあるのに空の状態にならない)
- ページネーションが機能する(ある場合)
- 検索/フィルターで結果が更新される
- データ取得中に読み込み状態が表示される
- API の失敗時にエラー状態が表示される
Playwright のパターンとレポートテンプレート
すぐに使える Playwright コード(ページテスト、モバイルのビューポート、フォームテスト、失敗時のスクリーンショット)と QA レポートテンプレートについては、playwright-snippets.md を参照してください。
注意点
networkidleは WebSocket やポーリングを使うアプリではいつまでも待機します。 アプリがライブ接続を使用している場合は、代わりにdomcontentloadedまたは特定の要素セレクターを使用してください。- 非表示の要素に対する
page.click()は、何事もなく成功します。 操作する前に、必ず要素が表示されていることを確認してください。まずawait expect(locator).toBeVisible()を使用してください。 - タッチ操作をシミュレートせずにモバイルのビューポートをテストしても、実際のバグを見逃します。 ビューポートサイズだけでなく、ブラウザーコンテキストに
hasTouch: trueを設定してください。 - コンソールの警告はコンソールエラーではありません。 React のハイドレーション警告や非推奨の通知をバグとして報告しないでください。バグとなるのは
console.errorと失敗したネットワークリクエストだけです。 - CI で撮影したスクリーンショットは、ローカル環境とは異なって見えます。 macOS と Linux では、フォントのレンダリング、アンチエイリアス、DPI が異なります。ピクセル単位の完全一致ではなく、視覚的な比較のしきい値を使用してください。
ルール
- 実際のブラウザーのみを使用します。 Playwright と Chromium を使用してください。HTTP のみのテストは禁止です。
- デフォルトではヘッドレスで実行します。 求められない限り、画面に表示されるウィンドウを開かないでください。
- 両方のビューポートをテストします。 デスクトップ(1280px)とモバイル(375px)をテストしてください。
- コンソールエラーはバグです。 必ず報告してください。
- 1 回限りの実行にします。 ブラウザーを起動し、テストして、終了します。デーモンは使用しません。
- 失敗時にスクリーンショットを撮影します。 問題が発生したときはスクリーンショットを撮影してください。
- 許可なく修正しないでください。 まず報告し、その後で修正を提案してください。
コメント
Markdown 対応