品質保証のパラダイムは変化しました。もはやスクリプトを書くだけではなく、アーキテクチャ、カバレッジ、速度が求められる時代です。現代のAIは、定型コードの生成、セレクタの最適化、複雑な競合状態のデバッグを数時間ではなく数秒で行える、QA自動化エンジニアにとって重要なパートナーへと進化しています。
以下のプロンプトは、主要なAIパワーハウス:ChatGPT、Gemini、Claude、DeepSeek向けに厳密にテスト・最適化されています。各モデルには固有のアーキテクチャ上の強みがあります(DeepSeekの論理処理はGeminiのコンテキスト処理とは異なります)が、これら10のプロンプトは、SeleniumまたはPlaywrightを使用するあらゆるQA自動化エンジニアに、普遍的で高効率な基盤を提供します。
1. 堅牢なページオブジェクトモデル(POM)の生成
最適モデル: Claude(厳格なアーキテクチャパターンとクリーンなコード構造の維持に優れています)。
定型のページオブジェクトクラスを書く作業は反復的です。このプロンプトは、AIにページオブジェクトモデルデザインパターンを厳密に遵守させ、関心の分離と保守性を確保します。
シニアQA自動化エンジニアとして行動してください。[フレームワーク: Playwright/Selenium] 用の、以下のページを表すページオブジェクトモデル(POM)クラスを [言語: 例: TypeScript/Java] で作成してください:
[ページの説明またはHTMLスニペットをここに挿入]
要件:
1. 業界のベストプラクティス(例:汎用的なCSSよりもdata-testidを優先)を使用した厳格なロケータを定義する。
2. ユーザーインタラクションのための意味的なメソッドを作成する(例:単にボタンをクリックするのではなく、`login()`)。
3. 要素の可視性に対するエラーハンドリングを含める。
4. ページオブジェクトメソッド内にアサーションを含めない。
得られるもの: ページクラスの退屈なセットアップを排除し、テストロジックとページメカニズムを分離した、クリーンでスケーラブルなアーキテクチャでテストスイートを開始できます。
2. 手動テストケースから自動化スクリプトへの変換
最適モデル: ChatGPT(自然言語のテストステップを解釈しコードに変換するのに非常に汎用性が高い)。
このプロンプトは、手動QAと自動化の間のギャップを埋め、Gherkin構文やスプレッドシートのステップを迅速に実行可能なコードに変換します。
以下の手動テストケースがあります:[機能名]
[手動ステップまたはGherkinシナリオを貼り付け]
これを [フレームワーク: Playwright/Selenium] と [言語] を使用した自動化テストスクリプトに変換してください。
- すべての検証ポイントに対してアサーションを実装する。
- 該当する場合はasync/awaitパターンを使用する。
- 複雑なロジックを説明するコメントを追加する。
- 既存の `baseTest` フィクスチャが利用可能であると仮定する。
得られるもの: JiraチケットからIDEへテストケースを移すのに必要な「翻訳時間」を大幅に削減し、構文ではなくエッジケースに集中できるようになります。
3. 不安定なテストと競合状態のデバッグ
最適モデル: DeepSeek(複雑な論理分析とコード推論で定評があります)。
不安定なテストはCI/CDの敵です。このプロンプトは、人間の目にはすぐには明らかにならないタイミング問題、競合状態、不適切な待機戦略を特定するためにAIを活用します。
以下のテストコードスニペットと関連するエラーログを分析してください。このテストが不安定な(断続的に失敗する)理由を特定してください。
コード:
[コードスニペットを挿入]
エラーログ:
[エラーログを挿入]
分析の焦点:
1. 潜在的な競合状態。
2. ハードウェイトと動的ウェイトの不適切な使用。
3. DOM状態の不整合。
決定論的な実行を保証するリファクタリングされたソリューションを提供してください。
得られるもの: 単純な構文修正を超えて、不安定性の根本原因を特定し、CIパイプラインを安定させ、誤検知を減らします。
4. 回復力のあるXPathとCSSセレクタの生成
最適モデル: ChatGPT(パターンマッチングと様々なセレクタオプションの生成に強い)。
脆弱なセレクタは、UIが変更されるとテストを壊します。このプロンプトは、小さなDOMの更新に対して耐性のある堅牢なロケータを生成します。
以下はHTMLコードのスニペットです:
[HTMLスニペットを貼り付け]
要素:[要素名/説明] に対して、3つの異なるセレクタ戦略を生成してください。
1. 堅牢なCSSセレクタ(ID、Name、Data属性などの属性を優先)。
2. 相対XPath(絶対パスを避ける)。
3. Playwright/Selenium固有のロケータ戦略(例:`getByRole` または `text=`)。
信頼性でランク付けし、なぜ最上位の選択肢が最も安定しているのか説明してください。
得られるもの: 利用可能な最も安定した属性ベースのロケータを使用していることを保証し、「脆い」テストを防ぎ、保守のオーバーヘッドを削減します。
5. データ駆動型テストシナリオの作成
最適モデル: Gemini(より大きなコンテキストと構造化データの生成を扱うのに優れています)。
単一の入力のテストでは不十分です。このプロンプトは、境界値やエッジケースを含む多様なデータセットを生成することで、カバレッジを拡大します。
[入力フィールド名、例:クレジットカードフィールド/日付ピッカー] に対してデータ駆動型テストを実行する必要があります。
以下のものを含む10のテストシナリオを含むJSONまたはCSVデータセットを生成してください:
1. 有効な入力。
2. 境界値(最小/最大長)。
3. 無効な形式(特殊文字、SQLインジェクション試行)。
4. Null/空の状態。
次に、このデータを反復処理する [フレームワーク] でのパラメータ化されたテストループを記述してください。
得られるもの: 手動でバリエーションを書くことなく、予期しないまたは悪意のある入力をアプリケーションがどのように処理するかを明らかにし、テストカバレッジを瞬時に倍増させます。
6. レガシーコードのモダンな標準へのリファクタリング
最適モデル: DeepSeek(リファクタリングロジックのための強力なコード理解力)。
フレームワークは進化します。このプロンプトは、レガシーなSeleniumコードを近代化したり、Playwrightスクリプトを最新の構文と機能を活用するように更新するのに役立ちます。
以下のレガシーな [Selenium/Playwright] コードスニペットをレビューしてください:
[古いコードを挿入]
このコードをモダンなベストプラクティスに合わせてリファクタリングしてください:
1. 明示的な待機をフルーエントな待機戦略または自動待機に置き換える。
2. コールバックチェーンをモダンなasync/await構文に変換する。
3. 非推奨のメソッドを削除する。
4. 可読性とパフォーマンスのために最適化する。
得られるもの: フレームワークが新機能をリリースするにつれて技術的負債が蓄積するのを防ぎ、コードベースを健全かつ効率的に保ちます。
7. API統合テストの生成
最適モデル: Claude(技術的なニュアンスと構造化されたリクエスト/レスポンスの検証を扱うのに優れています)。
モダンなQAでは、フロントエンドだけでなくバックエンドのテストも必要です。このプロンプトは、UI自動化と並行して実行できるAPIテストの作成を支援します。
以下のエンドポイントに対して [ツール: Playwright APIRequestContext / RestAssured] を使用したAPIテストを記述してください:
エンドポイント:POST /api/v1/user
ペイロード:{ "username": "string", "email": "string" }
要件:
1. 有効なペイロードを使用したポジティブテストケースを作成する。
2. 必須フィールドが欠落しているネガティブテストケースを作成する。
3. ステータスコード(200/400)だけでなく、JSONレスポンスボディの構造も検証する。
得られるもの: UIのみのテストと比較してより速いフィードバックループを得るために、APIテストを迅速に立ち上げることができるようになり、「テストピラミッド」アプローチを促進します。
8. 自己修復テストロジックの実装
最適モデル: DeepSeek(ロジック重視の問題解決)。
このためのツールは存在しますが、独自の軽量な自己修復ロジックをスクリプト化できます。このプロンプトは、AIに、失敗時に代替戦略を試みるtry-catchブロックでインタラクションをラップするように依頼します。
基本的な自己修復ロジックを実装する、[言語/フレームワーク] での 'Click' アクションのラッパー関数を記述してください。
関数は以下を行うべきです:
1. プライマリロケータのクリックを試みる。
2. 失敗した場合(ElementNotFoundまたはIntercepted)、例外をキャッチし、セカンダリのフォールバックロケータを試みる。
3. フォールバックが使用された場合は警告をログに記録し、後でテストを更新できるようにする。
得られるもの: 夜間実行中のテスト実行の回復力を高め、小さなUI変更がテストの連鎖的な失敗を引き起こさないようにします。
9. 視覚的回帰テストのセットアップ
最適モデル: ChatGPT(一般的な設定とセットアップ手順に適しています)。
視覚的なバグは機能的なアサーションでは捕捉が難しいです。このプロンプトは、視覚的比較のための定型文をセットアップします。
[ツール: Playwright Visual Comparisons / Applitools SDK] を使用して視覚的回帰テストを実装したいです。
以下のコードスニペットを提供してください:
1. 特定のコンポーネント [コンポーネント名] のスクリーンショットを撮る。
2. ベースライン画像と比較する。
3. レンダリングピクセルによる不安定な差分を避けるために、しきい値許容範囲を0.5%に設定する。
得られるもの: 「間違い探し」ゲームを自動化し、手動の視覚的検証なしでピクセルパーフェクトなUI実装を保証します。
10. Cucumberステップ定義の生成
最適モデル: Gemini(テキストパターンをコードブロックにマッピングするのに効率的)。
BDDを使用するチームにとって、フィーチャーファイルをコードにマッピングする作業は反復的です。このプロンプトはマッピングを自動的に処理します。
以下はGherkinフィーチャーファイルの内容です:
[フィーチャーファイルを貼り付け]
[言語/フレームワーク] で対応するステップ定義ファイルを生成してください。
- スケーラブルな引数のために正規表現パターンを使用する(例:数値や引用符付き文字列のキャプチャ)。
- 可能な場合はステップを再利用可能にする。
得られるもの: BDD実装の摩擦を取り除き、英語をJava/TypeScriptに接続する接着コードではなく、アプリケーションの振る舞いに集中できるようにします。
プロのヒント:コンテキスト注入
Claude や DeepSeek から絶対的に最高の結果を得るには、決して真空状態でセレクタを求めないでください。常に「コンテキストを注入」してください。スクリプトを求める前に、関連するHTML DOM構造やAPI Swagger定義をチャットに貼り付けてください。最初に package.json や pom.xml ファイルを貼り付け、「次のリクエストのためにこの設定を記憶してください」と言うことさえできます。これにより、AIはあなたが使用している正確なライブラリとバージョンを認識し、互換性のないコードを提案するのを防ぎます。
QA自動化エンジニアの役割は、「スクリプト作成者」から「自動化アーキテクト」へと進化しています。構文、定型文、セレクタ生成といった重労働をAIに委任することで、戦略、エッジケース、ユーザーエクスペリエンスに集中するための精神的余裕を生み出せます。これらのプロンプトを日常のワークフローに統合し始めて、単に速く働くのではなく、より賢くテストしてください。
