4/22(日)Test Driven Development for Embedded C読書会第3回 (第5〜6章)
どんな技法だってそうだろうと思うのだが…。それが課題になっちゃうのって、ソフトウェア開発業界の宿痾? QT @legoboku: #tdd4ec スキルがないと浸透できないのが課題。
2012-04-22 16:38:05RT @biac: どんな技法だってそうだろうと思うのだが…。それが課題になっちゃうのって、ソフトウェア開発業界の宿痾? QT @legoboku: #tdd4ec スキルがないと浸透できないのが課題。
2012-04-22 16:45:50RT @biac: どんな技法だってそうだろうと思うのだが…。それが課題になっちゃうのって、ソフトウェア開発業界の宿痾? QT @legoboku: #tdd4ec スキルがないと浸透できないのが課題。
2012-04-22 16:47:42#tdd4ec テストがないとメンテも必要なくなる。が、手動再テストをしないといけない。TDDのスキルを身につけるとメンテ可能でテストが自動化できる。
2012-04-22 16:51:39ターゲットでのテストはCIで組み込むべし。最低でもデイリーで実行、とかいうけど、試作中は火事やショートの問題もあるのでむずい場面もあるな #tdd4ec
2012-04-22 16:52:55#tdd4ec TDDで全てのバグを取ることはできない。だが、TDDによって単体レベルのバグを取り除くことによって、より高次元のテストをスムーズにできる。結合、受け入れ、探索、負荷テスト。
2012-04-22 16:53:15#tdd4ec TDDをやるには素早い反復ビルドが必要。edit/build/unit testのサイクルを数秒でできないといけない。
2012-04-22 16:58:06#tdd4ec ビルド時間の短縮のためにmake file、make targetを複数用意し、test executablesを複数生成できるようにする。
2012-04-22 17:00:28#tdd4ec レイヤーアーキクチャ、かつモジュールの依存関係を整理し、モジュールをインタフェースで分割しておくとモジュール単位で test executable をでき、ビルド時間を短縮でき、担当部分のユニットが簡単にできる。
2012-04-22 17:02:50TDDを実施する場合、インターフェイスを定義し、インターフェイスに依存した設計にする必要がある。設計が改善される(逆にいえば、実施前に設計の知識が必要になりそう)。 #tdd4ec
2012-04-22 17:08:56テストを実装後に書くと、カバレッジがなかなか出ない。TDDならば、カバレッジを意識して設計できるので、結果的に改善できる? #tdd4ec
2012-04-22 17:11:24トップダウンなら、プロセスのどこで時間をとられているか、デバッグや手戻りのコストがどうなっているか明らかにすると導入の説得力が出る #tdd4ec
2012-04-22 17:15:34ボトムアップなら、自分のTDD力を高める。TDDは個人レベルのプログラミングも効率化する。自分がそれを体現して広げる #tdd4ec
2012-04-22 17:16:32#tdd4ec 本当に解決したい問題は単体テストのスコープを超えているからな。負荷をかけた状態で非同期処理がおかしくなるとか。タスク間の割り込みなど。
2012-04-22 17:23:26