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
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
AkitoTsukahara
February 10, 2020
Technology
0
220
Laravelから始めるテスト駆動開発
2020/02/09 ~ 02/11の期間で開催された【PHPerKaigi2020】のルーキーズLTで発表した登壇資料です。
AkitoTsukahara
February 10, 2020
Tweet
Share
More Decks by AkitoTsukahara
See All by AkitoTsukahara
『自分のデータだけ見せたい!』を叶える──Laravel × Casbin で複雑権限をスッキリ解きほぐす 25 分
akitotsukahara
2
1k
PHP8.2にバージョンアップして もっと型表現を豊かにしよう
akitotsukahara
0
470
オンボーディングのために 私はプロダクト考古学者になりました!
akitotsukahara
3
490
プロダクトチームから他部署に 伝播するふりかえり文化
akitotsukahara
0
500
スピンオフサービス構築で培われた開発ノウハウをご紹介!
akitotsukahara
0
180
ビルドツールViteを10分で解説!
akitotsukahara
0
1.2k
今日からSvelteで開発だ! どうする?何から始める?
akitotsukahara
0
320
どのくらい速くなるの?Laravel MixとViteを性能比較してみました!
akitotsukahara
0
11k
スクラムマスターを経験して得られた学びとエンジニアとしての成長
akitotsukahara
0
450
Other Decks in Technology
See All in Technology
Shifting from MCP to Skills / ベストプラクティスの変遷を辿る
yamanoku
4
820
IBM Bobを使って、PostgreSQLのToDoアプリをDb2へ変換してみよう/202603_Dojo_Bob
mayumihirano
1
320
非情報系研究者へ送る Transformer入門
rishiyama
11
7.3k
「Blue Team Labs Online」入門 - みんなで挑むログ解析バトル
v_avenger
0
150
us-east-1 に障害が起きた時に、 ap-northeast-1 にどんな影響があるか 説明できるようになろう!
miu_crescent
PRO
13
4.2k
事例に見るスマートファクトリーへの道筋〜工場データをAI Readyにする実践ステップ〜
hamadakoji
1
300
Claude Code のコード品質がばらつくので AI に品質保証させる仕組みを作った話 / A story about building a mechanism to have AI ensure quality, because the code quality from Claude Code was inconsistent
nrslib
13
7.1k
AI時代のSaaSとETL
shoe116
1
120
アーキテクチャモダナイゼーションを実現する組織
satohjohn
0
430
(Test) ai-meetup slide creation
oikon48
1
310
Claude Code Skills 勉強会 (DevelersIO向けに調整済み) / claude code skills for devio
masahirokawahara
1
17k
Yahoo!ショッピングのレコメンデーション・システムにおけるML実践の一例
lycorptech_jp
PRO
1
200
Featured
See All Featured
Darren the Foodie - Storyboard
khoart
PRO
3
2.8k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
310
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
67
37k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
860
Statistics for Hackers
jakevdp
799
230k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.7k
Design in an AI World
tapps
0
170
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.1k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.4k
We Have a Design System, Now What?
morganepeng
55
8k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
210
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
290
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