Upload
kyon-mm
View
897
Download
0
Embed Size (px)
DESCRIPTION
#TDDMeetUp での発表資料です。
Citation preview
TestLevel with TDD
UnitTestは最もTDDしやすいか否か?2013.06.17 #TDDMeetUP
Self Introduction
きょん(@kyon_mm)
テストエンジニア
Groovy, C#, F#, Scala
SCMBootCamp, Nagoya.Testing, CDStudy, 基礎勉強会, Cafe.Testing, STAR
TestLevel
ソフトウェアテストの言葉入門 - うさぎ組 -
http://d.hatena.ne.jp/kyon_mm/20121217/1356444948
TDD
TDDを明確に定義する-うさぎ組-
http://d.hatena.ne.jp/kyon_mm/20120830/1346344839
http://tomykaira.hatenablog.com/entry/2012/09/02/235405
http://d.hatena.ne.jp/kyon_mm/20120909/1347241462
TDD Speeeeed
テストコードを考える
テストコードを書く RED
プロダクトコードを実装する GREEN
リファクタリングする REFACTOR
TestLevel Speeeeed
Unit > Component > Integration > System
テストレベルが上がると考慮すべき事が多い
テストコード自体の難しさが上がる
Large TestLevelComplex Problem
複雑な問題をいきなり解くのは難しい
より小さな問題に分割して解決するのは正しい
テストレベルを小さくするのは物事を習う上でも自然な流れ
Speed is Justice ?
TDDは開発者が気持ちよくコードを書く事を支援するのであれば、スピードだけではないはずである。。。?
Outer SpecInner Spec
TDDは外部仕様に着目する事がなににおいても重要である
であれば、外部仕様と内部仕様を分割しやすいテストがあるはずである
Outer SpecInner Spec
UnitTestはスピードがあがる一方で、内部仕様に着目してしまう可能性が高くなる
Integration Testはスピードが遅くなる一方で、内部仕様をあまり気にしなくなる可能性が高くなる
Outer SpecInner Spec
Unit Componet Integration System
テストレベル
内部仕様を気にしなくなる度合いTDDのスピード
TDD is Learning
外部設計に着目しながら開発する意味ではテストレベルは高い方がよい(Integration Test以上
スピードを重視する意味ではテストレベルは低い方がよい(ComponentTest以下
どんなTDDにするか選択する必要がある
両立出来るように努力するのも大切