TDD Boot Camp(TDDBC) - TDDBC仙台02 Diff

  • Added parts are displayed like this.
  • Deleted parts are displayed like this.

{{toc}}


!開催概要
||!日時||2012年8月11日(土) 10:00〜17:30||
||!場所||エル・ソーラ仙台 大研修室(アエル 28階)||
||!参加費||2000円||
||!定員||30名||
||!講師||@t_wada||
||ハッシュタグ||#tddbc||
参加登録は、 http://tohoku-dev.jp/modules/eguide/event.php?eid=144 までお願いします。

!テーマ
「テスト駆動開発を体験しよう」

!!内容
3〜4名でチームを作り、お題を解きながらテスト駆動開発を体験する。

!!!タイムテーブル
||09:00〜10:00||会場準備||
||10:00〜10:30||受付開始||
||10:30〜10:45||Opening||
||10:45〜12:00||基調講演・デモペアプロ||
||12:00〜12:10||LT||
||12:10〜13:00||Lunch||
||13:00〜14:30||1つめの開発するテーマを発表+ペアプロ大会||
||14:30〜15:00||コードレビュー+休憩||
||15:00〜16:30||2つめの開発するテーマを発表+ペアプロ大会||
||16:30〜17:00||コードレビュー+休憩||
||17:00〜17:30||ふりかえり||
||17:30〜18:00||後片付け||
* 時間配分等は目安です。
* 演習は3〜4名で1チームで行います。
* 演習は1台のPCを使って、TDDの1サイクル毎に実装者を交代する乱取り形式で行います。
* 演習ではノートPCを使用しますが、3〜4名に1台あれば良いので全員が持ってくる必要はありません。
* PCをご持参いただく際に、延長コードを併せてお持ちいただけましたら幸いです。

!!!参加希望言語
申し込みフォームにてアンケートを行い、ペアが組める言語を選択していただきます。
運営側でサポートする言語は以下の通りです。
サポート外の言語を選択されても構いませんが自己責任でお願いします。

【言語】
Java
Groovy
C#
C++
C
VB.NET
Python
Ruby

!!!サポート可能な言語,テスティングフレームワーク,スタッフ
||言語||テスティングフレームワーク||スタッフ||
||Java||JUnit||@tosikawa,@yujiorama,@masanobuimai,@i_takehiro
||Groovy||?||@masanobuimai
||C#||NUnit,MSTest(VS2012)||@nnasaki
||C++||cpptest,gtest||@tosikawa,@yujiorama
||C||ctest,cunit||@tosikawa,@yujiorama
||VB.NET||NUnit,MSTest(VS2012)||@nnasaki
||Python||?||@tosikawa
||Ruby||runit,rspec||@tosikawa,@yujiorama

!当日の役割分担
||受付(施設入り口)||||
||受付(会場)||||
||会場準備||@nnasaki||
||タイムキーパー||||
||昼休憩LT(の司会)||||
||懇親会(の司会)||||

!当日の準備物
||モノ||準備者
||ネームカード入れ||@i_takehiro(TDC保有のもの)
||紙||
||筆記用具||
||ポストイット||@nnasaki
||電源タップ||@nnasaki x 2, 会場(10台分程度借りれます)
||Macのディスプレイアダプタ||@nnasaki
||ディスプレイ||無しかな
||Wi-Fi機器||@yujiorama(Wimax+AirMacExtreme), @i_takehiro(Wimax)
||おやつ||@nnasaki(家にあるもの適当に)
||グリーンバンド||@tosikawa(@nnasakiが必要数を連絡する)

!参加準備
* [[みんなで作るポジションペーパー|https://docs.google.com/present/edit?id=0Af8NIU3ixgIZZGY4Zzg2d2ZfMmZyZDJoOGh0]] にご記入ください。{{br}}こちらは'''必須ではありません'''が、積極的に自分をアピールしてみましょう!
* 可能であれば事前にテスティングフレームワークをインストールしてくる準備とノートパソコンの持参をお願いいたします。{{br}}Java の環境構築に関しては、[[環境構築(Java/仙台01)]]を参照してください。
* Macを持参する方へ。
** ACアダプターが干渉して他の人が電源を確保できなくなるため、100円ショップ等で延長または分岐タップをご用意ください。
** コードレビュー時にスクリーンに投影してもらうかもしれませんので、ディスプレイアダプタをご用意ください。


!FAQ(本家ページから転載)
!!Q1. 過去のTDDBCに参加していなくても参加できますか?
A1. 制限はありません。

!!Q2. 参加するのに必要な知識・スキルはありますか?
A2. 以下に目安を示します{{br}}
* Javaなどプログラミング言語の基礎を理解し、簡単なプログラムを書いて実行できる
* JUnitなどのNUnitフレームワークをサンプルレベルでも良いので書いたことがある
テスト駆動開発自体の経験は問いませんが、ユニットテストに関して少し学習しておくと効率よく参加できると思います。

!!Q3. ノートパソコンは必須ですか?
A3. 必須ではありませんが、ある方がベターです。{{br}}
TDDBCではペアプログラミングまたは3−5名程度のグループでの乱取り形式で実施します。
参加者の中の一定数はノートPCを持参するので、なければ参加できないという事はありません。

!!Q4. 使用するプログラミング言語の制限はありますか?
A4. TDDBC仙台の運営側で正式にサポートする言語は、Javaのみの予定です。{{br}}
他の言語の利用に関しては、環境の設定など自己責任でお願いします。{{br}}
尚、目安としてグループに「その言語である程度はユニットテストをやり慣れている人がいる」事が必要と考えています。
そうでない場合は、環境構築などに時間を取られてしまいTDD自体を体験できないかもしれません。
Javaを利用する限りでは環境構築やサンプルなどをレクチャー可能ですので、言語自体の経験はなくてもTDDを学習できます。

!課題
TDDBC* [[TDDBC大阪の課題を課題|http://devtesting.jp/tddbc/?TDDBC%E5%A4%A7%E9%98%AA2.0%2F%E8%AA%B2%E9%A1%8C]]を使用します。
* 課題中のドメインについて使用する[[用語例|http://devtesting.jp/tddbc/?TDDBC%E4%BB%99%E5%8F%B002%2F%E8%AA%B2%E9%A1%8C%E7%94%A8%E8%AA%9E%E9%9B%86]]を用意しました


http://devtesting.jp/tddbc/?TDDBC%E5%A4%A7%E9%98%AA2.0%2F%E8%AA%B2%E9%A1%8C

使用する用語について以下に記載しています

http://devtesting.jp/tddbc/?TDDBC%E4%BB%99%E5%8F%B002%2F%E8%AA%B2%E9%A1%8C%E7%94%A8%E8%AA%9E%E9%9B%86


!KPT

!!Keep
* 他の人の書いたコードを見る
* 色々な言語のコードが見れる
* ペアプロ楽しかった!
* 実装する機能をよく話し合って決めた
* 話し合いながらの実装
* ペアプロで考えるだけの時間を減らす
* 何がテストケースか、どのようにテストするかを実装する前に仕様から考えられるようにする
* おかし
* とりあえず実装する
* 軽い実装から始める
* テストメソッド名のつけ方がよかった(何のテストか分かる)
* ふせん
* 意見の交換ができた!
* テストファーストのソフトウェア開発になれる
* TDDBCを別なとこでも続ける
* TDDについて実践で経験できた
* ペアプロが経験できた
* コードを組めて楽しかった。ペアプロは緊張したけど、楽しかった。
* テストの書き方。状況と条件をあらい出してテストする方法を身に付けた。
* まず個人でTDDを実践したい
* CUnit以外のフレームワークをもう少し調査します
* ペアプロ楽しかった
* テストファースト。1歩ずつ
* おかし
* レビューでいっぱい質問できた
* タイムキープ++

!!Problem

* 実装をあせらない
* 細かく1つ1つやっていくことが重要だが、ついつい一気にやってしまう
* 変数名を適当にすると後で直すのが大変
* WebAppの場合はどうするんだろう
* Javaの理解が足りなかった
* Javaが進化している
* 組み込みソフトへの適用(C言語)
* 頭でわかっていてもついつい実装から書いてしまうことがあった。
* グリーンバンドほしい。
* テスト結果として何を返すかを決めるのにとまどった
* 作法になれない。大きい目標に目がいってしまう。
* 開発環境が進化している
* Java力が足りない
* emacsの使い方になれず時間ロス
* ガッチリ設計する
* ディスプレイケーブル
* 実装するイメージを紙とかに書いたらよかった
* CUnitを使うための準備不足でした
* コードだけでも意味がわかるコードにて楽をする
* テストケースを作るよりも先に実装をしがちであった。
* テストケースの実装が冗長であった。
* 仕様のあいまいさがなくせなかった。
* テストを書く→実装の流れを飛ばしそうになった
* JoJo完売
* 複数の値をテストするとき、メソッドを多くせずに1つに見やすくするまとめる
* オリンピックのサッカーを観てしまった
* TAなのに事前にお題を全部解けなかった
* 設計に口出ししすぎorz
* 時々ネットワーク不調

!!Try

* F#,Scala,HaskellでのTDDライブラリを使ってみる
* TDD本(ケント・ベック)を買う
* リファクタリングの方法を覚える
* Androidのアプリ開発でもTDDが使えるかをためしてみる
* またTDDBCに参加したい
* テストケースの作成・実装を通じて、仕様のあいまいさをなくし、プログラムの品質をあげられるようにしていきたい
* TDDを実践してみる
* ジョジョ勉強しておきます
* ふだんの開発でもテストコードを書くようにしようと思いました
* ペアチェンジ
* 雑談をする
* Unity(C言語のユニットテスト環境を使ってみる)
* ぜひ次回(03)もやって下さい
* TDDの実践!DB接続のケース
* カバレッジそくてい
* 実際に黄金の回転が高速でまわっているかチェック
* Ruby風のテストコード
* お題を家に帰ってから最後まで解く
* 内部からアクセスする変数については"_"をつけて外部からアクセスするものと区別しやすくする

!参加者レポート等
http://d.hatena.ne.jp/masanobuimai/20120814
!当日の写真
http://www.flickr.com/photos/yura760/sets/72157631046613062/* [[flickr|http://www.flickr.com/photos/yura760/sets/72157631046613062/]]
http://t.co/R4fTj7ox* [[集合写真w|http://t.co/R4fTj7ox]]