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駆動の自動テスト生成
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Takashi Machinaga
May 15, 2025
Technology
1
150
AI駆動の自動テスト生成
AI ×フロントエンド開発のリアル(2025-05-15)
Takashi Machinaga
May 15, 2025
Tweet
Share
More Decks by Takashi Machinaga
See All by Takashi Machinaga
複雑なフォームに立ち向かう Next.js の技術選定
macchiitaka
4
1.6k
事業モメンタムを生み出すプロダクト開発
macchiitaka
1
220
What is Standard Schema?
macchiitaka
0
140
Other Decks in Technology
See All in Technology
AWS Amplify Conference 2026 - 仕様からリリースまで一気通貫生成 AI 時代のフルスタック開発
inariku
3
390
Amazon Bedrock AgentCore EvaluationsでAIエージェントを評価してみよう!
yuu551
0
170
AI時代のPMに求められるのは 「Ops」と「Enablement」
shimotaroo
1
330
ファシリテーション勉強中 その場に何が求められるかを考えるようになるまで / 20260123 Naoki Takahashi
shift_evolve
PRO
3
380
Regional_NAT_Gatewayについて_basicとの違い_試した内容スケールアウト_インについて_IPv6_dual_networkでの使い分けなど.pdf
cloudevcode
1
140
AIとともに歩む情報セキュリティ / Information Security with AI
kanny
4
1.9k
全員が「作り手」になる。職能の壁を溶かすプロトタイプ開発。
hokuo
1
570
現場で活かす生成AI実践セミナー「広報×AI活用」編
matyuda
0
100
20260120 Amazon VPC のパブリックサブネットを無くしたい!
masaruogura
2
160
Zephyr RTOS の発表をOpen Source Summit Japan 2025で行った件
iotengineer22
0
270
困ったCSVファイルの話
mottyzzz
2
360
Werner Vogelsが14年間 問い続けてきたこと
yusukeshimizu
2
210
Featured
See All Featured
The agentic SEO stack - context over prompts
schlessera
0
600
Getting science done with accelerated Python computing platforms
jacobtomlinson
1
100
How STYLIGHT went responsive
nonsquared
100
6k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
130
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
0
3.4k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
0
160
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
95
KATA
mclloyd
PRO
34
15k
Mind Mapping
helmedeiros
PRO
0
55
Making the Leap to Tech Lead
cromwellryan
135
9.7k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
240
Transcript
AI駆動の⾃動テスト⽣成 2025-05-15 株式会社IVRy(アイブリー) 町永 隆 @macchiitaka
⾃⼰紹介 • @macchiitaka • 2024年8⽉ IVRy に⼊社 • 主にWebフロントエンドの機能開発 町永
隆(Takashi Machinaga) 2 ソフトウェアエンジニア
IVRyとは?
電話⾃動応答サービスIVRy 電話AI SaaS IVRy(アイブリー)は、 ⽉額2,980円からカスタム電話をカンタンに作成できるサービス。 全ての電話業務を誰でもすぐにAIを使って効率化できます
テストを AI に⽣成してほしい • ⾃社のプロダクト開発の中でのトライ&エラーの話 • 初期からある Web フロントエンドのリポジトリ •
ビジネス優先で開発してきた • リファクタリングをしたい • しかしテストがほぼない • リファクタリングは、プログラムの動作を 変えずに、内部の構造を整理‧改善する作業 • つまりテストとセット • Copilot & Cursor & Devin
静的解析
• AI のため…ではなく元々は⾃分たちのコード品質向上のために強化していた • AI Agent と静的解析の親和性が⾼い • AI の制御にも活⽤できる
• AI Agent は暴⾛する • 適切なフィードバックを与えないと明後⽇の⽅向にコードを変更する • ガードレール(=ルール)が必要 • 確率で動く AI に対して、従来のルールベースの静的解析ツールで制御 静的解析
静的解析 1. TypeScript a. tsconfig/bases 2. ESLint a. bulk suppressions
(v9.24.0) i. AI に disable コメントを真似させない b. スタイルに関するルールも有効にする i. 特に Auto Fixable なルールは積極的に有効に ii. 表記の統⼀(prd, prod, pro…)
ルールの変更も AI にやってもらった
プロンプトを頑張らない • 最初は Cursor で⼿元で実⾏ • 簡単なプロンプトで完了すればラッキー🎉🎉🎉 • だいたいはうまくいかない •
テスト⽣成の「最初」と「最後」に介⼊する • 「最初」に介⼊するパターン ◦ Pull Request やコミット途中まで作成して、続きの作業をしてもらう ◦ = リファレンス実装 ◦ ⾃然⾔語でプロンプトを書くよりも簡単 & ⾼精度
プロンプトを頑張らない • 「最後」に介⼊するパターン ◦ ⼈間相⼿のアンチパターンが AI なら許される ◦ 「あとは俺がやる」 ◦
AI と仕事をしているといままで PR は以下にコード以外に思考を回してい たか気付かされる ◦ 癖になって⼈間相⼿にやらないように気をつけよう • 次回以降は成功した Pull Request を参照させる ◦ 精度が上がるまでは Cursor ◦ 精度が上がってからは Devin で並列実⾏
プロンプトを頑張らないコツ
無限にお⾦があったら • なぜプロンプトを頑張りたくなるのか? ◦ 従量課⾦だから成功率を上げたくなる ◦ 定額だったら使わないと損 ◦ もし5000兆円あったら…? •
⽯油王の気持ちで AI を使う • 同じプロンプトで複数回実⾏する ◦ 当たるまで繰り返す(ガチャ) • ちなみに IVRy 社内でもっとも Devin を使った ◦ マージ率ももっとも⾼かった
「あなたはアラブの⽯油王です」
ユニットテスト
テスト環境 • Vitest ◦ jsdom + Testing Library ◦ Browser
Mode ▪ Chromium ▪ Firefox ▪ WebKit
悩み①:モックサーバー • vi.spyOn、vi.mock を使いたがる ◦ 関数、モジュールレベルをモックすると、実装に依存したテストになる ◦ msw を使ったモックサーバーを利⽤してほしい ◦
しかし、このモックサーバーの⽣成精度が低い • ⾃動⽣成された API クライアントをリポジトリに含めた ◦ OpenAPI を利⽤したスキーマ駆動開発を採⽤している ◦ ⾃動⽣成ファイルはリポジトリから除外していた ◦ これと⽣成元の OpenAPI の定義ファイルを含めた ◦ モックサーバーの⽣成精度が向上 🎉🎉
悩み②:テストケース • 実装に依存したテストを⽣成しがち ◦ 実装に依存すると変更に弱いテストになる ◦ ユーザーが操作するようにテストしたい • it.todo でテストケースだけ作成する
◦ テストケース作成と⾃動テスト実装を別ステップにする ◦ テストファイルは縦に⻑くなりがち ▪ テストケースだけなら出⼒が速い ◦ 場合によっては最初の数ケースをエンジニアが定義する(最初に介⼊)
悩み②:テストケース • ゼロからテストケースを作成するより圧倒的に楽 • AI が⾃ら定義したテストケースは⾼精度で書ける • ただし、エンジニアが介⼊したテストケースのミス率は相対的に⾼い • ⽣成後、テストカバレッジを渡してテストを網羅的に書かせる
• ただしカバレッジが⾼い=良いテストケースではない • 品質は⼈間が担保する
• リファクタリング前に捨てる前提のテストを作成する • テストがグリーンであればいい • テスト品質は問わない ◦ 実装に依存したテストでもいい • 既存の機能が変わっていないことを(多少なりとも)保証してもらう
AI 特有のテスト
現在地点
ジュニアエンジニアとのペアプロ • ⼈間にとって簡単なタスクは AI にとっても簡単 • ⼈間にとって難しいタスクは AI にとっても難しい •
簡単だけど⼿数な必要な作業を AI にやってほしい • どれだけ構造化されたコードベースにできるか • どれだけ簡単なタスクに分割できるか • フロントエンドは⽐較的は細かい作業の連続 • ジュニアエンジニアとのペアプロしてきたメソッドが役に⽴った • 副作⽤として Good First Issue が枯渇する
現時点の付き合い⽅ • ゴールを定めにそこにどう導くか • 宣⾔的 UI と同じ • AI は意思決定をしてくれない
• 考えることまで任せない • 最終的な完成物の責任は⾃分にある
https://ivry-jp.notion.site/IVRy-127eea80adae801397a4e4d7ea74e291