Upgrade to Pro — share decks privately, control downloads, hide ads and more …

書籍『テスト駆動開発』7つの魅力のご紹介

eiji.ienaga
January 25, 2018
1.1k

 書籍『テスト駆動開発』7つの魅力のご紹介

2018 アジャイル事業部 年始のご挨拶 LTの資料。
ぜんぜん最後までいかなかったけどね

eiji.ienaga

January 25, 2018
Tweet

More Decks by eiji.ienaga

Transcript

  1. ”本書『 テスト 駆動 開発』 の第 I 部、第II部が特殊な書き方をさ れているのは、 この「 過程」を読者に追体験してもらうためです。

    テスト駆動開発の本質 をつかむためには、 まとまった量の、手 を動かしながら学べる良質なチュートリアルが必要なのです。 KentBeck. テスト駆動開発 (Kindle の位置No.5260-5263). Kindle 版. 付録Cより
  2. “テスト駆動開発 は、 プログラミング中の不安をコントロールす る手法だ。ここでは「 不安」を悪い意味で使って いるのではない (我々は 赤ちゃんでは ないからね)。「 これは困難な問題なの

    で、最初からすべてを見通せるわけではない」という真っ当な感 覚のことだ。 KentBeck . テスト駆動開発 (Kindle の位置No.59-62). Kindle 版.
  3. 第 III 部 テスト駆動開発のパターン テスト駆動開発のパターン • テスト(名詞) • 独立したテスト •

    TODOリスト • テストファースト • アサートファースト • テストデータ • 明示的なデータ レッドバーのパターン • 一歩を示すテスト • はじめのテスト • 説明的なテスト • 学習用テスト • 脱線はTODOリストへ • 回帰テスト • 休憩 • やり直す • 安い机に良い椅子
  4. 第 III 部 テスト駆動開発のパターン テスティングのパターン • 小さいテスト • Mock Object

    • Self Shunt • Long String • Crash Test Dummy • 失敗させたままのテスト • きれいなチェックイン グリーンバーのパターン • 仮実装を経て本実装へ • 三角測量 • 明白な実装 • 一から多
  5. 第 III 部 テスト駆動開発のパターン xUnitのパターン • アサート • フィクスチャー •

    外部フィクスチャー • テストメソッド • 例外のテスト • まとめテスト デザインパターン • Command • Value Object • Null Object • Template Method • Pluggable Object • Pluggable Selector • Factory Method • Imposter • Composite • Collecting Parameter • Singletone
  6. 第 III 部 テスト駆動開発のパターン リファクタリング • 差異をなくす • 変更の差分 •

    データ構造の変更 • メソッドの抽出 • メソッドのインライン化 • インタフェースの抽出 • メソッドの移動 • メソッドオブジェクト • パラメータの追加 • メソッド から コンス トラクタ への パラメータ の 移動
  7. • リファクタリングを強化してみる ◦ 差異をなくす ◦ メソッドの抽出 • 更にTDDのRedGreenRefactorのリズムに近づ く ◦

    テストファースト ◦ アサートファースト • うまく行かなかったら ◦ パターン適用を一旦中断し、適切なタイミ ングで再度チャレンジする 悪循環ループから抜け出し 好循環ループを育てていこう • 例えば少し制約を緩めて次から始める ◦ TODOリスト ◦ テスト(名詞) ◦ 小さいテスト ◦ 明白な実装 • 実装につまずいたら ◦ ”仮実装を経て本実装へ ”で歩幅を小さく するを試す