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
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
teamLab
PRO
January 22, 2025
Programming
150
0
Share
半年開発してわかった自動テストの価値
teamLab
PRO
January 22, 2025
More Decks by teamLab
See All by teamLab
TSKaigi 2026 - 10秒のビルドを1秒へ:tsdownが切り拓く2026年のTypeScriptライブラリ開発
teamlab
PRO
2
300
TSKaigi 2026 - enumよ、さようなら
teamlab
PRO
3
610
TSKaigi 2026 - 型プラグインシステムの実装に使われるテクニック
teamlab
PRO
2
470
TSKaigi 2026 - Auth.jsからBetter Authへの 移行に見る「型とランタイム」の 設計思想の変化
teamlab
PRO
1
290
TSKaigi Hokuriku - TypeScriptによる静的データガバナンス
teamlab
PRO
0
150
Reactの<ViewTransition>で作るUIアニメーション
teamlab
PRO
0
140
「めんどくさい」から考える クレジットカード入力フォームのUX
teamlab
PRO
1
280
複雑なUI設計への銀の弾丸 「オブジェクト指向UIデザイン」
teamlab
PRO
3
420
「人」から考える「アクセシビリティ」
teamlab
PRO
0
150
Other Decks in Programming
See All in Programming
権限チェックの一貫性を型で守る TypeScript による多層防御
mnch
4
1.1k
RailsTokyo 2026#4: AI様があれば、 Hotwireの弱点は消えるか?
naofumi
5
1k
AI時代のUIはどこへ行く?その2!
yusukebe
19
6.3k
次世代リンターで探る、tsgo 時代における型認識カスタムルールの現実解
ytakahashii
3
1.4k
さぁV100、メモリをお食べ・・・
nilpe
0
120
脅威をエンジニアリングの糧にして――現場編 / Turning Threats into Engineering Fuel — Field Edition
nrslib
0
240
フロントエンドとバックエンドで「1文字」を揃えよう
youkidearitai
PRO
0
140
軽量Java基盤の設計 DIコンテナに頼らない、長期保守と1秒起動の実現 JJUG CCC 2026 Spring
macha64
0
400
Migrations : C'est une question d'hygiène !
vinceamstoutz
0
2.9k
Moments When Things Go Wrong
aurimas
3
140
Spec Driven Development | AI Summit Lisbon
danielsogl
PRO
0
120
Composerを使ったサプライチェーン攻撃の様子を眺めてみる #phpstudy
o0h
PRO
2
210
Featured
See All Featured
YesSQL, Process and Tooling at Scale
rocio
174
15k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
Navigating Weather and Climate Data
rabernat
0
210
Unsuck your backbone
ammeep
672
58k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
320
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.3k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
460
New Earth Scene 8
popppiees
3
2.3k
Faster Mobile Websites
deanohume
310
31k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
240
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
370
Music & Morning Musume
bryan
47
7.2k
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~ 宇根 昇汰