テストファーストはデバイスが絡むと悲しいほど役立たない。
テストファーストがどこでも通用すると思っている奴はデバイスを扱う処理を書かないやつだけ。

例えばゲームでも画面は出力デバイス。
シェーダーで水面の表現を書くとするだろ?
全フレームの計算後の画面データを保管しておいて比較でもするのか?
その比較用データはどう作るの?
まさか一部のピクセル処理だけテストして終わり?
計算上は正しくても見た目が変ならそれはユーザー的にはバグだぞ。

モーター処理でも割り込みのタイミングに由来する脱調の不具合があるかもしれないだろ?
それどうやってテストコード書くの?
モーターのエミュレータでも書くの?
書いたとして、タイミングが変わったら意味ないだろ?