SlideShare a Scribd company logo
私にとっての
テスト
和田 卓人 (a.k.a id:t-wada or @t_wada)
Jul 24, 2013 @Testing Casual #1
和田 卓人
id: t-wada
@t_wada
github: twada
#97prog_ja
#sqlap
Agenda
•「品質」について
•TDD の T について
•(TDD の) 良いテストとは
•才能と技術
•私にとって TDD とは
品質
品質とは何か
品質とは誰かにとっ
ての価値である
Accessibility
Adaptability
Administrability
Analyzability
Auditability
Availability
Calibrability
Changeability
Compatibility
Configurability
Exploitability
Extensibility
Flexibility
Functionality
Installability
Integrability
Internationalizability
Interoperability
Learnability
Maintainability
Marketability
Maturity
Modifiability
Operability
Personalizability
Portability
Recoverability
Reliability
Replaceability
Reusability
Scalability
Security
Sensitivity
Stability
Suitability
Supportability
Testability
Traceability
Transactionality
Understandability
Upgradeability
Usability
... and lots more!
「品質」は
なにやら難しそうで、
ちょっと怖そうに見えがち
「品質」っちゅうか
ら難しく聞こえてまう
んや。「質」と言えば
皆わかってくれる。
(出典失念。テレビかラジオのインタビュー番組より)
品質
私たちには、何か「良いも
の」を見抜く能力があらか
じめ備わっている
QWAN
(Quality without a name)
1. 生き生き alive
2. 全一的 whole
3. 快適 comfortable
4. 自由 free
5. 正確 exact
6. 無我 egoless
7. 永遠 eternal
http://www.itmedia.co.jp/im/articles/0610/25/news127.html
戻ります……
(´・ω・`)
http://www.thomasalspaugh.org/pub/fnd/ility.html
Boehm, Brown, and Lipow's 23 Quality Characteristics (1976)
Agenda
•「品質」について
•TDD の T について
•(TDD の) 良いテストとは
•才能と技術
•私にとって TDD とは
TDDの
T について
TDDのサイクル
1. 次の目標を考える
2. その目標を示すテストを書く
3. そのテストを実行して失敗させる(Red)
4. 目的のコードを書く
5. 3で書いたテストを成功させる(Green)
6. テストが通るままでリファクタリングを行
う(Refactor)
7. 1∼6を繰り返す
「動作するきれいなコード」、ロン・ジェフ
リーズのこの簡潔な言葉は、TDD(テスト駆
動開発)の目標である。動作するきれいなコー
ドは、あらゆる理由で価値がある。
─ Kent Beck
テストとは,エラーをみつ
けるつもりでプログラムを
実行する過程である
あるテストエンジニア
の思い出
テストとは
創造的破壊行為
http://www.developsense.com/blog/2009/08/testing-vs-checking/
Testing
or
Checking
TDD は
Checking
https://speakerdeck.com/everzet/bdd-in-symfony2
Checking
だけじゃダメ
http://www.exampler.com/old-blog/2003/08/21/#agile-testing-project-1
Brian Marick による四象限モデル
http://lisacrispin.com/2011/11/08/using-the-agile-testing-quadrants/
http://www.thomasalspaugh.org/pub/fnd/ility.html
Joseph P. Cavano and James A. McCall.A framework for the measurement of software quality. In
software quality assurance workshop on Functional and performance issues, pages 133–139, 1978.
Cavano and McCall s 11 Quality Factors (1978)
Agenda
•「品質」について
•TDD の T について
•(TDD の) 良いテストとは
•才能と技術
•私にとって TDD とは
(Checking の文脈での)
良いテストは
どんなものか
F.I.R.S.T
=> クリーンテストの5つの規則
Fast
Independent
Repeatable
Self-Validating
Timely
高速である
独立している
再現性がある
自己検証可能
適時性がある
R > S >>> I >>>>>>>>> F >>> T
再現性がある > 自己検証可能 >>> 独立している >>>>>>>>> 高速である >>> 適時性がある
A-TRIP
=> 良質なテストの特性
Automated
Thorough
Repeatable
Independent
Professional
自動
徹底
繰り返し可能
独立している
専門的
R > A >>> I > P >>>>>>>>>> T
繰り返し可能 > 自動 >>> 独立している > 専門的 >>>>>>>>>> 徹底
F.I.R.S.T
A-TRIP
共通するもの
Fast
Independent
Repeatable
Self-Validating
Timely
Automated
Thorough
Repeatable
Independent
Professional
Fast
Independent
Repeatable
Self-Validating
Timely
Automated
Thorough
Repeatable
Independent
Professional
Agenda
•「品質」について
•TDD の T について
•(TDD の) 良いテストとは
•才能と技術
•私にとって TDD とは
才能と技術に
ついて
テストでは品質は上がらない
ですよ。テストはあくまでも品
質をあげるきっかけ。品質をあ
げるのはプログラミングです。
これは大昔からそう。
私にとってのテスト
私にとってのテスト
シンプルさは信頼性の前提である
――Edsger W. Dijkstra
複雑さはシステムに損傷をもたらす
――Bertrand Meyer
Simplicity matters.
――Rich Hickey
まったく同じ予測をする2つの競
合する理論があるときは、単純な
方が優れている。
――節約の原則
きれい
汚い
(すぐには)動かない 動作する
Red
Green
Refactoring
TDDと黄金の回転
Agenda
•「品質」について
•TDD の T について
•(TDD の) 良いテストとは
•才能と技術
•私にとって TDD とは
私にとって
TDDとは
無意識
意識的
無鉄砲 用心深い
http://capsctrl.que.jp/kdmsnr/wiki/bliki/?TechnicalDebtQuadrant
Fowler による技術的負債の四象限モデル
この象限が手強い
自動テストの良いところは、
改善を我慢しなくても良く
なったこと
全ては変化する
仕様が固まることは無い
開発が終わることは無い
理解は常に深化する
スキルも常に進化する
技術も常に進化する
私の好きなテストは
変化を妨げないテスト
変化を後押しするテスト
私にとって
TDD とは 悪あがき
あきらめずに改善したい
自分のコードを嫌いたくない
TDDはスキルです
•ひとりから始められる
•テストやTDDはスキルです。つまり…
•才能ではなく、習得可能です
•量は質に転化します
•写経しましょう!!
ご清聴ありがとうございました

More Related Content

What's hot (20)

PDF
テスト文字列に「うんこ」と入れるな
Kentaro Matsui
 
PDF
フロー効率性とリソース効率性について #xpjug
Itsuki Kuroda
 
PDF
大企業アジャイルの勘所 #devlovex #devlovexd
Itsuki Kuroda
 
PPTX
WayOfNoTrouble.pptx
Daisuke Yamazaki
 
PDF
それはYAGNIか? それとも思考停止か?
Yoshitaka Kawashima
 
PDF
IT系エンジニアのためのプレゼンテーション入門
Masahito Zembutsu
 
PDF
TDD のこころ
Takuto Wada
 
PPTX
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
Tokoroten Nakayama
 
PDF
データベース設計徹底指南
Mikiya Okuno
 
PPTX
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
Tokoroten Nakayama
 
PDF
40歳過ぎてもエンジニアでいるためにやっていること
onozaty
 
ODP
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
pospome
 
PPTX
Redisの特徴と活用方法について
Yuji Otani
 
PDF
ブルックスのいう銀の弾丸とは何か?
Yoshitaka Kawashima
 
PDF
結果的に組織がAgileな状態であること #agile #scrum #leanstartup
Itsuki Kuroda
 
PDF
DBスキーマもバージョン管理したい!
kwatch
 
PDF
マイクロにしすぎた結果がこれだよ!
mosa siru
 
PDF
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
Y Watanabe
 
PDF
ビジネスパーソンのためのDX入門講座エッセンス版
Tokoroten Nakayama
 
PDF
劇的改善 Ci4時間から5分へ〜私がやった10のこと〜
aha_oretama
 
テスト文字列に「うんこ」と入れるな
Kentaro Matsui
 
フロー効率性とリソース効率性について #xpjug
Itsuki Kuroda
 
大企業アジャイルの勘所 #devlovex #devlovexd
Itsuki Kuroda
 
WayOfNoTrouble.pptx
Daisuke Yamazaki
 
それはYAGNIか? それとも思考停止か?
Yoshitaka Kawashima
 
IT系エンジニアのためのプレゼンテーション入門
Masahito Zembutsu
 
TDD のこころ
Takuto Wada
 
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
Tokoroten Nakayama
 
データベース設計徹底指南
Mikiya Okuno
 
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
Tokoroten Nakayama
 
40歳過ぎてもエンジニアでいるためにやっていること
onozaty
 
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
pospome
 
Redisの特徴と活用方法について
Yuji Otani
 
ブルックスのいう銀の弾丸とは何か?
Yoshitaka Kawashima
 
結果的に組織がAgileな状態であること #agile #scrum #leanstartup
Itsuki Kuroda
 
DBスキーマもバージョン管理したい!
kwatch
 
マイクロにしすぎた結果がこれだよ!
mosa siru
 
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
Y Watanabe
 
ビジネスパーソンのためのDX入門講座エッセンス版
Tokoroten Nakayama
 
劇的改善 Ci4時間から5分へ〜私がやった10のこと〜
aha_oretama
 

Viewers also liked (7)

PDF
OSS活動の活発さと評価の関係について
Takuto Wada
 
PDF
power-assert in JavaScript
Takuto Wada
 
PDF
TDD のこころ @ OSH2014
Takuto Wada
 
PDF
Reviewing RESTful Web Apps
Takuto Wada
 
PDF
RESTful Web アプリの設計レビューの話
Takuto Wada
 
PDF
ペアプログラミング ホントのところ
Takuto Wada
 
PDF
組織にテストを書く文化を根付かせる戦略と戦術
Takuto Wada
 
OSS活動の活発さと評価の関係について
Takuto Wada
 
power-assert in JavaScript
Takuto Wada
 
TDD のこころ @ OSH2014
Takuto Wada
 
Reviewing RESTful Web Apps
Takuto Wada
 
RESTful Web アプリの設計レビューの話
Takuto Wada
 
ペアプログラミング ホントのところ
Takuto Wada
 
組織にテストを書く文化を根付かせる戦略と戦術
Takuto Wada
 
Ad

More from Takuto Wada (19)

PDF
unassert - encourage reliable programming by writing assertions in production
Takuto Wada
 
PDF
OSS についてあれこれ
Takuto Wada
 
PDF
power-assert, mechanism and philosophy
Takuto Wada
 
PDF
アジャイルサムライの次に読む技術書
Takuto Wada
 
PDF
テスト用ライブラリ power-assert
Takuto Wada
 
PDF
テストを書く文化を育てる戦略と戦術
Takuto Wada
 
PDF
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
Takuto Wada
 
PDF
SQLアンチパターン - 開発者を待ち受ける25の落とし穴
Takuto Wada
 
PDF
愛せないコードを書くには人生はあまりにも短い
Takuto Wada
 
PDF
TDDBC お題
Takuto Wada
 
PDF
DevLOVE DDDBC
Takuto Wada
 
PDF
TDDBC Fukuoka Day1
Takuto Wada
 
PDF
js テスト放浪記
Takuto Wada
 
PDF
xUTP Chapter19 (2). Testcase Class
Takuto Wada
 
PDF
xUTP Chapter26. Dependency Injection
Takuto Wada
 
PDF
xUTP Chapter27 Generated Value
Takuto Wada
 
PDF
The only one big thing every programmer should know
Takuto Wada
 
PDF
10+1 Things you should know about JavaScript testing
Takuto Wada
 
PDF
Tochigi Test-no-Kaigi position paper
Takuto Wada
 
unassert - encourage reliable programming by writing assertions in production
Takuto Wada
 
OSS についてあれこれ
Takuto Wada
 
power-assert, mechanism and philosophy
Takuto Wada
 
アジャイルサムライの次に読む技術書
Takuto Wada
 
テスト用ライブラリ power-assert
Takuto Wada
 
テストを書く文化を育てる戦略と戦術
Takuto Wada
 
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
Takuto Wada
 
SQLアンチパターン - 開発者を待ち受ける25の落とし穴
Takuto Wada
 
愛せないコードを書くには人生はあまりにも短い
Takuto Wada
 
TDDBC お題
Takuto Wada
 
DevLOVE DDDBC
Takuto Wada
 
TDDBC Fukuoka Day1
Takuto Wada
 
js テスト放浪記
Takuto Wada
 
xUTP Chapter19 (2). Testcase Class
Takuto Wada
 
xUTP Chapter26. Dependency Injection
Takuto Wada
 
xUTP Chapter27 Generated Value
Takuto Wada
 
The only one big thing every programmer should know
Takuto Wada
 
10+1 Things you should know about JavaScript testing
Takuto Wada
 
Tochigi Test-no-Kaigi position paper
Takuto Wada
 
Ad

私にとってのテスト