redwarrior’s diary

C#, ASP.NET, WEB, G*などの雑多な情報

Visual Studioを使用したテスト駆動開発ブートキャンプ(TDDBC)に参加しました

2015/9/2にマイクロソフトセミナーを品川のマイクロソフト社で受けてきました。タイトルの通り、和田卓人(id:t-wada)さんは日本のTDD(テスト駆動開発)の第一人者であり、とても勉強になりました。

著名人の話を無料で聞けるとは、マイクロソフトセミナーはとてもお得だと思いました。マイクロソフトのセミナーなので、説明がC#で行われていて、その点も良かったです。

セミナーの流れ

セミナーの全体の流れとしては、まず、和田さんがTDDについての講演をしばらく行い、その後、出された問題を解くことでTDDを実際に体験し、最後に問題について全員でコードレビューを行うという流れでした。TDDの体験では、二人一組になって、ペアプログラミングを行いながら問題を解きました。

講演

講演は、配布された資料を使って行われました。最初に自己紹介と流れの説明で、次からTDDの解説が始まりました。まず書籍アジャイルサムライの内容が紹介され、12章と13章の内容が基礎となって14章の内容が活きるという話をしていました。

テスト駆動開発の目標が「動作するきれいなコード」でありそこには、「きれい・(すぐには)動かない」を通る道と、「汚い・動作する」を通る二つの道があり、TDDは「汚い・動作する」を通る道ということでした。大事なのは、動く、動かないの線を超えることだそうです。

その次にTDDの説明があり、リファクタリングの大切さを話していました。陥りやすいワナとして、動けばいいやと思ってしまう事や、動いているコードをいじって動かなくなったらどうしようと思ってしまう事があるそうです。リファクタリングを後でやろうとするとワナに引っかかるらしいです。

さらに、受け入れテストやリリース等のより大きな話のサイクルにつながる話をしていました。そして、良いテスト(コード)とは何かについての話で、良いテスト(コード)は、繰り返し可能で、独立しているテストだそうです。そこで紹介されていた本が新しく「実践 JUnit」として刊行されたらしいので、チェックしておこうと思います。

また、テストコードにもリファクタリングが必要という話をしていて、以前逆の話を聞いたことがあったので驚きました。その後も様々な話題がありました。TDDの本質は、品質を上げるのはプログラミングであり、TDDを行うと即座にフィードバックを得られるので、書いたコードに自信を持てるという話を聞いて、ここは大事だと思いました。

FAQでは、様々な問題にぶつかった時の書籍が紹介されていました。困った時には読んでみようと思います。最後にこれから始めようする人に対するアドバイスがあり、写経や、gihyo.jpの動画の視聴をしてみたいと思いました。

gihyo.jp

実践 JUnit ―達人プログラマーのユニットテスト技法

実践 JUnit ―達人プログラマーのユニットテスト技法

TDDデモ

TDDの体験の前に、かおるん(id:kaorun55)さんによるVisual Studioを使用したTDDのデモが行われました。テストフレームワークは、MSTestを使いました!やっぱり開発環境に組み込まれているものを使うのが良いですね。その中でビルド後にテストが実行できるという機能があったのですが、手元のVisual Studio Professional 2015にはなかったので、Enterprise版の機能のようです。CodeLensでのテスト状況の確認は出来たので使っていこうと思います。

デモでTDDの一連の流れを見られたのは良かったです。仮実装の仕方や、サイクルの回し方も勉強になりました。それとユニットテストでよく使われるSetUp, TearDownやテストの構造化(入れ子)の機能をVisual Studioでどうやるのかも知ることが出来まました。

注意点として言われていたテストメソッド内でAssertを重ねると失敗に弱いというのは、やりそうなので気をつけたいと思います。仕様を理解するためのテストも大事だなと思いました。

TDD体験

TDDの体験とペアプログラミングは、TDDに関してはデモで大分感触がわかったので引っかかる所はありませんでした。

ペアプログラミングは、初対面で手探りということもあったのですが、なかなか考えてを伝えるのは忍耐が必要だなと思いました。コードレビューについては、自分がなんとなく思っていたことが、別の人によって形になって表れていて(言語はVBでしたが)、考えていることが間違っていなくて良かったですし、勉強になりました。

今回は通常のセミナーの枠を超えて、様々なことが学べる良い機会でした。この次、同様のセミナーがあった時は、参加することをお勧めしたいと思います。

お二方のブログ:

t-wadaのブログ

TDDBC(Visual Studio+Visial Studio Online編)を開催しました - Natural Software