今日は社外WGに参加。春の嵐だ! == 僕はC言語ばっかの開発をやってるので、ここでもC言語をベースにしていろんなことを書きます。あしからず。 リリース後の欠陥発覚は手戻り工数が最もかかるものだが、その多くは単体テストで発見可能なものが多い。某静的解析ツールのベンダー資料によるとその割合は40%近くになるらしい。定量的な資料は持っていないが、僕も単体テストの質がシステム全体やプロジェクト全体の質を大きく左右すると考えている。 そこでだ。僕の考える、上質な単体テスト for C言語はこんな感じ。 テストしやすいという、テスタビリティ まず、基本的な関数の型はint型がいろいろ都合がいい気がする。エラー番号を復帰したり、errnoを復帰したり、直感的なものがよいと思う。例1のように、文字列格納先の先頭ポインタを引数渡しする場合は、呼び元で確保したサイズも合わせて引数渡しすること。(ちなみによく
![C言語における単体テスト テスタビリティを重視した関数設計 - ソフトウェアテストの勉強室](https://cdn-ak-scissors.b.st-hatena.com/image/square/d95f5d57dd5957d8467eee80252ac739d47afb4e/height=288;version=1;width=512/http%3A%2F%2Fsoftest.cocolog-nifty.com%2F.shared-pleasy%2Fnifty_managed%2Fimages%2Fweb%2Fogp%2Fdefault.png)