6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

IDEだけでできる - AI AgentでMagicPodの失敗テストの原因を調査する簡単な方法

6
Last updated at Posted at 2026-01-06

Cursor などの AI Agent が使える IDE だけで、MagicPod の失敗テストについて 原因調査を行うシンプルな方法 を紹介します。

(この記事はMagicPodアドベントカレンダー2025の21日目です。本文はOpenAIのCodexを活用して作成しました。)


手順

  1. ローカルにアプリのリポジトリをクローンする。
  2. Cursor などの AI Agent がセットアップされた IDE でリポジトリを開く。
  3. MagicPod のテスト結果画面で「テスト失敗の理由を問い合わせる」ボタンを押し、問い合わせフォームに 添付されているファイルをすべてローカルにダウンロード する。
    ※ 実際に問い合わせフォームを送信する必要はありません。
  4. IDE を MagicPod の MCP サーバー に接続しておくとより安心ですが、ひとまず任意で問題ありません。
  5. 以下のようなプロンプトで AI Agent に質問を投げる。

テスト失敗・根本原因調査 依頼テンプレート

# Role
あなたは、大規模アプリケーションのデバッグとQAオートメーションに精通した「シニア・フルスタック・エンジニア」です。コードの静的解析と実行ログを照らし合わせ、問題の根本原因を技術的に特定するエキスパートとして振る舞ってください。

# Goal
提供されたリポジトリ情報とMagicPodのテスト結果を分析し、テスト失敗の「真の根本原因」を特定してください。
特に、テスト側の場当たり的な修正(Waitの追加など)ではなく、アプリ側の実装改善(パフォーマンス向上や安定性確保)による解決を最優先とします。

# Inputs
- **事象の概要**: {{EVENT_DESCRIPTION}}
- **再現頻度**: {{REPRODUCTION_FREQUENCY}}
- **リポジトリ・ソースコード**: [ここにコードやファイル構成を貼り付けるか、参照先を指定]
- **MagicPodテスト結果資料 (ログ/スクリーンショット情報)**: [ここにログを貼り付けるか、ファイルを指定]

# Analysis Process (Thinking Process)
回答を生成する前に、以下のステップで思考してください:
1. **ログ解析**: MagicPodのスタックトレースやエラーメッセージから、失敗時のDOM状態とタイムアウトの性質を特定する。
2. **コード照合**: 失敗した操作に対応するアプリ側のコンポーネント実装を確認する。
3. **ボトルネック特定**: 
   - 仮想化(Virtual List)が正しく動作しているか?
   - 配列のレンダリング上限やメモリリークの可能性はないか?
   - APIレスポンス待ちとUIの更新タイミングに不整合はないか?
4. **判定**: 「アプリの実装不備(Race Condition, Performance Issue等)」か「テストコードの不備(Flaky)」かを論理的に切り分ける。

# Evaluation Criteria (重点確認事項)
- **仮想化/無限スクロール**: 要素の再利用(Recycling)や、スクロール中のDOM消失がテスト失敗を招いていないか。
- **配列上限**: 大量データ読み込み時のメインスレッドのブロック。
- **タイミング**: テストが待機している要素が、アプリ側の非同期処理の都合で不安定になっていないか。

# Output Format
以下のMarkdown形式でレポートを作成してください。

---
## 1. 根本原因の説明
- **現象の要約**: なぜ失敗したのかを技術的に要約。
- **根拠**: ログの該当箇所やソースコードの行数を引用し、論理的な関連性を説明。

## 2. 修正案
### A. アプリケーション側の改善(最優先)
- 具体的な修正方針(例:仮想化ライブラリの導入、データのプリフェッチ、DOM構造の最適化など)。
### B. テスト側の改善(アプリ側に問題がない場合のみ)
- Flakyを解消するための堅牢なロケータの書き換えや、同期処理の提案。

## 3. 切り分け結果
- [ ] アプリ側に問題あり / [ ] テスト側のフレーク
- 判断理由の総括。

## 4. 必要な追加情報
- 現状の情報だけでは特定できない場合、確認すべきログや追加の調査項目。

---
**Reporter AI Model**: [使用しているモデル名を記載]

使ってみた所感

耐久テストなどでは、テスト実装側の問題によって失敗するケース も多く、
MagicPod のテスト失敗ログだけを渡されても、開発チーム側での調査が難しいことがあります。

そのような場合でも、

  • アプリのリポジトリ
  • MagicPod の失敗テスト詳細ログ
  • UI Tree
  • スクリーンショット

を突き合わせて AI Agent に調査させることで、

  • アプリ側の問題
  • 自動テスト側の問題

解像度高く切り分けてもらえる 点は、大きなメリットだと感じました。

また、自動テスト側を修正する場合も、UI Treeやスクリーンショットを渡しているため、AI Agent がテストを修正するための具体的なロケーターまで、そのままコピペできるレベルで作成してくれます。


補足

  • 「発生している事象の説明」を最初に詳しく書いておくことで、Agent がログやソースを読む際のコンテクスト理解の解像度が上がるようです。
  • ChatGPTとGeminiなど**複数のモデルでそれぞれ調査レポートを作成し、意見相違があれば付き合わせるようにすると、より精度が高くなり安心だと思います。
  • 原因調査に使ったCodexに、そのままこの記事の下書きも作ってもらいました。

MagicPodの公式サイトはこちらです。
https://magicpod.com/

6
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?