AI DevelopmentNov 13, 20256 分 READ

IDE と対話して不安定なテスト(Flaky Test)を修正する方法

Joel Thompson

Senior Software Engineer

不安定(“flaky”)なテストほど、チームの生産性を損なうものはありません。コードを一切変更していないのに、テストが通ったり失敗したりする——こうした不安定な挙動は CI パイプラインへの信頼性を損ない、エンジニアの時間を無駄にします。原因の特定はたいてい、延々とログを追いかけたり、ビルドを再実行したり、「何が悪かったのか」を推測する面倒な作業になりがちです。

本記事では、IDE 上で AI アシスタントとチャットしながら不安定なテストを素早く検出・修正する方法を紹介します。 CircleCI MCP サーバーfind_flaky_tests ツールを使用することで、コードアシスタントが過去のテストデータから不安定なパターンを特定し、コンテキストに応じた修正案を提示します。これにより、ツール間を行き来したり CI ログを詳しく調べたりすることなく、不安定性をより迅速に解決できます。

さらに詳しい活用事例は、CircleCI MCP クックブック をご覧ください。

前提条件

この記事の手順を実行するには、以下の環境が必要です:

  • CircleCI アカウント
  • GitHub アカウント
  • Node.js 18 以上
  • MCP 対応の IDE(例:Cursor、Windsurf、VS Code)

この環境を整えることで、AI アシスタントがソースコードや CircleCI のテスト結果に直接アクセスできるようになります。

環境準備

AI アシスタントが CircleCI データにアクセスできるよう、まずは API トークンで認証設定を行います。

CircleCI のユーザー設定画面で新しい パーソナル API トークン を作成し、表示されたトークンをコピーして安全な場所に保管してください。これはセットアップ時に必要になります。

次に、作成した API トークンを使って IDE の MCP サーバーを設定 します。

MCP-flaky-cursor-mcp-config

これにより、AI アシスタントが CircleCI アカウントと連携し、不安定なテストの分析に必要な履歴やログにアクセスできるようになります。

ステップ1:プロジェクトのセットアップ

まずは、CircleCI MCP クックブックにある 不安定なテストのサンプルプロジェクト を使って、新しい GitHub リポジトリを作成します。 このリポジトリには意図的に不安定なテストが含まれており、実行すると約半分の確率で失敗するようになっているため、デバッグの良い対象となります。

リポジトリの作成とコードプッシュが完了したら、CI に接続する準備は完了です。このサンプルプロジェクトには、ビルドごとにテストスイートを自動的に実行する CircleCI 設定ファイル も含まれています。

ステップ2:CircleCI で不安定なテストのシグナルを生成する

CircleCI で find-flaky-tests という新しいプロジェクトを作成し、先ほどの GitHub リポジトリと連携します。

この時点から、リポジトリへのプッシュごとに、不安定なテストを実行するビルドがトリガーされます。

このビルドを5~6回実行します。小さなコミットを追加したり、「ワークフロー再実行(Rerun workflow)」機能を使うと効率的です。

MCP-flaky-job-flaky-test

ある程度の成功・失敗データが集まると CircleCI テスト インサイトが不安定な挙動を検出してくれます。

ステップ3:不安定なテストを確認する

IDE 上でエージェントモードのチャットを開き、不安定なテストを検索するよう find flaky tests とエージェントに依頼し、CircleCI プロジェクトの URL [例](https://app.circleci.com/pipelines/vcs/org/repo](https://app.circleci.com/pipelines/vcs/org/repo)を渡します。) を提供します。

MCP-flaky-get-flaky-test-chat

アシスタントは find_flaky_tests を呼び出し、CircleCI プロジェクトに接続します。失敗したテストケースの特定、ファイルや行番号の指摘、一貫性のない動作をしているアサーションの強調表示など、詳細情報を返してくれます。また、ログを探し回ったり複数のタブを切り替えることなく、該当するテスト実装を IDE 上に表示してくれます。

ステップ4:修正を依頼する

不安定なテストが特定されたら、fix the flaky test と依頼してください。

MCP-flaky-fix-flaky-test

アシスタントはテストコードを解析し、非同期タイミングの問題、レースコンディション、共有状態といった一般的な原因に基づく修正案を提示します。提案されたコードを確認して、そのまま適用するか、スタイルに合わせて調整するとよいでしょう。

ステップ5:プッシュと再ビルド

変更内容をコミット・GitHubへプッシュすれば、新たな CircleCI ビルドが実行されます。修正が成功していれば、不安定だったテストは安定してパスするはずです。

MCP-flaky-flaky-test-green

ビルドをさらに数回繰り返し実行し、安定性を確認してください。テストが断続的に失敗しなくなれば、CircleCI のテストインサイトにより不安定として検知されなくなります。

IDE を離れずにパイプラインの状況を確認したい場合は、what's the status of the latest pipeline for this project? などと聞いてみましょう。アシスタントは get_latest_pipeline_status ツールを内部で実行し、最新パイプラインのステータス(すべてグリーンかどうかなど)を要約して返してくれます。

プロジェクト内の不安定なテストを再度見つける依頼をすれば、アシスタントがテスト履歴を再解析してくれます。パイプラインが一定数成功すれば、CircleCI がそのテストを不安定とは見なさなくなり、問題が解消されたかどうか、あるいはまだ残っている不安定なテストや新たに発生した不安定なテストを教えてくれます。

まとめ

チームの勢いを最も阻害する要因は、やはり不安定なテストです。CircleCI の自動検知機能と、IDE 上で動作する AI アシスタントを組み合わせることで、失敗から修正までをコンテキストを切り替えることなく進められます。アシスタントはコードとテスト履歴にアクセスし、不安定なテストをハイライトして修正を提案します。

普段の開発環境の中で直接活用できるこの仕組みにより、フィードバックループを短く保ち、テストスイートの信頼性を継続的に高められます。

CircleCI MCP サーバーが AI コーディングアシスタントと連携し、ビルドのデバッグやテストの解析、CI の問題の可視化を支援する仕組みについての詳細は、ドキュメント(英語)プロジェクトリポジトリ をご覧ください。無料の CircleCI アカウント に登録すれば、ご自身のプロジェクトでもすぐに試せます。