---
title: TDD完全に理解した
tags: 
author: [ぐんちゃ](https://convert.docswell.com/user/guncha)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/LJ1MP6G2EG.jpg?width=480
description: 新卒の頃、TDD完全に理解したと勘違いしながら作りました。
published: June 28, 19
canonical: https://convert.docswell.com/s/guncha/ZENVLQ-completely-understood-tdd
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/LJ1MP6G2EG.jpg)

TDD完全に理解した
@akariwtnk


# Page. 2

![Page Image](https://bcdn.docswell.com/page/GJW32WK2J2.jpg)

Table of contents
Whatʼs TDD?
TDDのルール
TDDがもたらす影響
勇気や不安の話
参考⽂献
@akariwtnk


# Page. 3

![Page Image](https://bcdn.docswell.com/page/4EZVD5Z4J3.jpg)

Whatʼs TDD?
@akariwtnk


# Page. 4

![Page Image](https://bcdn.docswell.com/page/Y76519ZGEV.jpg)

Whatʼs TDD?
テスト駆動開発(Test-Driven Development)
@akariwtnk


# Page. 5

![Page Image](https://bcdn.docswell.com/page/G75Y4NWX74.jpg)

Whatʼs TDD?
TDDのゴール：「動作するきれいなコード」
-
「動作するきれいなコード」のメリット
1. 開発が予測可能になる。完成したかどうかが分かり、バグが残っているかを⼼配する必要もない。
2. コードが伝えようとしていることを余すところなく受け取れる。
3. あなたが作るソフトウェアのユーザを快適にする。
4. チームメイトはあなたを信頼し、チームメイトもまたあなたを信頼する。
5. 書いていて気持ちが良い。
@akariwtnk


# Page. 6

![Page Image](https://bcdn.docswell.com/page/9J2GV5QQJR.jpg)

TDDのルール
@akariwtnk


# Page. 7

![Page Image](https://bcdn.docswell.com/page/DEYV3KWYEM.jpg)

TDDのルール
1.
2.
@akariwtnk
⾃動化されたテストが失敗したときのみ、新しいコードを書く。
重複を除去する。


# Page. 8

![Page Image](https://bcdn.docswell.com/page/VJNMVR9R78.jpg)

TDDのルール
TDDにおける作業の順序
1.
2.
3.
@akariwtnk
レッド：動作しない。恐らく最初のうちはコンパイルも通らないテストを1つ書く。
グリーン：そのテストを迅速に動作させる。このステップでは罪を犯してもよい。
リファクタリング：テストを通すために発⽣した重複をすべて除去する。


# Page. 9

![Page Image](https://bcdn.docswell.com/page/YE9N6M2ZE3.jpg)

TDDがもたらす影響
@akariwtnk


# Page. 10

![Page Image](https://bcdn.docswell.com/page/GE8KZLMY7D.jpg)

TDDがもたらす影響
TDDが個⼈とグループにもたらす技術的影響
-
@akariwtnk
有機的に設計を進められるようになる。
⾃分たちでテストを書くようになる。
⼩さな変更に迅速に応答する開発環境を備えなくてはならなくなる。
凝集度が⾼く結合度が低いたくさんの部品で構成された設計をおこなうようになる。


# Page. 11

![Page Image](https://bcdn.docswell.com/page/LELZDL39JR.jpg)

TDDがもたらす影響
TDDが周囲の⼈びととの関係にもたらす影響
-
⽋陥率を下げられる→品質保証担当者は先⼿を打って仕事ができる。
悪い知らせを⼗分に減らせる→PMは正確な⾒積もりができる。
技術的な議論の対象の明確化→エンジニアは週や⽇ではなく分単位のコミュニケーションができる。
⽋陥率を下げられる→新しい機能を伴うソフトウェアを毎⽇リリースできる。→顧客との新たな関係が作れる。
@akariwtnk


# Page. 12

![Page Image](https://bcdn.docswell.com/page/4JMVPMDVJW.jpg)

勇気や不安の話
@akariwtnk


# Page. 13

![Page Image](https://bcdn.docswell.com/page/PJR21V4WE9.jpg)

勇気や不安の話
-
@akariwtnk
テスト駆動開発は、プログラミング中の不安をコントロールする⼿法。
不安は「気をつけろ」というサイン。


# Page. 14

![Page Image](https://bcdn.docswell.com/page/PEXDYZ2V7X.jpg)

勇気や不安の話
-
-
@akariwtnk
不安には悪い効果もある。
- 不安はためらいを⽣む。
- 不安はコミュニケーションを減らす。
- 不安はフィードバックから逃げ腰にさせる。
- 不安はいらいらさせる。
上記は全て、プログラミングを妨げる要因になる。難しい問題と対峙しているときはなおさら。


# Page. 15

![Page Image](https://bcdn.docswell.com/page/3EKX38M57D.jpg)

勇気や不安の話
-
@akariwtnk
問題は、どのように難しい局⾯と対峙するか、に変わる。
- 躊躇いがちになるのではなく、可能な限り素早く着実に学び始めること。
- 黙り込むのではなく、はっきりとコミュニケーションをとること。
- フィードバックを避けるのではなく、具体的で有⽤なフィードバックを探し出すこと。
- (⾃分のイライラは⾃分で対処しなければならない)


# Page. 16

![Page Image](https://bcdn.docswell.com/page/L735G2Y1E5.jpg)

TDDについての本
KentBeck著、和⽥卓⼈訳『テスト駆動開発』オーム社、2017。
-
@akariwtnk
訳者の和⽥卓⼈さんは、TDDのスペシャリスト。
『SQLアンチパターン』の訳者でもある。
「テスト書いてないとかお前それt- wadaの前でも同じこと⾔えんの？」の⼈
スライドこちら https://www.slideshare.net/t_wada


# Page. 17

![Page Image](https://bcdn.docswell.com/page/87DD1Z5K7G.jpg)

TDDについての本
『テスト駆動開発』の構成
1. 他国通貨:TDDで書かれた典型的なモデルのコードを例⽰。
2. xUnit:⾃動テストのフレームワークを実際に開発しながら、
より複雑なロジックを学ぶ。
3. テスト駆動開発のパターン:どのようなテストを書くかの判断についてのパターン、
xUnitを使⽤したテストのパターン、
選りすぐりのデザインパターンとリファクタリング
@akariwtnk


# Page. 18

![Page Image](https://bcdn.docswell.com/page/VJPXQDG378.jpg)

参考⽂献
KentBeck著、和⽥卓⼈訳『テスト駆動開発』オーム社、2017。
@akariwtnk


