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
フロントエンドのテストコード何を書くか
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Watanabe Yuito
February 24, 2024
Technology
0
77
フロントエンドのテストコード何を書くか
Watanabe Yuito
February 24, 2024
Tweet
Share
More Decks by Watanabe Yuito
See All by Watanabe Yuito
異世界転生したら俺の「JavaScriptランタイム」がアイドルになっていた件
wwwy
0
12
推しの Serverless DB について語りたい
wwwy
0
150
ケモインフォマティクス
wwwy
0
39
Other Decks in Technology
See All in Technology
Oracle Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
5
1.1k
Datadog Cloud Cost Management で実現するFinOps
taiponrock
PRO
0
140
バクラクのSREにおけるAgentic AIへの挑戦/Our Journey with Agentic AI
taddy_919
2
1k
vLLM Community Meetup Tokyo #3 オープニングトーク
jpishikawa
0
110
Agentic Software Modernization - Back to the Roots (Zürich Agentic Coding and Architectures, März 2026)
feststelltaste
1
170
AI時代にエンジニアはどう成長すれば良いのか?
recruitengineers
PRO
1
140
作りっぱなしで終わらせない! 価値を出し続ける AI エージェントのための「信頼性」設計 / Designing Reliability for AI Agents that Deliver Continuous Value
aoto
PRO
1
100
技術的負債の泥沼から組織を救う3つの転換点
nwiizo
7
2.2k
EMからVPoEを経てCTOへ:マネジメントキャリアパスにおける葛藤と成長
kakehashi
PRO
7
870
チームメンバー迷わないIaC設計
hayama17
5
3.8k
Claude Cowork Plugins を読む - Skills駆動型業務エージェント設計の実像と構造
knishioka
0
260
新職業『オーケストレーター』誕生 — エージェント10体を同時に回すAgentOps
gunta
4
1.4k
Featured
See All Featured
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
300
Skip the Path - Find Your Career Trail
mkilby
1
72
Art, The Web, and Tiny UX
lynnandtonic
304
21k
My Coaching Mixtape
mlcsv
0
64
Designing for humans not robots
tammielis
254
26k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
850
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.7k
Design in an AI World
tapps
0
160
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
68
Darren the Foodie - Storyboard
khoart
PRO
3
2.7k
Reality Check: Gamification 10 Years Later
codingconduct
0
2k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
180
Transcript
フロントエンドのテストコード何を書くか 梅田LT @www_yto
自己紹介 @www_yto(watanabe yuito) フロントエンドエンジニア SaaS の開発 React, Next.js, TypeScript フロントエンドのテストコード何を書くか
@www_yto
話したいこと フロントエンドのテスト不要説 テストの対象/レベル/種類 どこに張るか フロントエンドのテストコード何を書くか @www_yto
フロントエンドのテスト不要説 フロントエンドのテストコード何を書くか @www_yto
テスト不要の考え フロントエンドはクリーンアーキ テクチャで言う所の一番外側 ドメインがない テスト対象(≒ ドメイン)が存在しな い/ROI が低い フロントエンドのテスト不要説 @www_yto
テストはドメインに対して書きたい フロントエンドにはドメインがない フロントエンドのテスト不要説 @www_yto
ドメインとは 知識、影響力、または活動の領域。 ユーザーがプログラムを適用する対象エリアは、ソフトウェアのドメインである。 A sphere of knowledge, influence, or activity.
The subject area to which the user applies a program is the domain of the software. —Eric Evans フロントエンドのテスト不要説 @www_yto
> ユーザーがプログラムを適用する対象エリア ユーザーがブラウザ上で操作する UI ユーザーが入力するフォームやデータ ユーザーが発生させるイベントやアクション ユーザーが経験する画面遷移と情報表示の流れ フロントエンドのテスト不要説 @www_yto
フロントエンドにはドメインがない UI 操作フローのデザイン 表示状態の遷移 フロントエンドのテスト不要説 @www_yto
フロントエンドのドメイ ン ユーザーの操作と状態管理 WEB フロントエンドにおけるソフ トウェア設計の考察 フロントエンドのテスト不要説 @www_yto
フロントエンドのドメイン ui = f(state) フロントエンドのテスト不要説 @www_yto
ドメインに対してテストを書きたい! 何を? どこに? どのレベルで? フロントエンドのテスト不要説 @www_yto
テストの対象/レベル/種類 @www_yto
テストの対象 1. ライブラリが提供する関数 2. ロジックを担う関数 3. UI を表現する関数 4. Web
API クライアント 5. API サーバー 6. DB サーバー テストの対象/レベル/種類 @www_yto
テスト種類 1. 機能テスト 2. 非機能テスト 3. ホワイトボックステスト 4. リグレッションテスト テストの対象/レベル/種類
@www_yto
テストレベル 1. 静的テスト(Static) typo や型エラー 2. ユニットテスト(Unit) 依存関係を持たない 3. 結合テスト(Integration)
複数の unit を統合。(できるだけモックを使用しない) 4. E2E テスト(End to End) モックを使用しない テストの対象/レベル/種類 @www_yto
トレードオフ 壊れやすさ 速さ 信頼性 テストの対象/レベル/種類 @www_yto
どこに張るか @www_yto
(再掲)フロントエンドの ドメイン ユーザーの操作と状態管理 WEB フロントエンドにおけるソフ トウェア設計の考察 どこに張るか @www_yto
静的テスト ドメインのテストはできない 単体テスト 適切に呼び出されているかわからな い https://x.com/erinfranmc/status/1 148986961207730176?s=20 E2E テスト 壊れやすい
どこに張るか @www_yto
統合テスト ユーザー操作(ユースケース)を網羅でき る テスティングトロフィー https://www.testingjavascript.co m/ どこに張るか @www_yto
統合テスト例 1. セレクトボックスの操作する 2. URL の検索クエリが変化する 3. 検索クエリの変化により、データ取得 API が呼ばれる
4. 一覧表示内容が更新される どこに張るか @www_yto
まとめ フロントエンドにもドメインはある ユーザーの操作 状態管理 統合テストを厚く書く ユーザー操作を網羅 信頼性,スピード,コストのトレードオフのバランスが良い フロントエンドのテストコード何を書くか @www_yto
参考 WEB フロントエンドにおけるソフトウェア設計の考察 フロントエンドアプリケーションの静的、単体、結合、E2E テスト Write tests. Not too many.
Mostly integration. Clean Architecture フロントエンド開発のためのテスト入門 今からでも知っておきたい自動テスト戦略の必 須知識 フロントエンドのテストコード何を書くか @www_yto