ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

Green Bar Lover .NETコミュのテストコードの信頼性

  • mixiチェック
  • このエントリーをはてなブックマークに追加
はじめまして。はらたいらです。

さて、最近テストファーストで、開発を行っているのですが、
テストコードの信頼性はどのようにして、
みなさん保っているのでしょうか?

まだ、慣れていないせいか、
アプリ側は正常で、テストコードにバグがあるケースが、
何度かあります・・・


コメント(6)

すみません、とっても長い間見落としていました。

TDDでソフトウェアを設計していくと、アプリが正常でテストコードにバグがあるというケースにはなりにくいように思います。

レッド、グリーン、リファクタの繰り返しの中で、テストコードにバグがあればレッドのままなので、その状態で実装コードが正常というのはありえないように思いますがいかがでしょう。

#だいぶ月日がたってますので、状況も変化してきているとは思いますが。
>つぼぞ〜さん

テストファーストというのは、あくまでテストを先に考えるということであって、TDDは適用されてない、っていう状況なんでしょうか?

>tsuneさん

新人にTDDをやらした際に、どうしてもとにかく先にコードを書いてしまい(結構できる奴なもので)、つじつま合わせに後からテストコードを書いている奴がいて、なんかうまくいかないことがありました。
#別の先輩から怒られてましたが。

NCoverを併用して、カバレッジチェックをソースコードとテストコードの両方にかけるだけでも、そこそこ確認になるかと思います。実際、うちの場合はそれを併用してます。

本来TDDでやると、NCover使ってチェックというのはおかしな話なんですが、(上の新人みたいなこともあって)性善説ではうまくいかないことも多く、保険的な意味も込めてそうしてます。

あとは、なんやかんやでOJT期間中はテストケースのレビューとか詳細設計レビューとかで先輩が面倒を見てあげないといけないのかな、っていう気もします。
> どうしてもとにかく先にコードを書いてしまい(結構できる奴なもので)、つじつま合わせに後からテストコードを書いている奴がいて

わかります。うちではそれをやるとペアプロの際に相手にしっぺされる文化を築きあげました(笑)

多分その方はやれといわれたから仕方なくやっているタイプなのでしょうね。TDDのよさを感覚でわかっていない最初のうちは、プログラマの仕事は実装コードを書くことでテストは面倒なものでしかないという認識をもたれている方が多いように思います。しかし結局自分の書いた実装コードは動くだろうという仮説の下で行動しているに過ぎず、ビッグバン結合的な結合をすることになり、デバッガに入りっきりの無駄な時間を過ごすこともあるでしょう。

> 本来TDDでやると、NCover使ってチェックというのはおかしな話なんですが

えぇ、えぇ。私の中ではカバレッジとは使用されていないコードが残っていたりするのを見つけるためのものっていう想いが強かったりします。メンバーの書いたコードを監視するためのツールではなく、あくまでメンバーそれぞれがコードの臭いをかぎつけるための手助けのためのツールであると。

ユニットテストは品質向上のためのツールではなく、成功のためのプラクティス(チームにとっての成功、そして何よりプログラマの成功のため)だと気づき、小さなステップによって自分のコードが意図したとおりに動作していることを確認し、それによって生まれる自信がもたらす健全な開発のリズムを楽しんでもらいたいと思います。
どうも私がマネジメント側の人間なので、ついついカバレッジで監視モードに入ってしまっていたようです。(^^;
#もちろん信頼関係に基づいた上でですが。

あとは、TDDを良く知らないステークホルダの皆様方に、テスト結果への箔を付けることへも利用しています。
「カバレッジ100%」っていうと、「おおーっ」と言ってもらえるので・・・。不純です・・・。

実際にはtsuneさんのおっしゃるとおりです。そういうNCoverの使い方が一番健全ですよね。

tsuneさんのおっしゃった、一番下の言葉(開発のリズム)はTDDに慣れてきたメンバが口々に言ってます。私自身は最近コードを書くことはなくなりましたが、楽しそうでなんかうらやましいです。メンバのモチベーションもすごい高いですし。

ここ数年コードを書いてなくって、忘れかけてましたが、何か大切なことを思い出させてくれたような気がします。
tsuneさん、ありがとう!
そう言っていただけるとありがたいです。

立場、役割は違えど、同じチームのメンバーとしてそれぞれが開発を純粋に楽しめるようになれれば理想ですね。

お互いに頑張りましょう!
TDD、カバレッジ、静的コード分析、常時結合などは、全てがプログラマの成功の為のツールやプラクティスだと思っています。

しかし、個人個人に自ら進んでこれらをやろうという姿勢が出来上がっていないと、うまく行かないものがほとんどではないでしょうか。

人に言われてやるのなんてつまらない。楽しむためには自ら進んでやってみないとね。もちろんそれには学習コストがかかります。だから日頃からの素振り重要。

簡単に言えば、自分のためなんだから自分でやろうよ。つまるところそういうこと♪

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

Green Bar Lover .NET 更新情報

Green Bar Lover .NETのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング