Test-Driven Development for Embedded C の写経

Test-Driven Development for Embedded C の3、4章を実際に写経しながら動かしてみた。ただしせっかく作ったのでTDDツールはUnityではなくPCUnitを使った。

ソースはこちら。
https://github.com/katono/TDD4EC
cygwinで動作確認。動かす時はPCUnitをmake installしておいてください。

写経してみて気付いたのは、ひとつのテストケースがとても小さいこと。ひとつのテストケースにあまり詰め込まずに、テストケース作成→製品コード実装→テスト実行→リファクタリング→テスト実行 を繰り返す。小さいサイクルってこういうことか、と手を動かしてみて初めて実感。
ひとつのテストケースが小さいと、製品コードの関数も小さくモジュール化されたテストしやすいコードになる効果もありそう。TDDで開発するのはきれいな設計にするためでもあるらしい。
意図のはっきりした小さいテストケースをたくさん作る。テストケースをたくさん作るので、やはりテスト関数の自動登録ができないとめんどくさくてやってられない。自動登録スクリプト作ってよかった!

今回は写経だったけど、実際に開発でTDDやるには慣れが必要そうだ。
使うツールは同じだけど、実装後に行う「単体テスト」とは違うなと思った。単体テストほどみっちりやると工数かかってしまうからな。