単体テストツールCppUTest

 組み込みソフトウエアのテストにCppUTestを使っている。そもそもは、テスト駆動開発による組み込みプログラミング ―C言語とオブジェクト指向で学ぶアジャイルな設計という本に触発されてのことである。
 例にあるような、LEDドライバーなどのテストを、この手法でやるのは大変だし、結局、実機でしかテストできないことも多く、実行には移せなかった。
 しかし、世の中が変わり、ハードウエアに近いレベルのドライバーは、マイコンメーカー提供のものを使うようになって、少しテスト戦略を変えた。ドライバーそのものは、やはり、従来通り実機でテストする。しかし、このドライバーを使ったソフトウエアは、CppUTestを使うことにした。
 メーカー提供のドライバー関数をモックでシミュレートし、PC環境でテストするのである。
 最近の組み込みのコンパイラは、大抵、GCCなので、PC環境で同じソースをコンパイルしても、コンパイルエラーが出ることはほとんどない。そんなに凝ったソフトウエアも作らないので、機能試験なら十分にPC環境でテストできる。