tarosukeの日記: テスト駆動開発の限界
日記 by
tarosuke
最近TDDを勉強しているのだが、感じたのは失望と納得とこないだの試みはそ
う外れでもないという確信だったり。
ソフトウェアはそれ自体では時間とは無関係なので時間的境界条件はソフトウ
ェアで記述できない。TDDでは要件定義をソフトウェアで行うので時間的条件
はTDDでは完全には扱えない様に思える。時間的要件はファームウェアではよ
く出て来るのでちと残念だ。
また、外部機器やハードウェアなど、ソフトウェアの「外」が関係する事象の
テストもなかなかに難しいものがある。TDDではこれに対し「自己接続テス
ト」という回答を用意しているのだが...
外部のステートを全て網羅したテストを用意するのが困難なことには変わりは
ない。とはいえ、それでも自己接続テストにより困難さはかなり軽減はするよ
うにも思える。
※自己接続テスト
テストする対象の「外」の代役となるスタブ自体をテストの一部として記述す
ることで「外」に対する動作を試験する。I/O自体のスタブを作成しない限り
本当の末端には使えないだろうけど。outbとかのマクロを作ったりすればで
きるかな?
テスト駆動開発の限界 More ログイン