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
unittest
Search
tsuyoshi nakamura
August 31, 2016
Technology
93
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
unittest
unit testをちゃんとした話
tsuyoshi nakamura
August 31, 2016
Transcript
8 slides
テストコードをちゃんとした話 中村剛 09/01 2015
アジェンダ ①なぜテストコードが書けていなかったのか反省と分析 ②現状を踏まえどうやって変えていったか ③まとめ
①:忙しさという名の響きに負けた 全くのゼロからのスタートアップでやるべき事が溢れ、後 回しになり結局、十分な時間が取れなかった フレームワークの比較見当、コーディング規約、テスト方 針、すべてが後手になり統一意識が取れず、各々が考え る実装でくみ上げられていった。
・同じようなメソッドが無駄に増える ・デグレが多発 ・単純な凡ミスが増加 ・ブラウザので手動テスト頼み、コストがドンドン膨らむ この時テストコードの存在すらないので当然カバレッジ0% よくあるダメなパターン
②:決めを作ってとにかく頑張る フレームワークの特性に合わせてある程度のコーディン グ規約を決めた。 頑張ってリファクタした。 Jenkinsでユニットテストを定期的に実施するようにした Jenkinsでテストの結果、カバレッジを視覚化した Githubに移行してレビュー行程を導入した
②:頑張った結果新たな問題も ビジネスサイドからすると、エンジニアは頑張ってコード書 いてるけど、別に新機能や改善されてる機能のリリースが 少ないという不満 抱えている問題、先送りすればするほど傷が深くなるので 今その問題に対応してる為、新機能開発が遅れている旨 を説明 といってもリファクタ+テストコードの実装だけでずっと人 員を避けないので、新規機能も実装+ボーイスカウトポリ シー(通りかかった道のゴミを拾うポリシー)で実装を進め
た
大きな声で言えないけど軽く無視してやり続けた。 (時として必要) 100%のカバレッジは果てしなく遠いゴールなので70〜80% した。Webサービスとして適正値と判断
③:まとめ ・いくら時間が無くとも頑張りどころはあって、ココで踏ん張 りきれずに妥協すると向こう2年をこの問題に悩まされる と考えて頑張る ・色々考えて決めたら、途中問題が出てきても頑張りきる ただし、結果間違った決めだった可能性もあるので時に 真摯に振返る ・自動化できる部分やツールで軽減できる事、定量的に見 える化は積極的に活用する
More Decks by tsuyoshi nakamura
See All by tsuyoshi nakamura
社内の勉強会で発表した_output_一部抜粋版_.pdf
tsuyoshi
0
520
PHPを少しでも早く_条件はあるよ_.pdf
tsuyoshi
0
97
スタートアップ6年目のレビュー文化.pdf
tsuyoshi
1
2k
PHPを少し深堀るよ.pdf
tsuyoshi
0
420
Reactive_Manifesto.pdf
tsuyoshi
0
100
About_Resilience.pdf
tsuyoshi
1
110
エンジニアの循環ってgood_or_bad_.pdf
tsuyoshi
0
1.4k
スタートアップしてからの失敗の数々
tsuyoshi
0
2.5k
スタートアップエンジニアの役割
tsuyoshi
0
570
Other Decks in Technology
See All in Technology
「任されビリティ」で引き受けて「よしなりてぃ」に頼らず任せる / Accept tasks with "makasarebility" and hand them over without relying on "yoshinarily"
pauli
0
620
速くなった開発の効果をどう推し量るのか
bulbulpaul
0
110
マネージャーをエスパーにしない マネジメントされる側から始める、働きやすい現場づくり
comi190327
0
490
AI時代における医療情報システムのセキュリティ / Security of Healthcare IT Systems in the AI Era
henryofficial
0
170
Biohub - Cell Tracking During Development 5th place solution
rist
0
160
常時稼働エージェントの作り方(Claude公式ブログを資料化)
minorun365
PRO
10
17k
サーバーラックは作る時代! 3Dプリンターで作る10インチラックのススメ
jacopen
1
130
Kiro を使うコツ (頼み方、覚えさせ方、任せ方) | 目指せ Kiro マスター 09
inariku
PRO
3
170
並列度を下げたら速くなった — go build の重複コンパイルを実測で見る
tomoaki25
2
1.2k
マネジメントされる側の仕事は「文句」を言うこと
riyaamemiya
6
4.9k
アラートを見直していたら営業組織への理解にちょっとだけ繋がった話
z63d
1
200
あの日、見つかっていなかったらどうなっていたか
kazzpapa3
2
220
Featured
See All Featured
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
560
Building the Perfect Custom Keyboard
takai
2
960
How to Think Like a Performance Engineer
csswizardry
28
2.9k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
2
350
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Large-scale JavaScript Application Architecture
addyosmani
516
110k
Abbi's Birthday
coloredviolet
5
11k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.4k
Raft: Consensus for Rubyists
vanstee
143
7.9k
Designing for humans not robots
tammielis
254
26k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
380