Share
Embed
生成AIエージェントを用いた、 手動テスト手順書から自動テストへの 変換手法の検討
2026/9/11開催
ソフトウェア品質シンポジウム(SQiPシンポジウム) 2026 B3-1 経験発表資料
MagicPod
September 11, 2026
Transcript
56 slides
-
目次 1. はじめに 2. 取り組みの背景 3. テスト手順書の特徴の違い 4. テスト手順書の変換の手法 5.
手法の評価 6. 活用事例 7. まとめ -
自己紹介 MagicPod エバンジェリスト 伊藤 由貴 / Yoshiki Ito QAエンジニア・テスト自動化エンジニアを 10年以上経験。
テスト自動化技術の普及推進チーム立ち上げや、 事業会社でのQAチーム立ち上げを経て、 2025年よりMagicPodエバンジェリスト。 『ソフトウェアテスト技法練習帳』共著。 JSTQBテスト自動化エンジニアシラバス 翻訳メンバー。 -
目次 1. はじめに 2. 取り組みの背景 3. テスト手順書の特徴の違い 4. テスト手順書の変換の手法 5.
手法の評価 6. 活用事例 7. まとめ -
目次 1. はじめに 2. 取り組みの背景 3. テスト手順書の特徴の違い 4. テスト手順書の変換の手法 5.
手法の評価 6. 活用事例 7. まとめ -
手動テスト手順書の特徴 操作手順や確認項目の記述の抽象度が高い テスト担当者のドメイン知識や経験を前提とした省略が存在 例: 「初期状態に戻す」 「承認フローを通す」 1ケースの粒度が細かい ユーザーが行う一連の処理が複数のテストケースに分かれている テストケース間の依存関係が強い 手順書の上から下へと続けて実行した場合の効率が最大化されている
前のテストケースの終了状態が次のテストケースの事前条件 開いている画面や作成したデータ等を引き継ぐ前提 -
自動化に適したテスト手順の特徴 操作手順や確認項目の記述が具体的 画面や要素、値を明示した手順が必要 AIエージェントが画面を操作しながら探索する技術や手法もあるが、今回の背景のようにま とまった量のテストケースを自動化する場合には、手順側の具体化のほうが効果的と判断 1ケースの粒度がユーザーの一連の操作に対応 手動テストの粒度をそのまま自動化すると、テストケース数が増え、実行時間や保 守コストも増大する恐れがある テストケースが独立して実行可能 前のテストの状態やデータに依存せず、事前準備が自己完結している
自動実行は手動実行に比べて多少の事前準備オーバーヘッドが許容されるため、依存関係の 解消を優先 -
手順書の差異を中間ファイルの作成で解決 ここまでの内容から、手動テスト手順書を自動テストに変換する場合、 操作手順・期待結果の曖昧さ テストケースの粒度、およびテストケース間の依存関係のミスマッチ が問題。 そこで、生成AIを用いて中間ファイル=自動化用のテスト手順書を作成する。 本発表の主な範囲 Input 手動テスト手順書 (Excel)
中間ファイル 自動化用 テスト手順書 Output 自動テストスクリプト (各種ツール) -
目次 1. はじめに 2. 取り組みの背景 3. テスト手順書の特徴の違い 4. テスト手順書の変換の手法 5.
手法の評価 6. 活用事例 7. まとめ -
手動テスト手順書から自動テスト手順への変換フロー 手動テストケース (全量) 追加知識 (マニュアル等) 自動化可否 判断 画面遷移図 作成 曖昧箇所
検出・修正 画面遷移図 自動化候補 テストケース 自動化候補 テストケース CRUD ・依存分類 依存関係 分析 テストケース 再構成 自動化用 テスト手順書 -
手動テスト手順書から自動テスト手順への変換フロー 手動テストケース (全量) 追加知識 (マニュアル等) 自動化可否 判断 画面遷移図 作成 曖昧箇所
検出・修正 画面遷移図 自動化候補 テストケース 自動化候補 テストケース CRUD ・依存分類 依存関係 分析 テストケース 再構成 自動化用 テスト手順書 -
手動テスト手順書から自動テスト手順への変換フロー 手動テストケース (全量) 追加知識 (マニュアル等) 自動化可否 判断 画面遷移図 作成 曖昧箇所
検出・修正 画面遷移図 自動化候補 テストケース 自動化候補 テストケース CRUD ・依存分類 依存関係 分析 テストケース 再構成 自動化用 テスト手順書 -
手動テスト手順書から自動テスト手順への変換フロー 手動テストケース (全量) 追加知識 (マニュアル等) 自動化可否 判断 画面遷移図 作成 曖昧箇所
検出・修正 画面遷移図 自動化候補 テストケース 自動化候補 テストケース CRUD ・依存分類 依存関係 分析 テストケース 再構成 自動化用 テスト手順書 -
目次 1. はじめに 2. 取り組みの背景 3. テスト手順書の特徴の違い 4. テスト手順書の変換の手法 5.
手法の評価 6. 活用事例 7. まとめ -
本手法の評価 自動化用テスト手順書の良し悪しを単独で評価することは困難なため、 今回はテスト自動化ツールに取り込んだ自動テストが期待通り動作するか で、間接的に中間処理の成果を評価することとした。 評価の範囲 本手法の範囲 Input 手動テスト手順書 (Excel) 中間ファイル
自動化用 テスト手順書 Output 自動テストスクリプト (各種ツール) -
補足:応募時点からの状況変化 経験発表への応募時点では本手法による効果が大きい状態であったが、このあと 共有する最新の結果では、手法有無による成功率の差分が少なくなっている。 環境:Claude Desktop Opus4.7 + MagicPod Autopilot MagicPod
45.45% 77.27% 当初本手法は成功率向上を目的の一つとしていたが、AIモデルおよびテスト自動 化ツール側の機能追加や能力向上により、本手法なしの場合の成功率は今後も向 上すると予想される。 今後は、テストケース粒度の調整や依存関係の最適化など、「より保守性の高い 自動テストを生成するための中間処理」として考えるほうが望ましい。 -
評価方法 1. 本手法の有無による自動化成功率の変化 本手法を適用した自動テスト向けテスト手順を介して変換した場合 単純に「このテスト手順書を自動化して」とAI&自動化ツールに指示した場合 前者のほうが成功率が高ければ、手法が有効であると考えられる 自動化成功率の考え方は次頁 2. ツールによる成功率変化の影響 本手法の有無による成功率の変化を、PlaywrightAgents、MagicPodの2種類のツ
ールで確認 いずれのツールでも、手法適用時のほうが成功率が高ければ、ツールを問わずに有効である ことが期待される -
結果概要 ブラウザテストのサンプル22ケースでの自動テストの成功率 MagicPod 73.91% 100% Playwright 82.61% 100% MagicPod: Claude
Desktop(Sonnet5 Medium) + MagicPod MCP, Playwright: ClaudeCode(Sonnet5 Medium) + Playwright Agents -
目次 1. はじめに 2. 取り組みの背景 3. テスト手順書の特徴の違い 4. テスト手順書の変換の手法 5.
手法の評価 6. 活用事例 7. まとめ -
MagicPodで実際に行なっているフローのイメージ Phase1 分析 テスト手順書 補助資料 自動化可 否判断 分析レポート 画面遷移 図作成
画面遷移図 テストケ ース分析 テストケース Phase2 設計 Phase3 実装 共通関数 設計 共通関数 設計書 プロンプ ト作成 自動化 プロンプト 自動テス ト設計 自動テスト 手順書 自動化 自動テスト 自動化ログ -
目次 1. はじめに 2. 取り組みの背景 3. テスト手順書の特徴の違い 4. テスト手順書の変換の手法 5.
手法の評価 6. 活用事例 7. まとめ -
プロンプト実例:テストケースの再構成 合意した粒度方針に基づき、まずCRUD・依存関係の分析を行い、その結果をもとにグルーピング・分割を判断する。 1. **CRUD・依存関係の分析(先行)**: 後述のA〜E属性(特にA: 操作の性質・D: 依存関係)を 仮判定する。これにより「どのテストケースを一緒にまとめられるか」「どこで分割すべきか」が見えてくる 2. 粒度方針に従い、仮判定結果を踏まえて関連するテストケースをグルーピングする
3. グルーピングしたテストケース群について必要に応じて再分割する - 手順の長さ(目安: 20手順超)は意味のある区切りで分割する 4. 再構成後の各テストケースに新しいID(再構成後テストケースID)を付与する。 5. **トレーサビリティの確認**: 母集団に存在する元テストケースIDが、再構成後のいずれかのテストケースに1件以上 対応していることを確認する。対応漏れがあれば再構成のミスとして扱い、修正する 6. **[レビュー]** 再構成結果(グルーピング方針・トレーサビリティ確認結果)をユーザーに提示し、合意を得る -
プロンプト実例:依存関係分析観点 **A. 操作の性質** **D. 依存関係** | 分類 | 判定基準 |
| ------ | --------- | | 判定 | 基準 | | 参照 | データ・設定を一切変更しない | | :----: | ------ | | 作成 | 新しいデータを追加する | | 独立 | 他テストに依存しない | | 変更 | 既存のデータまたは設定を書き換える | | 順序依存 | 特定テスト実行後の状態を前提とする | | 削除 | データまたは設定を削除・無効化する | | データ依存 | 他テストが作成するデータを使用する | **B. データ準備の要否** **E. 手順の抽象度** | 判定 | 基準 | 対応方針 | | 判定 | 基準 | | :----: | ------ | --------- | | :----: | ------ | | 不要 | 参照のみ、または作成がテスト対象 | そのまま実行可能 | | 具体的 | 操作対象・操作内容・期待結果がすべて明示 | | テスト内作成 | 編集・削除対象のデータをテスト冒頭で作成できる | エポック時変数で名称重複防止 | 部分的に曖昧 | 一部の手順で不明確 | | | 抽象的 | WHATのみでHOWがない | | 外部準備 | テスト内で作成困難 | Setupケースとして設計 | **C. 後片付けの要否** | 判定 | 基準 | 対応方針 | | :----: | ------ | --------- | | 不要 | 参照のみ、または他テストに影響しない | 後片付け不要 | | テスト内復元 | テスト末尾で元に戻せる | 復元ステップを含める | | Teardown必要 | 復元が複雑 | Teardownケースとして設計 | -
プロンプト実例:自動化可否判定 A〜Eの判定結果を総合し、各テストケースを以下に分類する: | トラック | 条件 | | :-------: |
------ | | ファストトラック | コマンドマッチング全て明確、操作の性質が「参照」か「作成」、データ準備不要orテスト内 作成、依存なし、手順が具体的 | | ノーマルトラック | 一部不明確だがClaudeの推測で補完可能 | | 要確認トラック | 抽象的、外部準備が必要、または自動化困難パターンの「要確認基準」に該当する操作を含む | | 投入見送り | 自動化困難パターンの「不可基準」に該当 | -
プロンプト実例:共通処理の切り出し #### 共有ステップ化の判断基準 以下の2パターンのいずれかに該当する操作を共有ステップ化する。それ以外はインライン実装とする。 - 繰り返し登場する操作列 - 複数のテストケースで同じ操作列が登場する。画面到達手順の共通化もここに含む(画面ごとの共有ステップをさら に呼び出す上位共有ステップとして実現する) -
2テストケース以上で登場する場合に共有ステップ化 - バリエーション操作 - 同一テストケース内で同じ操作を異なる入力値/状態で繰り返す。呼び出し前に変数(`${変数名}`)に値をセット し、共有ステップを繰り返し呼び出す形で実現する - 同一テストケース内で3回以上繰り返す場合に共有ステップ化 共有ステップ化しないケース: 1つのテストケースでしか使わない操作 / テストケース固有の状態に強く依存する操作