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
TDD完全に理解した.pdf
Search
ぐんちゃ
June 28, 2019
0
100
TDD完全に理解した.pdf
TDD完全に理解したと勘違いしながら昔作りました。
ぐんちゃ
June 28, 2019
Tweet
Share
More Decks by ぐんちゃ
See All by ぐんちゃ
BPP行脚_しんすく(け)さん
guncha
0
110
BPP行脚_第4回_よしたけさん
guncha
0
64
BPP行脚_第3回_なそさん
guncha
0
67
BPP行脚_第5回_みずのりさん
guncha
0
79
BPP行脚_第2回_リナさん
guncha
0
140
BPP行脚_第1回_Mayさん
guncha
0
240
JaSST nano vol.25 ぼくたちが考える最強の 「正常系、異常系、 ハッピーパス、ワンパス」
guncha
0
230
ぼくたちが考える最強の 「正常系、異常系、 ハッピーパス、ワンパス」分科会ワーク前
guncha
0
330
QAの世界Part1 オープニング
guncha
0
1.4k
Featured
See All Featured
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Code Reviewing Like a Champion
maltzj
523
40k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
780
Designing for humans not robots
tammielis
253
25k
Practical Orchestrator
shlominoach
187
11k
Testing 201, or: Great Expectations
jmmastey
42
7.5k
Why You Should Never Use an ORM
jnunemaker
PRO
56
9.3k
Building Applications with DynamoDB
mza
94
6.4k
The Pragmatic Product Professional
lauravandoore
33
6.6k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
13
820
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
BBQ
matthewcrist
88
9.6k
Transcript
TDD完全に理解した @akariwtnk
Table of contents Whatʼs TDD? TDDのルール TDDがもたらす影響 勇気や不安の話 参考⽂献 @akariwtnk
Whatʼs TDD? @akariwtnk
Whatʼs TDD? テスト駆動開発(Test-Driven Development) @akariwtnk
Whatʼs TDD? TDDのゴール:「動作するきれいなコード」 - 「動作するきれいなコード」のメリット 1. 開発が予測可能になる。完成したかどうかが分かり、バグが残っているかを⼼配する必要もない。 2. コードが伝えようとしていることを余すところなく受け取れる。 3.
あなたが作るソフトウェアのユーザを快適にする。 4. チームメイトはあなたを信頼し、チームメイトもまたあなたを信頼する。 5. 書いていて気持ちが良い。 @akariwtnk
TDDのルール @akariwtnk
TDDのルール 1. ⾃動化されたテストが失敗したときのみ、新しいコードを書く。 2. 重複を除去する。 @akariwtnk
TDDのルール TDDにおける作業の順序 1. レッド:動作しない。恐らく最初のうちはコンパイルも通らないテストを1 つ書く。 2. グリーン:そのテストを迅速に動作させる。このステップでは罪を犯してもよい。 3. リファクタリング:テストを通すために発⽣した重複をすべて除去する。 @akariwtnk
TDDがもたらす影響 @akariwtnk
TDDがもたらす影響 TDDが個⼈とグループにもたらす技術的影響 - 有機的に設計を進められるようになる。 - ⾃分たちでテストを書くようになる。 - ⼩さな変更に迅速に応答する開発環境を備えなくてはならなくなる。 - 凝集度が⾼く結合度が低いたくさんの部品で構成された設計をおこなうようになる。
@akariwtnk
TDDがもたらす影響 TDDが周囲の⼈びととの関係にもたらす影響 - ⽋陥率を下げられる→ 品質保証担当者は先⼿を打って仕事ができる。 - 悪い知らせを⼗分に減らせる→PM は正確な⾒積もりができる。 - 技術的な議論の対象の明確化→
エンジニアは週や⽇ではなく分単位のコミュニケーションができる。 - ⽋陥率を下げられる→ 新しい機能を伴うソフトウェアを毎⽇リリースできる。→ 顧客との新たな関係が作れる。 @akariwtnk
勇気や不安の話 @akariwtnk
勇気や不安の話 - テスト駆動開発は、プログラミング中の不安をコントロールする⼿法。 - 不安は「気をつけろ」というサイン。 @akariwtnk
勇気や不安の話 - 不安には悪い効果もある。 - 不安はためらいを⽣む。 - 不安はコミュニケーションを減らす。 - 不安はフィードバックから逃げ腰にさせる。 -
不安はいらいらさせる。 - 上記は全て、プログラミングを妨げる要因になる。難しい問題と対峙しているときはなおさら。 @akariwtnk
勇気や不安の話 - 問題は、どのように難しい局⾯と対峙するか、に変わる。 - 躊躇いがちになるのではなく、可能な限り素早く着実に学び始めること。 - 黙り込むのではなく、はっきりとコミュニケーションをとること。 - フィードバックを避けるのではなく、具体的で有⽤なフィードバックを探し出すこと。 -
( ⾃分のイライラは⾃分で対処しなければならない) @akariwtnk
TDDについての本 KentBeck著、和⽥卓⼈訳『テスト駆動開発』オーム社、2017。 - 訳者の和⽥卓⼈さんは、TDD のスペシャリスト。 - 『SQL アンチパターン』の訳者でもある。 - 「テスト書いてないとかお前それt-
wada の前でも同じこと⾔えんの?」の⼈ - スライドこちら https://www.slideshare.net/t_wada @akariwtnk
TDDについての本 『テスト駆動開発』の構成 1. 他国通貨:TDDで書かれた典型的なモデルのコードを例⽰。 2. xUnit:⾃動テストのフレームワークを実際に開発しながら、 より複雑なロジックを学ぶ。 3. テスト駆動開発のパターン:どのようなテストを書くかの判断についてのパターン、 xUnitを使⽤したテストのパターン、
選りすぐりのデザインパターンとリファクタリング @akariwtnk
参考⽂献 KentBeck著、和⽥卓⼈訳『テスト駆動開発』オーム社、2017。 @akariwtnk