Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
AIを使っていい感じにE2Eテストを書けるようになるまで / Trying to Write ...
Search
Akihiro Yokota
July 22, 2025
Technology
1
340
AIを使っていい感じにE2Eテストを書けるようになるまで / Trying to Write Good E2E Tests with AI
2025/07/22 に開催された
QA活動におけるAIの利活用をシェアしよう!
での発表資料です。
以前投稿した
同タイトルのnoteの記事
と補完関係にあります。
Akihiro Yokota
July 22, 2025
Tweet
Share
More Decks by Akihiro Yokota
See All by Akihiro Yokota
不安定だったテストが信頼を取り戻すまで / The Road to Trustworthy Tests
katawara
0
160
ユーザーストーリーマッピングから始めるアジャイルチームと並走するQA / Starting QA with User Story Mapping
katawara
0
550
Other Decks in Technology
See All in Technology
QAを早期に巻き込む”って どうやるの? モヤモヤから抜け出す実践知
moritamasami
2
150
TROCCO今昔
gtnao
0
180
Shadow DOM & Security - Exploring the boundary between light and shadow
masatokinugawa
0
620
MCP とマネージド PaaS で実現する大規模 AI アプリケーションの高速開発
nahokoxxx
1
1.2k
AI Ready API ─ AI時代に求められるAPI設計とは?/ AI-Ready API - Designing MCP and APIs in the AI Era
yokawasa
20
5.4k
Amazon SNSサブスクリプションの誤解除を防ぐ
y_sakata
3
200
スプリントレビューを効果的にするために
miholovesq
7
1.3k
毎晩の 負荷試験自動実行による効果
recruitengineers
PRO
5
200
Building GoReleaser - from shell script to paid product
caarlos0
0
210
AI時代にも変わらぬ価値を発揮したい: インフラ・クラウドを切り口にユーザー価値と非機能要件に向き合ってエンジニアとしての地力を培う
netmarkjp
0
190
PHPからはじめるコンピュータアーキテクチャ / From Scripts to Silicon: A Journey Through the Layers of Computing
tomzoh
2
350
全部AI、全員Cursor、ドキュメント駆動開発 〜DevinやGeminiも添えて〜
rinchsan
11
5.6k
Featured
See All Featured
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.8k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
Typedesign – Prime Four
hannesfritz
42
2.7k
Measuring & Analyzing Core Web Vitals
bluesmoon
7
520
How GitHub (no longer) Works
holman
314
140k
The Cost Of JavaScript in 2023
addyosmani
51
8.6k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
161
15k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
44
2.4k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
282
13k
GraphQLの誤解/rethinking-graphql
sonatard
71
11k
Bash Introduction
62gerente
613
210k
Transcript
© Scalebase Inc. 2025/07/22 QA活動におけるAIの利活⽤をシェアしよう! AIを使っていい感じに E2Eテストを書ける ようになるまで
© Scalebase Inc. 1. ⾃⼰紹介 & 会社紹介 2. 前提のすり合わせ 3.
今回のお題 4. 試⾏錯誤 Day 1 5. 試⾏錯誤 Day 2 6. 試⾏錯誤 Day 3 7. Extra Day 8. まとめ ⽬次
© Scalebase Inc. はじめに ⾃⼰紹介 あきさん(Akihiro YOKOTA) • Scalebase株式会社 QAエンジニア
• X: @katawara 名刺管理の会社でバックエンドエンジニアやEMを経 て、QAチームの⽴ち上げから、全社横断のQA組織を作 るまでを経験。 2023年にScalebase株式会社(旧‧アルプ株式会社) に⼊社。社内唯⼀のQAエンジニアとしてできることは 何かを⽇々模索する。
© Scalebase Inc. 提供するプロダクト ⾒積〜請求/決済〜収益管理を⼀気通貫で網羅 サブスクリプションビジネスのための販売管理システム「Scalebase」
© Scalebase Inc. サブスクリプションビジネスにおける主な課題 成⻑の先にある販売管理業務の複雑性 • ユーザー数の増加や提供プランの多様化といった サブスクリプションモデル特有の課題 • 料⾦体系の複雑化(⽇割、請求サイクル、利⽤量
に応じた従量課⾦)、アップ/ダウンセル、割引‧ キャンペーン適⽤などが発⽣ • 「契約期間」というサブスクリプションビジネス 特有の概念での管理の必要性 既存の仕組みでは乗り越えられない壁 • 請求計算ミスや売上計上漏れのリスク増⼤、これ による顧客不満や機会損失 • 新しいプランやモデルを試したい時に、システム 側の制約で迅速に実⾏できない • サブスクリプションビジネス特有の重要指標が正 確に把握できない • 業務プロセスごとにシステムが分断され、データ ドリブンな意思決定につなげられない 業務⼯数の増加 属⼈化 請求ミスの リスク 事業成⻑への ブレーキ データ管理の ⼀元化
© Scalebase Inc. ⼿動テスト ローコードテスト ⼿動テスト‧ローコードテスト‧コードベーステストを場⾯に応じて使い分け Scalebaseのテストの構成 コードベーステスト • 他社サービスとの連携が必要なテス
トを主戦場とする • コードベースで実装すると⼤変なも の(メール受信など)でも活⽤ • 新規開発で作ったものに対して実施 • ⾃社内で完結できるテストはこちら を優先的に検討 • ハッピーパスを中⼼に、マイナーな 操作でテストを忘れがちなシナリオ までをカバー
© Scalebase Inc. © Scalebase Inc. 本題の前に
© Scalebase Inc. 数ヶ⽉の間に社内公式で使えるAIの選択肢は爆増 AIを使わないという選択肢はなくなってきている AIの利活⽤に対する温度感は圧倒的に上がってきた ScalebaseのAI活⽤状況 当時 • GitHub
Copilot 現在 • GitHub Copilot • Cursor • Claude Code • Devin • Notion AI
© Scalebase Inc. • 今回のお話は、2025年5⽉末に⾃分のnoteに書いた「 AIを使って いい感じにE2Eテストを書けるようになるまで 」という記事での お話をベースにしています。 •
投稿から2ヶ⽉弱前(かつ、取り組み⾃体はさらにその前)の話 なので、少し古くなっている部分もあるかと思いますがご容赦く ださい。 • 今同じことをやろうとしたら、全く違う選択をした可能性があり ます。そのあたりは当時のスナップショットとしてご覧いただけ ますと幸いです。 おことわり 🙇
© Scalebase Inc. © Scalebase Inc. 本題
© Scalebase Inc. 事前に⽤意しておいたE2Eテスト向けのテスト シナリオをAIに読み込ませて、E2Eテストを実 装してみる 今回やってみたこと
© Scalebase Inc. • もともとE2Eテストを拡充しようという話題があって、事前にこの内容でテストしようか、みたいなことを議論 していた中で、それにAIの活⽤を絡めた、という形 • AIの活⽤が話題になるつつあると⾔っても、わりと⼿探りの中で、ちょうど良さそうなお題だからためしにやっ てみようか、くらいの状態 •
⽬的がより短い⼯数で果たされるならラッキーだし、どうせだったら⼀回しっかり使い込んでみて組織の知⾒ としよう、という気持ち 背景‧コンテキスト
© Scalebase Inc. • ⾔語: TypeScript • テストフレームワーク: Playwright •
エディタ: Visual Studio Code • エージェント‧モデル: GitHub Copilot x Claude 3.7 Sonnet • MCP: GitHub, Playwright 基本的には、社内で使えるものだけを選んで、将来的に社内の誰でもが実⾏できる状態を作れるように配慮した 当時の環境について
© Scalebase Inc. © Scalebase Inc. Day 1 AI 100%
/ ⼈間 0%
© Scalebase Inc. • Cursorの無料枠を使って、テストコードを書かせてみる ◦ とにかく⾃分は⼿を出さずに、⼝だけ出す ◦ ペアプロで⾔うところのナビゲーターに徹する感覚 •
先⾏事例の記事も参考にしつつ、まずはやってみる ◦ ⼀回極端に振り切ってみて、体験知を積み上げることもきっと⼤事と判断 AIに全部やらせてみる
© Scalebase Inc. • 4時間くらいかかって、1つのシナリオも完成させられず、無料枠を全部使い切ってしまう • 結構細かいことにも⼝出しし続けてしまった • その上、そういったことは⾔語化するのがちょっと⾯倒 •
それくらいだったら⾔葉にするより⾃分で直すわ、みたいな気持ちをぐっとこらえる場⾯もちらほら • こだわりみたいなものが出てしまったかもしれないが、まずは動くものを⽬指したほうがよかったかも • まったくVibe Codingできない‧‧‧ 結果 😭
© Scalebase Inc. © Scalebase Inc. Day 2 AI 50%
/ ⼈間 50%
© Scalebase Inc. • 初⼿をAIに実装してもらい、残りを⼈間が担当する ◦ ペアプロで⾔うところのドライバーを途中で交代する感覚 ◦ 初⼿のアウトプットは、どうであれとりあえず受け⼊れてコミットするという⽅針転換もした •
だいたい動きそうなところまでAIに書いてもらって、実際に動かしてみてうまく動かなかった部分の反映だった り、細かいところの詰めだったりを⼈間が書く ◦ AIは書き終わったあと、テストの実⾏コマンドを出してくるけど、それはいったん全部無視 AIと⼈間で分担する
© Scalebase Inc. • まあまあ悪くない • ⼤量の⼊⼒項⽬とか、⼿でやると⾯倒な部分もさくっと実装してくれるので、楽な部分はあった • ⾃分の知らない書き⽅で実装してくることもあり、実装の最適解を模索することもできた •
とはいえ、結構直している ◦ ライブラリ的にはもう⾮推奨になっているメソッドを平気で使ってきたり ◦ ⼈間向けの読みやすさや保守のしやすさ、みたいなものには無頓着だったり • 仕事は早いが雑、という感想に⾄る • まだVibe Codingしきれてない 結果 🙂
© Scalebase Inc. © Scalebase Inc. Day 3 AI 80%
/ ⼈間 20%
© Scalebase Inc. • カスタムインストラクションを使って、普段⾃分が気にしていたことを改めて⾔語化する ◦ レビューするときに注意して⾒ていたことや、こう書いてくれたら嬉しいと思うことをまとめる ◦ コーディング規約や、チームとしての約束事を⾔葉にして、ある種、AI向けにオンボーディングをするよ うな形
• AIには、毎回それを読み込んでもらったうえでコードを書いてもらう カスタムインストラクションを設定して再挑戦
© Scalebase Inc. • チーム固有のコンテキストをまとめたドキュメントファイルのことで、設定しておくと、エージェントが動作 するときにその内容を踏まえた結果を⽣成してくれるようになる仕組みのこと • たとえば、こういうものを書いておくと良いらしい ◦ そのリポジトリの⽬的‧役割
◦ 技術スタック ◦ ディレクトリ構成 ◦ よく使うコマンド ◦ 環境設定のやり⽅ ◦ コーディング規約 ◦ 望ましいコミュニケーションスタイル ◦ レビュー⽅針 ◦ などなど(ほしいものをAI⾃体に聞いてしまい、それを書いていくというのも⼿) 参考: カスタムインストラクションとは
© Scalebase Inc. https://gist.github.com/katawara/77198bd3050d26edee1d8be5504c3718 参考: カスタムインストラクションの例
© Scalebase Inc. • 精度がめっちゃ上がった • 「とにかくテストを書く」から、「いい感じにテストを書く」に進化した瞬間 • 修正も軽微で終わって、実装にかかる時間は減ったし、体験も良い •
ものによっては、そのまま運⽤に回してもほぼ差し⽀えなかった • これなら誰か別の⼈が対応することになってもうまく回していけそう • そろそろVibe Codingしてもいい、か‧‧‧? 🥳 結果
© Scalebase Inc. © Scalebase Inc. Extra Day エージェント乱⽴時代の カスタムインストラクション
© Scalebase Inc. リポジトリのルートに .github/copilot-instructions.md を⽤意して、そこに記述 する リポジトリのルートに .cursor/rules/**.mdc を⽤意して、そこに記述する(複数ファ
イルも可) ※ いずれ使えなくなりそうだけど、リポジトリのルートに .cursorrules を⽤意して、そこ に記述するという⽅法もある GitHub Copilot, Cursor, Claude Code、それぞれでインストラクションの書き⽅が違う GitHub Copilot Cursor Claude Code リポジトリのルートに CLAUDE.md を⽤意して、そこに記述する エージェントによってインストラクションがバラバラ問題
© Scalebase Inc. どのエージェントでも同じインストラクションを踏まえてほしい あちこちで 同じインストラクションを 書くのは⾯倒‧‧‧ 個別に書いていると すぐにエージェントごとに 差異ができそう‧‧‧
© Scalebase Inc. • instructionsディレクトリを作って、インストラクションの内容はその中に寄せる • それぞれのインストラクションファイルでは「このドキュメントを参考にしてくれ」というリンクを貼るだけ ならばまとめてしまおう
© Scalebase Inc. こんな感じの構成にして、AIさんからも⼒強いお⾔葉をいただく
© Scalebase Inc. • ファイルを読み込んだら特定の⽂字列を吐かせるように(やや過剰かも?) • 使うエージェントによって、動きが微妙に違うのはちょっと興味深い 動作確認
© Scalebase Inc. • ひとまず、各エージェントが同じインストラクションを参照することはできた • 今後、どのエージェントが覇権を取るにせよ、また⼈によって利⽤するエージェントに差異が出たとしても、 振り回される確率は減った(はず) • 既存の仕様を踏まえたハック的な側⾯は否めないので、もっといいやり⽅は別にあるかもしれない
🙏 🙂❓ 結果: まだこれから
© Scalebase Inc. © Scalebase Inc. まとめ
© Scalebase Inc. • AIにいい感じにアウトプットさせるための試⾏錯誤は、チームメンバーをオンボーディングすることにどこか 似ている • いい感じのアウトプットを⽬指すには、依頼者である⼈間側が⼀定の正解やあるべき姿をちゃんと持っていな いといけない •
AI「に」伴⾛してAI⾃体の精度を⾼めつつ、AI「と」伴⾛して⾃⼰の練度を⾼める、そんなループを回して、変 化や進化に対してしなやかでありたい まとめ
© Scalebase Inc. • CTOがエンジニアにコーディング禁⽌というお触れを出した|松本和⾼ | EXPLAZA ◦ https://note.com/_mkazutaka/n/n43d3c91ac6b7 •
Figma禁⽌!⽣成AIだけでプロダクトデザインやってみた|azshi ◦ https://note.com/btm2971/n/naffae8ccf6c2 • GitHub Copilot のリポジトリ カスタム命令を追加する - GitHub Docs ◦ https://docs.github.com/ja/copilot/how-tos/custom-instructions/adding-repository-custom-instruc tions-for-github-copilot • Cursor ‒ Rules ◦ https://docs.cursor.com/context/rules • Manage Claude's memory - Anthropic ◦ https://docs.anthropic.com/en/docs/claude-code/memory 参考⽂献、URL等
© Scalebase Inc. • AIを使っていい感じにE2Eテストを書けるようになるまで|Akihiro Yokota(今回の元ネタ) ◦ https://note.com/yokota_alp/n/na1de6c064b4b • Custom
instruction for Playwright(途中で紹介したカスタムインストラクションのサンプル) ◦ https://gist.github.com/katawara/77198bd3050d26edee1d8be5504c3718 参考⽂献、URL等
© Scalebase Inc. © Scalebase Inc. Thank you 🙇