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

【超図解】5分でわかるTDD概論

 【超図解】5分でわかるTDD概論

2025年のGWにt_wada本(敬称略)を読んでいい刺激を受けたので、自分なりにTDDの概論についてまとめてみました。ちなみに当日現地でLTを実施した所(僕がLT下手すぎて)一通り説明するのに20分前後掛かりました。皆さんは5分で読んでください。

Avatar for なゆた

なゆた

May 09, 2025
Tweet

Other Decks in Programming

Transcript

  1. まずエントロピーとは? • 情報エントロピー(IT用語、FEの内容なので説明は割愛)※1 • コードが長くなればなるほど(if文が増えるほど)状態遷移のパターンは 無限に増大する。→エントロピーの増大 • エントロピーが増えるとプログラミングが大変、システム開発を円滑に進 めるためにはテストやリファクタリング等により、エントロピーを現実的 な範囲に収束させる必要がある。

    ※1 ここでいうエントロピーは全て情報エントロ ピーの事を指します。IPAがFE等で示すエント ロピーの定義とシャノンのエントロピーが指す 内容には若干のズレがあるのですが、細かい話 をするとそれだけで1時間コースなので、気に なる人は後で各自調べてください。 エントロピーが 大きい(多い) エントロピーが 小さい(少ない) 簡単なスクリプト 大企業の基幹システム 会計処理 CRUD 画面遷移の無い フリーソフト 会員登録機能 WEB開発 よく分からんソフトウェア モバイル開発 神エクセル 管理画面 開発が 大変 Hard 開発が 簡単 Easy
  2. とはいえ面倒臭くないか? • テスト→実装という流れで内容が重複するので実際二度手間 • これ以上仕事を増やすなという現場の声 • 管理職クラスの無理解 従来工法(理想) 従来工法(現実) TDD?

    要件定義・設計 実装作業 テスト 要件定義・設計 実装作業 テスト 納期遅延 潜在バグ のリスク 要件定義・設計 テスト 実装作業 納期 キックオフ
  3. 面倒臭さの先にある利便性 • 一貫性 • 抽象と具象の整理整頓 • 具象から抽象を更新するフィードバックループ ・もしかしたら正しい仕様を書く必要が無い(かもしれない。) ①抽象 (仕様書)

    ③具象 (実装コード) ④TDD、テストに基づく具象を実装することによって逆説的に テストコードの是非が判明するので、それを元に抽象orテストを改訂する。 ②テストコード