Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
組織にテストコードを書く文化を 根付かせるためにやってきたこと
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
CyberAgent SGE Engineer
June 29, 2017
Programming
4.5k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
組織にテストコードを書く文化を 根付かせるためにやってきたこと
組織にテストコードを書く文化を 根付かせるためにやってきたこと
@Next game engineer_summit
CyberAgent SGE Engineer
June 29, 2017
More Decks by CyberAgent SGE Engineer
See All by CyberAgent SGE Engineer
SREチームの立ち上げから5年間とこれから
sgeengineer
0
2.7k
サムザップにおけるNotionの 活用事例とPHPでのNotionAPIを利用した仕組み構築の紹介
sgeengineer
0
2.9k
Laravel OctaneをどうしてもPharで運用したい話
sgeengineer
2
3.5k
大規模Unityゲーム開発の設計事例 〜ドメイン駆動設計とDIコンテナを導入した一年を振り返る〜 / cedec2021-ddd
sgeengineer
5
23k
ロボットを動かすビジュアルプログラミングでできることはPHPでもできる!
sgeengineer
0
2.6k
PHP8版!Swooleのフレームワークを比べてみた
sgeengineer
1
3.7k
「戦国炎舞 -KIZNA-」で行ったAWSのコスト最適化の話
sgeengineer
0
2.6k
AirtestとPocoとOpenSTFによるUnity製スマートフォン向けゲームの実機自動テスト環境構築とその利用方法
sgeengineer
0
6k
PHPでgRPCって どこまでいけるの?
sgeengineer
0
5.8k
Other Decks in Programming
See All in Programming
KiroのSpecで「五目並べ」を作ってみる
satoshi256kbyte
1
380
sbt 2.0: takeoff
eed3si9n
0
160
Domain-Driven Transformation
hschwentner
2
2.3k
コードレビューのボトルネックを"する側"と"される側"の両面から解消する
yub0n
2
1.6k
Compiling a real-world CLI tool to native with Static Hermes
tmikov2023
0
110
見えないものを探る要求要件定義に必要な基本的思考 / invisible-requirement-thinking
minodriven
15
8.4k
JIS keyboard support in Omarchy
lef237
0
110
Herb in Rails 8.2: Your ERB views, now HTML-aware @ Rails World 2026, Austin, Texas
marcoroth
0
210
動作中のプログラムの中身をリアルタイムに覗く / Realtime Debugger for CSharp with Roslyn
prota
1
1.9k
GemmaをJevのように使ってみる / Use Gemma like Jev
kishida
5
780
Starting & Sustaining Code-Based E2E Testing for Non-Coding QA Teams( #jasstniigata )
teyamagu
PRO
1
990
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
150
Featured
See All Featured
BBQ
matthewcrist
90
10k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.3k
How to build a perfect <img>
jonoalderson
1
6.1k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
4
4.4k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
WENDY [Excerpt]
tessaabrams
14
40k
Music & Morning Musume
bryan
48
7.4k
Practical Orchestrator
shlominoach
192
12k
Claude Code のすすめ
schroneko
67
230k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2.1k
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
Transcript
組織にテストコードを書く文化を 根付かせるためにやってきたこと 2017/06/29 塚原 裕也 @Next Game Engineer Summit
塚原 裕也 (つかはら ゆうや) 株式会社グレンジ リードエンジニア / マネージャー
2008/04 SIのベンチャーでエンジニア始める 2012/02 サイバーエージェントグループのゲーム系子会社 CyberX入社 2014/11 グレンジへ合流し、現在に至る
2011/02/01 設立 グレンジって? ※絶賛新規仕込み中 提供アプリ ポコロンダンジョンズ
リリース - iOS:2014年6月 - Android:2014年8月 ダウンロード数 - 1000万突破 ポコダンって?
なぞって、えい!
改めて、今日話すこと。 組織にテストコードを書く文化を 根付かせるためにやってきたこと 運用中のタイトルに導入して カバレッジを90%以上にした話
みなさん、 テストコード書いてますか? まずは・・・
None
・リリースして10ヶ月くらい ・テストコードは”ゼロ” ・不具合が多く不安定 ・テストがないのにリファクタリングと いう名目で実装が行われる ・”祈る”開発 - 影響範囲が未知で自信ない 導入前の状況。
・1年間でカバレッジ90%超 (現在のカバレッジは95%) ・生産性が上がった ・テストコードがないと不安 ・”祈らない”開発 - コードに自信が持てている 導入後の状況。
・忙しくてテストを書く時間はない ・よくわかんないけど、面倒くさそう ・テスト書く時間あったら他の機能 を実装して欲しい 越えないといけない反発。 余計に反発強め テストコード経験なし 運用中のサービス ×
他セクション向け の取り組み。 (もちろんエンジニアにもする話)
「テスト書く時間あったら他の機能 を実装して欲しい」 ・工数が余計にかかることはない (必要な時間という認識) ・無駄な手戻りが減り円滑に進む スケジュール面でアピール。
・品質が見える化する ※テストを書いたら品質が上がるわ けではなく、品質はリファクタリング などで上がる。テストはその布石。 品質面でアピール。
・生産性があがる - 開発スピードが上がる - 仕様変更に強くなる - エンジニアが自信を持って開発 したコードの方が安心 もっと仕事するアピール。
エンジニア向けの 取り組み。
・理解者を増やす(根気が必要) ・「時間がない」のはテストを書かな いから ・テストコードの工数も含めて見積 もりする(時間がないを言い訳にさせない) ・時間はあげるから書いてくれ 理解してもらう。
・推進する人を立てる ・カバレッジを見える化して煽る (穴埋めするのを楽しむ) ・TDDに拘らない ・新規ファイルはテストを必ず書く (本当にどうしても時間ないときは後から書く) ・既存ファイルは空いた時間or機 能改修する時に書く 進め方。
海外版開発チームからテストコードの ベース部分を逆輸入。 とにかく導入する。 メンバーが合流するのを機に押し進めた。
"require-dev": { "phpunit/phpunit": "3.7.*", "squizlabs/php_codesniffer": "~2.3", "sebastian/phpcpd": "~2.0", "phpmd/phpmd": "~2.2",
"phing/phing": "~2.11" } 使用ライブラリ。 composer.json
・Jenkinsの利用 - Gitのpushをトリガーに実行 - カバレッジ計算 - コード規約チェック - 冗長なコード検出を行う 自動化。
カバレッジ見える化。 半年 1年 現在
・他セクションの理解を得られないと導入が進ま ない ・とにかく書いてテストコードのメリットを体験しな いと本当には理解してもらえない ・見える化大事 ・カバレッジを増やすことにモチベーションを持てる 人を味方につけると進捗が早い ・諦めない心と強い信念が必要 ・テストコードは安定化させるための一つの手段 でしかない(これだけじゃ安定しないよ)
まとめ。
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ