Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
半年開発してわかった自動テストの価値
Search
teamLab
PRO
January 22, 2025
Programming
0
130
半年開発してわかった自動テストの価値
teamLab
PRO
January 22, 2025
Tweet
Share
More Decks by teamLab
See All by teamLab
Reactの<ViewTransition>で作るUIアニメーション
teamlab
PRO
0
8
「めんどくさい」から考える クレジットカード入力フォームのUX
teamlab
PRO
0
15
複雑なUI設計への銀の弾丸 「オブジェクト指向UIデザイン」
teamlab
PRO
1
37
「人」から考える「アクセシビリティ」
teamlab
PRO
0
15
TSKaigi Hokuriku - TC39 Signals で描くJS/TS/フレームワークの未来の姿
teamlab
PRO
0
29
TSKaigi Hokuriku - oxc-transformとisolatedDeclarationsで 手に入れるtscなし型定義ファイル生成
teamlab
PRO
0
18
TSKaigi Hokuriku - tsc --init の設計思想の変化とその背景を追う
teamlab
PRO
0
17
ユーザーのアクションを伴うWidgetのGoldenTest
teamlab
PRO
0
72
FlutterのVRT画像生成をDockerで 実行しようとして失敗した話
teamlab
PRO
1
120
Other Decks in Programming
See All in Programming
AI時代もSEOを頑張っている話
shirahama_x
0
230
ソフトウェア設計の課題・原則・実践技法
masuda220
PRO
25
21k
Rediscover the Console - SymfonyCon Amsterdam 2025
chalasr
2
140
堅牢なフロントエンドテスト基盤を構築するために行った取り組み
shogo4131
6
2k
【CA.ai #3】Google ADKを活用したAI Agent開発と運用知見
harappa80
0
270
FluorTracer / RayTracingCamp11
kugimasa
0
200
なあ兄弟、 余白の意味を考えてから UI実装してくれ!
ktcryomm
10
11k
AIコーディングエージェント(skywork)
kondai24
0
120
AIコーディングエージェント(NotebookLM)
kondai24
0
130
C-Shared Buildで突破するAI Agent バックテストの壁
po3rin
0
230
All(?) About Point Sets
hole
0
280
手が足りない!兼業データエンジニアに必要だったアーキテクチャと立ち回り
zinkosuke
0
400
Featured
See All Featured
Code Review Best Practice
trishagee
73
19k
Optimising Largest Contentful Paint
csswizardry
37
3.5k
Six Lessons from altMBA
skipperchong
29
4.1k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
The World Runs on Bad Software
bkeepers
PRO
72
12k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Designing for Performance
lara
610
69k
Thoughts on Productivity
jonyablonski
73
5k
Why Our Code Smells
bkeepers
PRO
340
57k
Large-scale JavaScript Application Architecture
addyosmani
514
110k
A Tale of Four Properties
chriscoyier
162
23k
Transcript
半年開発してわかった⾃動テストの価値 【学⽣向け勉強会】teamLab×DMM tech meetup ~frontend~ 宇根 昇汰
© teamLab Inc ⾃⼰紹介 宇根 昇汰 Une Shota 2024年 新卒⼊社
パッケージチーム フロントエンド班 和歌⼭⾼専 専攻科卒業
© teamLab Inc ⾃動テストについてどう思いますか
© teamLab Inc 良くない?笑
© teamLab Inc ⾃動テストって 俺は「開発」がしたいんだ! ちまちま細かくて楽しくなさそう めんどくさそう 「品質保証」をラクにするやつね...俺はいいかな
© teamLab Inc ⾃動テストは開発をラクにしてくれる
© teamLab Inc Case 1:新規実装 実装時にログ出⼒などで動作確認する const func = (arg:
string) => { if(arg === '') { return 'empty' }; return arg; } - console.log(func('lab')) > lab - console.log(func('')) > empty 全て消した状態でPR作成 レビュワーも動作確認するかも 無駄じゃない?
© teamLab Inc Case 2:改修 既存の共通処理を修正する デグレードを引き起こしていないか確認 • 共通処理が使⽤されている画⾯を探す •
ローカルでサーバーを⽴ち上げる • 該当画⾯のさまざまな機能を⼿動で確認 めんどくさい...
© teamLab Inc 動作確認の証跡を残したままPR作成 & ⾃分の改修による他機能への影響を検知したいナ〜...
© teamLab Inc ⾃動テスト‧‧‧やりたくね?
© teamLab Inc デバッグの減少 テストコードによってコードの機能が保証される バグもテストコードによって検出される 変更への信頼の増⼤ リファクタリングなどによる変更が既存機能に影響 を与えたかを検知可能 ドキュメンテーションの改善
テストコードがコードの挙動を明確に⽰してくれる ドキュメントが古くなっているということもない レビューの単純化 レビュワーは、コードが適切に機能していることを テストが通っている事実だけで判断可能 思慮に富む設計 テストコードを書きやすいように設計することは適 切にモジュール化し、密結合を避けることに繋がる ⾼速で⾼品質なリリース ⼿動テストの⼯数を減らし、新機能だけでなく既存 機能に対しても何回でもテスト可能 Pros Googleのソフトウェアエンジニアリング p249-250
© teamLab Inc Case 1:新規実装 実装時にテストコードを書いて動作確認 const func = (arg:
string) => { if(arg === '') { return 'empty' }; return arg; } test('普通の文字列の場合', () => { expect(func('lab')).toBe('lab') }) test('空文字の場合', () => { expect(func('')).toBe('empty') }) テストコードもコミットしてPR作成 レビュワーはテスト結果で動作を確認 Happy… デバッグの減少 レビューの単純化
© teamLab Inc Case 2:改修 変更への信頼の増⼤ 既存の共通処理を修正する デグレードを引き起こしていないか確認 • 既存のテストが通っているかを確認
Wonderful…
© teamLab Inc 品質保証の⽂脈だけでなく 開発者体験を⾼める⾯でも⾃動テストは良い!
おわり teamLab×DMM tech meetup ~frontend~ 宇根 昇汰