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
Laravelから始めるテスト駆動開発
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
AkitoTsukahara
February 10, 2020
Technology
240
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Laravelから始めるテスト駆動開発
2020/02/09 ~ 02/11の期間で開催された【PHPerKaigi2020】のルーキーズLTで発表した登壇資料です。
AkitoTsukahara
February 10, 2020
More Decks by AkitoTsukahara
See All by AkitoTsukahara
『自分のデータだけ見せたい!』を叶える──Laravel × Casbin で複雑権限をスッキリ解きほぐす 25 分
akitotsukahara
2
1.2k
PHP8.2にバージョンアップして もっと型表現を豊かにしよう
akitotsukahara
0
510
オンボーディングのために 私はプロダクト考古学者になりました!
akitotsukahara
3
520
プロダクトチームから他部署に 伝播するふりかえり文化
akitotsukahara
0
560
スピンオフサービス構築で培われた開発ノウハウをご紹介!
akitotsukahara
0
220
ビルドツールViteを10分で解説!
akitotsukahara
0
1.3k
今日からSvelteで開発だ! どうする?何から始める?
akitotsukahara
0
340
どのくらい速くなるの?Laravel MixとViteを性能比較してみました!
akitotsukahara
0
11k
スクラムマスターを経験して得られた学びとエンジニアとしての成長
akitotsukahara
0
500
Other Decks in Technology
See All in Technology
変化の早いClaude Codeを 書籍に落とし込む
oikon48
7
1.4k
侵入は突然に 〜 IoTマルウェアと悪用される家庭の機器 ~ / When Intrusion Strikes: IoT Malware and the Abuse of Home Devices
nttcom
0
5.8k
ブラウザ研修 2026
recruitengineers
PRO
6
1k
Model Studio CLI × Token Plan
maigo999
0
180
猫付きpingコマンドを自作
uyuki234
0
240
My broken English still works: speaking at global OSS events
naruoga
0
100
会社紹介資料 / Sansan Company Profile
sansan33
PRO
23
430k
LanceDB入門
mocobeta
7
510
制約理論(ToC)入門 2026版
recruitengineers
PRO
8
2.3k
グローバル基準のSREは、運用現場でどう機能したか:成熟度アセスメントの実践 / SRE NEXT 2026
sorawatanabe
0
240
まちスペース®とデジタルツインと「まちづくり」
hiro_ogi
0
120
2026-08-05 IBM Z開発最前線!IBM Bob Premium Package for Zって何がすごいの?
yutanonaka
0
120
Featured
See All Featured
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
280
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
280
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
260
Paper Plane (Part 1)
katiecoart
PRO
1
10k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
200
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
3
430
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
3k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
380
Transcript
Laravelから始める テスト駆動開発 PHPerKaigi2020
塚原 彰仁 PHPer歴 3年 Laravel,CakePHP, WordPress
トークの概要 ・テスト書く習慣ゼロの状態から テスト駆動開発を始めた話
ある案件の話(失敗談) ▼イベント管理システム ・チケット申し込み ・当日来場受付
数々の苦難が…
機能を追加すると 既存機能が動かない…
増え続けるテストケース ・会員種別 ・申込み手順 ・開催中のイベント ・例外処理 →400件以上をリリースの度に
申し込んだデータが 消えたみたいで…
出典:BLEACH 13巻
何が起きていたのか? 1時間以内に購入 1時間以上経過する
何が起きていたのか? 1時間以内に購入 1時間以上経過する
None
よし!テスト書く!
テスト書く習慣を作る
機能追加に耐えられる
きれいなコード書ける
None
レベル1 社内案件から始める
Laravelで始めてみる ・ヘルパーメソッドが便利 ・ドキュメント豊富
仕様の概要 ▼個人の売上貢献度を教えてくれる システム ・Googleログイン認証 ・Google Sheets API連携
この処理をテスト駆動開発でやってみる Google認証画面(←サンプル) ↓ ログイン ↓ メールアドレス取得
色々参考にしながら こんな感じに
何とかできそう! ・参考サイトたくさんある ・テスト前提なら書きやすい
これで満足?
出典:BLEACH 13巻
打ち切り漫画っぽい
出典:シャーマンキング 32巻
レベル2 因縁のイベントシステム
問題の処理のテストコードを書いていく チケット申し込み ↓ 予約状態を確認(←サンプル) ↓ チケット予約確定
まずはFatControllerの リファクタリング 1.予約状況の確認処理をまるごとService レイヤーに切り出す 2.テスト用に処理を分解する
泥臭くテストを書いていく こんな感じに
それでも書けないところは E2Eテスト、手動テストでカバー 問題のテストケースは E2Eテストにできました! (1時間の待ち時間解消!!)
None
会社のみんなからは 複雑な案件に対して、エンジニアも非エンジニアも 安心感を持って取り組めます! 機能追加の心理ハードルが下がりますー
出典:SLAM DUNK15巻
打ち切り
・やってみる価値はあるよ! ・実務で苦戦したことが 逆にモチベーションに! ・小さく始めていこう!
よかったら テストどうでしょうか?
@AkitoTsukahara