『JUnit実践入門』写経・実践会 in 横浜 #7 を開催してきた #junitbook

前回第6回(特別編)が著者御本人も参加、と言う事で非常に盛り上がりましたこの『JUnit実践入門』写経・実践会シリーズ。日程調整のため開催日を延長して開催したこの回の対象範囲は第14章『コードカバレッジ』と第15章『継続的テスト』。ちなみに『通常編』としては今回が最後になりそうです。

開催会場は横浜タネマキ。前回第6回の内容で若干燃え尽きた感があったのか、はたまた対象範囲の内容が"CI"寄りだった為従来とは若干趣が異なっていたのか、参加申込は13人。当日参加された方は10人となりました。(※3人は連絡無し欠席=ドタキャンでした)



個人的には第6回(の準備諸々等)で若干燃え尽きてた感があった(笑)のと、単純にスケジュール上忙しかったので今回第7回の内容に関する準備が間に合わなかったので、どちらかというと司会進行及び今後のスケジュール調整業に専念しとりましたw ディスカッションや実践内容それぞれのトピックは参加された方々が振り返って書いてくれるでしょう、所に期待しつつ、ざっくり内容をふりかえり。

参加者自己紹介

今回は『CI』を扱うという事で、Jenkinsの他にも幾つか興味深いトピックが挙がっておりました。

なので皆でこれをやる!と言うよりも、後半設けるもくもくタイムで各自好きなものに取り掛かろう、という流れに行く事に決め、その際に取り組む予定の内容を踏まえて軽く自己紹介をしてもらう事に。トピックとして挙がったのはこんなもんかな。

  • Jenkinsを導入したは良いけれど、自動化にまでは至っていないのでその辺りを推し進められるようにしていきたい。
  • Mavenを触ってみたい。JenkinsとMavenの連携も。
  • Jenkinsの社内展開への切っ掛けを掴む。
  • Drone.ioを触ってみる ( Continuous Integration and Deployment · drone.io )
  • Jacocoを試したい。
  • EclEMMAを試したい。
  • TravisCIのハンズオンをやります。
  • Gaelykのテストを書いてみたい

黙読&ディスカッション 第14章『コードカバレッジ

  • C0,C1とかの概念、社内では皆どの程度の認知、理解がある?(参加者は皆さん御存知だと思いますが)
    • 話せば皆理解してくれると思うが…
    • C0,C1どっちがどっち?みたいな混乱はあるかも。
    • C2やっておけばほぼ全部行けるんじゃね?プログラムとして全部通っているとも言える。
  • カバレッジを通すのと、それを全部通すのが良いかどうかは別の話
  • 100%でないと理由を求められる→何故かExcelに貼れと言われる…
  • カバレッジ、推移は見ますか?
  • カバレッジも見方を気をつけないと危険。
  • この本は詳解の展開(この点について詳しい内容は以下の書籍を参照...)を行なっているところが良い。
  • C0,C1は分析結果として提出&100%達しないとレポート出さないといけない…

    • 合格ライン設けてる?→90%以上、と言う意見アリ
    • これ単体で推し量るものでも無さそう。数値という見えやすいものが
    • サイクロマチックほうとかあるけど、そっちは見ないんだよな〜
    • 数値目標としての意味合いとしてはアリだと思う…

カバレッジ100%』の是非については当日の雰囲気では否定的な意見が多かった模様。まぁ、書籍該当の章でも

(P.267)
つまり、カバレッジが100%であったとしても、コードの品質や仕様の妥当性について保証されるものではありません。

(P.268)
くれぐれもカバレッジの値を高くすることを目的にしてはいけません。
(中略)カバレッジが高くとも、品質は保証されません。
(中略)繰り返しになりますが、カバレッジを高くすることを目的としないでください。

(P.270)
カバレッジを高くする目的でコードを改悪してはいけません。

テストが十分に行われていない場合や、テストの内容がいい加減な場合は
カバレッジは何の役にも立ちません。

というように、僅か数ページに繰り返し強調されているこれらの文言。思わず以下の一言を発してしまいましたが、やはりこの辺の事象についても皆さん思うところがあるようですね...(笑)

黙読&ディスカッション 第15章『継続的テスト』

この章についてはどちらかと言うと実践的な内容が多かったのもあり、Jenkins(の書籍記載内容)というよりも、Jenkinsを含めたCI環境、または周辺環境(ビルド周り)についてのトークを展開。

  • Gradle、1.6からカバレッジサポート等も行えるように。
  • Mavenはカスタマイズ性が残念(Mavenの型に当てはめられるのであれば便利なんだけど...)
  • Maven+カスタマイズ=Gradle

LT→もくもくタイム

ディスカッション終了後はLTx2。

1つはRyuji TSUTSUI (TwitterID:@ryu22e)さんによるイベントのお知らせ。『PyCon APAC 2013』と呼ばれるカンファレンスで、9/14〜9/16の計3日間開催。Sphinx開発者も今回参加・登壇される予定なのだそうです。


もう1つは『サザエバンジェリスト』ことsue445 (TwitterID:@sue445)さんによる『俺の爺がこんなに可愛い訳がない』。社内LT資料を一部改定したものだそうですが、色々と楽しませて頂きましたw

こちらが公開用の資料。


LT終了後は、18:15位まで長めのもくもくタイム。各自思い思いの作業に取り組んだり、また後半には@sue445さんによる『Travis CIハンズオン』も開催されるなど、色々と盛り沢山な時間だったと思います。


ちなみに、この時間自分は何をしていたかと言うと…すいません、これ読んでましたw

結果、4巻まで読み進めてしまいました(笑)

そんなこんなでもくもくタイム終了。皆さんお疲れ様でした〜。

次回#8のお知らせ+もう1つイベント開催のお知らせ

これまで述べ7回を数えて来た『JUnit実践入門』写経・実践会 in 横浜ですが、次回でいよいよ最終回となりそうです。

対象範囲は第18章〜第20章、演習問題に該当する章となります。

で、せっかく演習問題を対象にするという事もあるので、最終回は演習課題(もしくはTDDBCの過去お題)を対象にしたペアプロTDDの実践(または素振り)を行う回としたいと思います!また、TAの人のための素振りの場としても活用出来れば良いかな〜、等とも考えております。

告知サイトは以下。2013/07/06(土) 13:00 - 19:00、横浜タネマキにて開催です!ご興味のある方、TDDBCに参加してみたいけど(参加した事無いけど)一度雰囲気を掴んでみたい、という方のご参加をお待ちしております。


そしてもう1つ!場所は同じ『横浜タネマキ』にて、『レガシーコード改善ガイド』に関する勉強会を開催したいと思います!

一応タイトルは仮で付けています。『読書会』だと読んで終わり感があるのかな〜というのと、ディスカッションやコードを前にして色々試みてみたい(コードレビューや実際にその場で書いてみせる)という思いをざっくり仮題ではありますが付けてみました。この辺はしっくり来るのが来たら変更するかも知れません。

書籍の対象章は事前に読んでくる事が前提です(一応当日サラッと読む時間は設けますが)。また、レガシーコード/レガシーコード改善に関するコードも事前〜当日に大募集するような試みも検討していますので、実際に参加される方も、参加出来ないけどハッシュタグなどでエア参加してみたいという方も、気軽にご参加頂ければと思います。