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

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

Avatar for eiji.ienaga eiji.ienaga
January 25, 2018
1.2k

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

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

Avatar for eiji.ienaga

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リスト ◦ テスト(名詞) ◦ 小さいテスト ◦ 明白な実装 • 実装につまずいたら ◦ ”仮実装を経て本実装へ ”で歩幅を小さく するを試す