組み込みプログラマと
テスト駆動開発
Niigata.rb 2013.8.31
自己紹介
ハンドル:べいかん
Twitter:bei_kan
住所:新潟市内
職業:組み込み系プログラマ
言語:C言語 たまにVB / Perl
Ruby:irbで電卓の代わり程度
組み込みプログラム(小規模)の特徴
言語はC言語のみ
ハードウエアがないと動かない
プログラムサイズやメモリサイズに制約がある
マイクロ秒単位のタイミングの制御が必要
言語の独自拡張
テスト駆動開発は無理かと諦めていたが…
言語はC言語のみ
でも、テスト駆動開発可能!
ハードウエアがないと動かない
でも、テスト駆動開発ならば、
PCでテスト・デバッグが可能
プログラムサイズやメモリサイズに制約がある
でも、テスト駆動開発ならば、
プログラムサイズやメモリサイズを気にせずテストできる。
assert() も好きなだけ入れられる。
マイクロ秒単位のタイミングの制御が必要
でも、テスト駆動開発ならば、
PCでシミュレートすることでテストできる。
エラー処理も好きなだけチェックできる。
言語の独自拡張
でも、テスト駆動開発ならば、
#define定義することでテストできる。
#ifdef TEST
#define P10_on() (P1 | 0x01)
#else
#define P10_on() (P1.0 = 1)
#endif
マイコンが変わってもソースはそのまま。
テスト駆動開発を始めて
ハードが動く前にテストを開始することができるようになった。
デバッグ時間が大幅に削減。
ハード担当者に強気に出れるようになった。
(以前はハードが動かないとまずソフトが疑われた)
結論:組み込みプログラマこそ、テスト駆動開発をすべし

組み込みプログラマとテスト駆動開発