udon's blog

思いついたことを、思いついた時に。忘れないように。

TDDって、なんだろう?

こういうのをちょっと、やったんですけどね。

TDDBC大阪2.2パッチ : ATND

TDDってなんじゃいな?

内容的にはディスカッションがメインで、私はコードは一行も書いてないんですけど、今回一応「教えかた」ってタイトルでちょろっとだけ話をしました。

で、結局自分にとってTDDってなんだろうなぁというのをふと考えてみたんですね。

Red/Green/Refactorのサイクルとか、test 1stやDog foodとか、いろいろあると思いますけど、自分にとってはやっぱり「不安を解消する方法」っぽいなぁと。

ふあん?

やっぱり書くと不安なんですね。「動くかね?」と。でまぁ、10行くらい超え始めると不安を超えて恐れになってきたりする感じがあります。まぁ自分を信用してないってのもありますね。

動かしたい欲求

一応組み込みを生業にしているわけですが、今の様な多少なりともの知識を得る前からなんとなく「スグ動かして確認したい」というのは自然発生的な欲求として持っていた感じがします。
なんぼ書いたって動かないと意味が無いでしょうに、という感じでしょうか。

でやっぱり一気に作るといざ動かなかった時のデバッグが大変で、自然と「ちょっと作っては動かし、ちょっと作っては動かしで、少しずつ積み上げる感覚に近づいて」いってました。この感覚はなんとなくTDDの中にも流れているような気がしています。

ささえる知識と実践への障害

で、仕事サボってネットの記事読んだりとかで「test 1st」という言葉にだけ遭遇したりとかでしたが、具体的に「TDDっていうのがあるんだよ」っていうのを聞いた時に、割とすんなり受け入れられたのは上のような"欲求"が元々あったからかもしれません。
それまでなんとなくモヤモヤ持っていた感覚に「ちゃんと名前がついた!」と、そういう感じでしたね。

なのでよく聞く「TDDしたいけど無理だす」ってのは、正直言うと理解に苦しむところではあります。何か障害がありますかい?と。(怒らないでね☆

組み込みだと一番の障害は「実機でフレームワークが動くか?」だったりして、次点的に「動かすのに時間が掛かる」な感じですが、話し聞いてると結局は心理的な問題が大きい様な気がしています。後は「必要ない(と、思っている)」とか。

めんどくせ?

でも話を聞いてると「動かしながら書いてる」とかって聞こえたりするんですよね。
ということは実は「自分(人間)がテスティングフレームワークになっている」だけで、「動くもので確認」ってところは、実はクリアしとるわけです。

  • やっぱり不安でしょ?動かして確認したいでしょ?

から始まって、

  • 一々見て確認するのめんどくね?勝手にやらせられたら楽じゃね?

になれればやれるでしょうきっと。

言い訳

あっていいんですきっと。ちょっとくらいテストを後に書いたってええんですよ。
テストしないところがあったっていい。
かっこ良くフレームワークを使いこなしてなくってもいいし、少々自動化できてなくってもいいんです。

そう、いつまでも「できない」って嘆いてるよりはね☆