MagicPodの失敗分析機能を使ってみた—AIによるテスト失敗原因の調査と修正提案
こんにちは、MagicPodでエバンジェリストをしているYoshiki Itoです。
テスト自動化を運用していると、避けて通れないのが「テストが失敗したときの原因調査」です。自動テストが増えるほど、失敗時に「なぜ失敗したのか」を確認する手間も増えていきます。
スクリーンショットを一つひとつ確認したり、実行ログを確認したりして
- プロダクトのバグなのか
- 自動テストの問題なのか
- 環境の問題か
などを切り分けるのはなかなか大変です。
今回は、最近リリースしたMagicPodの「失敗分析機能」をご紹介します。実際に使ってみて「これは良いぞ」と感じたポイントや気づいたことをお伝えします。
目次
テスト失敗時の原因調査は大変
テスト自動化は「テストの実行」を自動化してくれますが、「テストが失敗したときの原因調査」まで自動化してくれるわけではありません。
手動テストであれば、テスト実行中に画面を見ているので「ここがおかしい」とすぐに気づけます。しかし自動テストの場合、実行結果として返ってくるのは「Pass(OK)」か「Fail(NG)」かという情報と、スクリーンショットやログです。失敗したテストについて「なぜ失敗したのか」は人間が調べて判断する必要があります。
たとえば、100件のテストを一括実行して10件が失敗したとします。10件それぞれについて、スクリーンショットを確認し、どのステップで失敗したかを調べ、プロダクトのバグなのか、テストスクリプト側の問題なのか、あるいはタイミングの問題で一時的に失敗しただけなのかを切り分ける必要があります。
テスト自動化研究会が公開しているテスト自動化の8原則でも、原則の一つとして「テスト結果分析という新たなタスクが生まれる」ことが挙げられています。自動テストが失敗したとき、何が起きたのかを確認するのは人間であり、この分析作業のコストを軽減する仕組みが必要だということです。
先日のJaSST'26 Tokyoのセッションでも「運用が大事」というお話をしました。テスト自動化は導入して終わりではなく、日々の運用——つまり失敗原因の調査と、それに伴うテストの修正対応——を継続していくことが不可欠です。この運用の手間をいかに軽くできるかが、テスト自動化を長く続けていくためのポイントになります。
MagicPodの失敗分析機能とは
MagicPodの失敗分析機能は、テストが失敗した際にAIがその原因を自動で分析してくれる機能です。
具体的には、失敗したテストのスクリーンショット、エラーログ、テストステップの情報などをAIが読み取り、「なぜ失敗したのか」「どう対処すればよいか」を提示してくれます。
使ってみて気づいたこと
ここからは、実際に失敗分析機能を使ってみて気づいたポイントをお伝えします。
過去の実行結果の推移をもとに分析してくれる
個人的に一番「おっ」と思ったのがこの点です。
失敗分析機能は、特定のテスト結果だけを単独で見るのではなく、過去の実行結果の推移もあわせて参照してくれます。たとえば「前回までは成功していたのに今回だけ失敗した」のか、「最近ずっと失敗し続けている」のかによって、原因の見立ては大きく変わります。
前者であれば直近のプロダクト変更や環境の問題が疑われますし、後者であればテストスクリプト側の根本的な見直しが必要かもしれません。こうした推移を人間が毎回手動で追うのはかなり面倒ですが、AIが自動でやってくれるのはありがたいですね。
コメントを読んでテストの意図を理解してくれる
MagicPodではテストステップにコメントを記述できますが、失敗分析機能はこのコメントの内容をちゃんと読み取って、テストの「意図」を理解した上で原因を分析してくれます。
実際に見た分析結果の一例を紹介します。あるテストでは「人気フィードタブに記事が表示されていないことを確認」というコメントが付いていました。AIの分析過程にはこう書かれていました。
観察: スクリーンショットには「直近1週間の人気フィード」というタイトルが表示されており、その下に記事のアイキャッチ画像が複数表示されています。テストは「人気フィードタブに記事が表示されていないことを確認」というコメントがあるにもかかわらず、実際には記事のアイキャッチ画像が表示されています。
つまりAIは、コメントに書かれた「表示されていないことを確認」というテストの意図と、実際の画面に表示されている内容とを照合して、「意図と実際の画面が矛盾している」ことを指摘してくれたわけです。
テストのコメントをきちんと書いておくことで、AIの分析精度が上がるというのは良い発見でした。普段からコメントを丁寧に書いておくことの価値が、ここでも活きてきます。
設定ミスにも適切なアドバイスをくれる
失敗分析機能は、プロダクトのバグだけでなく、テストの設定ミスに対しても的確なアドバイスをくれます。
たとえば、ある失敗テストの分析結果では「モバイルエミュレーションは、現在Playwrightでご利用いただけません」という指摘が返ってきました。これはプロダクト側の問題ではなく、テスト一括実行の設定が正しくなかったケースです。
こうした「そもそも設定が間違っている」系の失敗は、慣れていないと原因にたどり着くまで時間がかかりがちです。AIがサッと教えてくれるのは助かります。
AIクレジットの消費量が思ったより少ない
AI機能というと「クレジットがどんどん減っていくのでは」と心配になるかもしれませんが、失敗分析機能のAIクレジット消費量は、使ってみた印象としてかなり控えめです。MagicPod Autopilotを使ってテストを作成・編集するのに比べると、失敗原因の調査にかかるクレジット消費量は少なく見えました。
もちろん、テスト対象のアプリケーションやテスト内容、テストの長さによって消費量は変わりうるので、その点はご留意ください。とはいえ、「コスト面が心配で機能をオンにできない」ということにはなりにくいのではないでしょうか。
一括実行時の自動分析が便利
失敗分析機能は個別のテスト結果に対して手動で実行することもできますが、一括実行(バッチ実行)時に自動で失敗分析を行う設定もできます。これがとても便利です。
たとえば夜間に一括実行を走らせておけば、朝出社したときには失敗テストの分析結果がすでに出ている、という運用が可能になります。「まず分析結果を確認して、対応が必要なものから着手する」というワークフローがスムーズに回せます。
AIクレジットの使いすぎが心配な場合は、上限設定ができるので安心です。あらかじめ上限を設定しておけば、それ以上のクレジットは消費されません。
一点補足しておくと、AIで確認コマンドの結果は失敗分析の対象外です。分析されるのはテストステップの実行に伴う失敗であり、すべての失敗が分析されるわけではない点はご留意ください。
MagicPod Autopilotと組み合わせるとさらに便利
失敗分析機能の活用法として個人的におすすめしたいのが、MagicPod Autopilotとの組み合わせです。
やりかたはシンプルで、失敗分析の結果をコピーして、MagicPod Autopilotに「この内容をもとにテストを修正して」と依頼するだけです。AIが分析した失敗原因と提案をもとにMagicPod Autopilotがテストステップを修正してくれます。テスト自動化の運用では「テストのメンテナンスが大変」という声をよく聞きますが、失敗分析とMagicPod Autopilotを組み合わせることで、このメンテナンスコストを下げる一つの手段になりそうです。
ちなみに、失敗分析結果をもとにMagicPod Autopilotでテストを修正、の流れをコピペをせずに行えるような機能も現在開発中です!
まとめ
今回はMagicPodの失敗分析機能を実際に使ってみた体験をお伝えしました。
テスト自動化の運用において、失敗時の原因調査は地味ながら手間のかかる作業です。失敗分析機能は、この作業をAIが支援してくれるもので、過去の実行推移の参照、コメントからのテスト意図の読み取り、設定ミスへのアドバイスなど、多角的に分析してくれるのが特徴です。
AIクレジットの消費量も控えめで、一括実行時の自動分析も実用的です。MagicPod Autopilotとの組み合わせまで考えると、テスト自動化の「運用の手間」がまた一つ軽くなると感じています。
ぜひ皆様も試してみてください。