Test Driven Development for Embedded C読書会第4回
2012/6/3(日)に開催した「Test Driven Development for Embedded C」読書会第4回のまとめてす。
本日のネタは以下です。そろそろ本格的に依存関係のあるモジュールに対してTest Doubleを導入する方法について解説が進んでいます。なかなか歯ごたえある内容。
・第7章「Introducing Test Doubles」
Stub、Mock、SpyといったTest Doubleの種類、Test Doubleを使う目的などが解説されています。
続きを読む
Yohei
@legoboku
Test Doubleの使いどころ:ハードウェア依存、入力の作成が困難、collaboratorの速度が遅い・開発中・ビルドが困難 #tdd4ec
2012-06-03 14:04:30
Yohei
@legoboku
C言語でモジュール置換方法:リンク時置換、関数ポインタ置換、プリプロセッサ置換、リンク時・関数ポインタの組み合わせ。 #tdd4ec
2012-06-03 14:22:24
Yohei
@legoboku
sexyhookというライブラリを使うと、一時的にAPIや関数、クラスメソッドの挙動を自由に書き換えできる。http://t.co/5tS6vPn4 #tdd4ec
2012-06-03 14:35:05
Harlequin Shrimp
@EspernaShrimp
信号処理ってハードでやるイメージが強かったが、開発期間やコストなどの面からソフトでやることもあるんだ。。。#tdd4ec
2012-06-03 14:38:24
CAD
@yukikado
信号処理も最近はハードじゃなくてソフトで処理するようになってきているらしい。処理速度が許容範囲になったので、ハードウェアが上がってくるまでのオーバーヘッドを考えた場合、ソフトウェアでやったほうが開発コストが下がる。 #tdd4ec
2012-06-03 14:41:33
CAD
@yukikado
OSやハードウェアのコンポーネントに対して、一枚抽象化レイヤを加えることで、test doubleを行いやすくする。 #tdd4ec
2012-06-03 15:22:44
Yohei
@legoboku
最初にテストリストを作る。完璧なリストは作らなくてもいい。大雑把なもの。途中で追加したり、順番を入れ替えたりする。 #tdd4ec
2012-06-03 15:24:10
Yohei
@legoboku
#tdd4ec インタフェースと実装を切り分けて、実装部分をTest Doubleに置き換える。C言語だとインタフェースがヘッダファイル、ソースファイルがTest Doubleに置き換える。
2012-06-03 15:27:20
Yohei
@legoboku
実コードは.libに、Test Doubleは.oにすると、最初に.oでリンクが解決されて、ライブラリの実コードが参照されない。実ビルドではTest Doubleの.oを除外すればいい。 #tdd4ec
2012-06-03 15:28:25