« タグチメソッドを勉強するにも本を持ってなかった | トップページ | 単体テスト~結合テスト »

ソフトウェアテストPRESS vol.1 - テスト駆動開発と単体テストのカンケイ

本棚にある雑誌を読み直してて見つけた。

テスト駆動開発と単体テストのカンケイ by ソフトウェアテストPRESS vol1 (p111)

さて、ここでTDDで作られるテストコードは、今までコーディング後に単体テストとして実施していたものを、先に書いただけと見ることも可能です。ということは、コーディングが終われば単体テストが終わったことになるのでしょうか?

これは、半分正しいですが半分間違っています。

(中略)

実際のところ、TDDのテストファーストなテストで4〜5の観点のテストコードが漏れなく書かれていることは通常ないでしょう。なぜなら、テストコードを書くための工数が増えすぎて作業のスピード感が一気に落ちてしまい、本来のTDDの良さがなくなってしまうためです。

引用中の4とは「境界値パターン」、5とは「ゼロ、NULLなどパターン」です。すなわち境界値分析とエラー推測的な観点でのテストケースといえます。そういったテストケースはTDDの場合、スピード感を損なうために通常はテストコードとして実装されず、単体テストとして別枠で工数をとって実施しましょう、という趣旨。

これについは僕は少し考えが違ってます。というか僕はこの4と5のパターンのテストコードも実装します。指摘されている通り、スピード感が落ちてしまってTDDの良さが消えてしまいそうですが、それでも回帰的/スモーク的なテストができるというメリットはやはり捨てがたい。目的はTDDをすることではなくて、一定の品質を保つ製品をなるべく短期間・低コストで作成することだと思うので、「TDDの良さがなくなってしまうため」に4や5を組み込まないということはしない。

ただ、前半部分のコーディング終了=単体テスト終了、っていうは間違ってない気がしてきた。何らかの指標があってそれを評価してはじめて単体テストが終了する、といったイメージかな。(テストカバレッジとか)

# あくまで私見です。そんなにTDDの専門家といえるほどの知識も経験もないので。
# ちゃんと勉強するためには、こんな本読まなきゃいけないのか。。。汗

|

« タグチメソッドを勉強するにも本を持ってなかった | トップページ | 単体テスト~結合テスト »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/155415/4466660

この記事へのトラックバック一覧です: ソフトウェアテストPRESS vol.1 - テスト駆動開発と単体テストのカンケイ:

« タグチメソッドを勉強するにも本を持ってなかった | トップページ | 単体テスト~結合テスト »