Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AIエージェントと二人三脚なら、詳しくない人でもE2Eテストを爆速移植できる!

Avatar for Arata Nakafushiki Arata Nakafushiki
November 13, 2025
100

 AIエージェントと二人三脚なら、詳しくない人でもE2Eテストを爆速移植できる!

https://findy-inc.connpass.com/event/369691/ で発表した内容です。

Avatar for Arata Nakafushiki

Arata Nakafushiki

November 13, 2025

Transcript

  1. Copyright Nulab Inc. All Rights Reserved. Copyright Nulab Inc. All

    Rights Reserved. AIエージェントと二人三脚なら、 詳しくない人でもE2Eテストを 爆速移植できる! 株式会社ヌーラボ 中伏木 新
  2. Copyright Nulab Inc. All Rights Reserved. Copyright Nulab Inc. All

    Rights Reserved. 中伏木 新 京都から来ました。 2017年10月にNulabに入社。 2022年12月退職後、別会社でCQRS+ESを採用したマイクロ サービスの設計・開発・運用、スクラムマスターを経験。 2024年9月から再びNulab。 Backlogの開発・運用がメインですが、なぜか色々やってます。 Playwrightとかはあまり詳しくないです。 株式会社ヌーラボ Backlogユニット
  3. Copyright Nulab Inc. All Rights Reserved. E2Eテストの移植 • 今回移植したのはスモークテスト •

    スモークテストとは? ◦ ISTQBから引用すると「定義・計画した全テストケースのサブセット。プログラムの必須機能が 正常に動作することを確認するのが目的で、コンポーネントやシステムの主要機能を網羅し、細 かな点は無視する。」 ◦ 主要機能が正常に動いてるか確認する • Backlogではデプロイ後、以下の機能の正常パスがちゃんと動作しているかをチェック ◦ 課題の登録・更新・削除 ◦ Wikiページの登録・更新・削除 ◦ ファイルのアップロード・ダウンロード・移動・削除 ◦ スペース設定で以下の情報が表示されているか ▪ スペース設定画面 ▪ ユーザー一覧 ▪ チーム一覧
  4. Copyright Nulab Inc. All Rights Reserved. • スモークテスト(Selenium+Java)を一時期Playwrightの実装に置き換えようという 動きが過去にあったが頓挫した •

    社内でBacklogフロントエンドの開発では、Playwrightによるテストがすでにデファクトに なっているので、知識共有はしやすい状況 • 自分自身がgemini cliなどAIエージェントに慣れるため、Playwrightに慣れるにも ちょうどいい題材なんじゃないだろうか もうちょっとちゃんとした動機 空いてる時間に、トライしてみよう

  5. Copyright Nulab Inc. All Rights Reserved. • 目標として現在のスモークテストと同じ操作が動くところを目指す • 機能毎に移植して、動くか確認する(フィードバックループを回す)

    • 以上の前提でgemini cliに移植計画を立ててもらって、レビューしてブラッシュアップする ◦ 移植計画はMarkdownファイルに落として、都度参照・更新するように指示する • 作業場所は既存のスモークテストの実装の下にディレクトリを作成して、そこに移植した コードをおく ◦ 同じところで作業した方がAIもやりやすかろう • 移植したものがあらかたdevelop環境で動くようになってから、新規のgitリポジトリで管 理するようにした どうやって進めよう? 👉ざっくりした方針を決めて、目標に向かって進む
  6. Copyright Nulab Inc. All Rights Reserved. • まずはgemini cliで移植を開始→方針通りに進めていって、特に問題なく完了🎊 ◦

    コードレビューは公式ドキュメントと睨めっこしつつ、gemini cliに聞きつつ進める • 何度か動かしてみて、Flakyさが残るテストがあったのでここの対応を行っていく • コード情報だけだと修正はあまりうまくいかない ◦ 修正を行ったり来たりする…… ◦ エラー情報と該当箇所のhtmlをinputとして与える とまあなんとか修正してくれる ◦ けどめんどくさいな…… さあ、進めよう 「これが最後の修正です」 「これが最後の修正です」 「これが最後の修正です」 「これが最後の修正です」
  7. Copyright Nulab Inc. All Rights Reserved. • Flakyなテストに対してPlaywright mcp serverでテストと同じ操作させて、テストの修正に

    フィードバックができるのでは?という仮説 ◦ やってみた結果、結構いい感じに直してくれる ◦ mcpで操作途中にいきなり修正に戻ったりするので、止めて元に戻したりする • クロスブラウザ対応もやってみたいなと思って、各種ブラウザ用のmcp serverを立てて ブラウザごとのフィードバックもやってみる ◦ こちらはそもそもFirefox, Webkitの安定性がイマイチだったので、スモークテストの目的から 今回は一旦諦めた • 新規のスモークテスト追加もできるんじゃなかろうか?という仮説 ◦ gemini cliにプロジェクトの作成・削除の操作をmcp経由でしてもらい、それをコードに落とす ◦ 問題なくプロジェクトの作成・削除が追加できた Playwright mcp serverを使ってみる
  8. Copyright Nulab Inc. All Rights Reserved. • コンテナイメージ作成するためにDockerfileを生成してもらったり • サイズの小さいイメージを作るために、どのイメージを元にすればいいか相談したり

    • AWS ECRのためにTerraformの雛形作ってもらったり • イメージビルドとECRへのPushするJenkinsfileを書いてもらったり • 人の代わりにgemini cliとペアプロをやっている感覚で進めていた • gemini cliでうまくフィードバック回せないところは、人がやる ◦ Jenkinsで組まれたCI/CDパイプライン周りは、コンテキストがgemini cliにないかつ 伝えるのも難しいので人とやる方が早い スモークテスト開発だけでなく、色々活用する
  9. Copyright Nulab Inc. All Rights Reserved. どれぐらいかかったか? 7/7 着手 7/10

    dev環境で動作する 以降断続的に テストのflakyさ解消や 新規スモークテスト追加 を行う
  10. Copyright Nulab Inc. All Rights Reserved. • 移植自体はほんの数日、ブラッシュアップは2、3日ぐらいで完了したが…… • CI/CDパイプラインへの展開は周知など準備が必要かつ、機能リリースを止めるわけにも

    いかずタイミングを見計らっていたら、最終的に10月ぐらいまでかかった • CI/CDパイプラインに投入して、無事に稼働 どれくらいかかった? 元気に動いてます🎉

  11. Copyright Nulab Inc. All Rights Reserved. • gemini cliにお任せするというより、ペア作業をやっているつもりで進めていた •

    意外とプロンプトも凝ったものでなく、必要なコンテキスト渡すときも人への指示と あまり変わらなず、個人としてはあまり苦労なく目標は達成できた • とはいえ詳しくない分野だと判断も難しいと感じる面もあり、己の鍛錬が必要 • あれこれやってるうちにPlaywright1.56からPlaywright test agentsが導入された ◦ planner, generator, healer • Playwright test agentsの内容みてると、今回似たことやっているので考え方の方向性は どこもあまり変わらないなという印象 • 今回はスモークテストなので、複雑なE2Eテストだとどうなるか試してみたい • chrome-devtool-mcpでパフォーマンス情報やネットワークの情報などが取れるので、テス トの修正に必要な情報は取りやすくなるかも 感想と今後の展望