Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
フロントエンドのテストコード何を書くか
Search
Watanabe Yuito
February 24, 2024
Technology
0
76
フロントエンドのテストコード何を書くか
Watanabe Yuito
February 24, 2024
Tweet
Share
More Decks by Watanabe Yuito
See All by Watanabe Yuito
異世界転生したら俺の「JavaScriptランタイム」がアイドルになっていた件
wwwy
0
10
推しの Serverless DB について語りたい
wwwy
0
150
ケモインフォマティクス
wwwy
0
39
Other Decks in Technology
See All in Technology
Database イノベーショントークを振り返る/reinvent-2025-database-innovation-talk-recap
emiki
0
250
事業の財務責任に向き合うリクルートデータプラットフォームのFinOps
recruitengineers
PRO
2
160
AlmaLinux + KVM + Cockpit で始めるお手軽仮想化基盤 ~ 開発環境などでの利用を想定して ~
koedoyoshida
0
140
2025年 開発生産「可能」性向上報告 サイロ解消からチームが能動性を獲得するまで/ 20251216 Naoki Takahashi
shift_evolve
PRO
2
210
さくらのクラウド開発ふりかえり2025
kazeburo
2
190
MySQLとPostgreSQLのコレーション / Collation of MySQL and PostgreSQL
tmtms
1
1.1k
AWS re:Invent 2025~初参加の成果と学び~
kubomasataka
0
170
プロンプトやエージェントを自動的に作る方法
shibuiwilliam
15
16k
AWS Security Agentの紹介/introducing-aws-security-agent
tomoki10
0
380
ZOZOの独自性を生み出す「似合う4大要素」の開発サイクル
zozotech
PRO
0
110
まだ間に合う! Agentic AI on AWSの現在地をやさしく一挙おさらい
minorun365
17
2.2k
Lookerで実現するセキュアな外部データ提供
zozotech
PRO
0
190
Featured
See All Featured
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
1
20
Testing 201, or: Great Expectations
jmmastey
46
7.8k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
110
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
1.8k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
34k
Navigating Team Friction
lara
191
16k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
47
33k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
2
3.8k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
24
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
Designing Experiences People Love
moore
143
24k
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