2011年2月1日火曜日

Test Double の「Double」とは

プログラマにとって「double」と言えば、まず第一に倍精度浮動小数点数のことだろうけど、Test Double の「double」はどうか。

昨今の開発で、まともにテスト駆動が成立するレベルのテストコード、つまり TestSmell が一定以下に抑制された DeveloperTest を書いていくためには、かなり多くの場面で Test Double パターンが必要になる。今日びのプログラマにとっては、Stub、Mock、Fake、Spy 等を含む Test Double と言われる一群のテストパターンを自在に使いこなす事は、必須技術の一つと言えるんじゃないかと思う。

個人的な話になるが、実は自分は、この Double の意味を知らないまま、長い間「Test Double」という言葉を使っていた。深く考える訳でもなく、何となく「Test」を動詞、「Double」を副詞と認識して「二重にテストする」なんて意味かなと思っていたが、TestDouble が意味する手法と一致しなくて、ずっと気持ち悪かった。

ある時、何気なくネットの辞書を引いてみたら、ちゃんと答えがあった。

Weblio の英和辞書ではこんな感じ
【名詞】3.b【映画】
代役,替え玉 〔for〕.

英英辞書の OALD ではこんな感じ
NOUN PERSON/THING [countable] 
an actor who replaces another actor in a film/movie
to do dangerous or other special things

まず、Double を副詞と考えていたのが、そもそも間違いで、本当は映画用語の名詞。Double が副詞でないということは「Test」は動詞ではありえず、したがって「Test Double」で名詞+名詞の複合名詞、つまり「テストの替え玉」という意味になる。

やっぱ辞書はこまめに引かないといかんな。

※OALD は 非英語ネイティブ向けの英英辞書としては、かなり良い感じ。ネット版だけじゃなく、リアルの辞書もよくできてる。

0 件のコメント:

コメントを投稿