-
Notifications
You must be signed in to change notification settings - Fork 47
Readingagilesamuraiinhiroshima20120925
isabisi1484 edited this page Oct 17, 2012
·
7 revisions
あと2回を残すのみとなりました読書会、思えば今年の初めから・・・いかん最終回モードになってる(笑)。今回はテスト駆動開発で盛り上がりました、テスト駆動開発と言うのは、コードを書く前にテストコードを書くというやり方です。ん、と思った人はアジャイルサムライ読んで見てくださいね、何故そうするのか、そうすると何が良いのかが解ります。実際に参加者中の方で、その意味を良く理解されている方がいて、コードを先に書く欲望に負けてしまいそうになるとか、インテリセンスのようにイチイチエラーになって鬱陶しいとかの話で大分盛り上がりました。まあ、その昔基本設計フェーズでうまくいかず、詳細設計でもうまくいかず、製造フェーズで細かい部分はテスト仕様を先に書いて承認してもらうということは多々(4GL出始めのころ)あったかと思いますので、それと同じようなものかと古い人は感じました。最近はTDDの為のツールも沢山あるようですが、それを習得するコストが割りと高いので、採用を見送るというお話もありました。では、最終回に向けて・・・
- ふりかえり(約10分)
- Reading Time(約30分)
- テストを先に書くことで、あたまの中のロジックが整理される。
- コードが書けないときは、書けないもんだ。と諦めていた。
- 締め切りプレッシャーによって書ける様になるから、プレッシャー駆動開発かも(ここ笑うトコw)
- 「簡単だよ。テストを先に書いてるんだ。 」が綺麗にかく秘訣
- レッド(エラーとなる場合)、グリーン(正常となる場合)、リファクタリング。(ホワイトボックステスト?)
- ユーザーストーリーの全てをこなしたと自身を持って思えるようになるまで→個人差あり?(ユーザーストーリーの出来次第)
- 限界値テスト、許容値テストなどと同じように考えて良い。
- 失敗するテストを書くまでは、新しいコードを一切書かない。(これは新しいかも)
- 「危なっかしいところ」を全てテストする。
- テストコードについて、このテスト環境が、テスト手法が、再機制が、トランザクションが、がががが
- ラッピングしたいよね(msgbox関数を直接書く人に向けて)必要な引数だけを渡したい。
- 抽象化しない人はいるよね(勉強してください)
- いつもテスト駆動できるわけではない
- やったことないことだとむずかしい。
- そもそも環境つくるのが難しいこともある
- テストファースト(ゴルフではハンドファースト)というね (これは言えなかった
- APIを具体化した
- つまり設計作業。
- ☆ すでに実装があるつもりで呼び出しをしてみよう
- 必要なコードがすでにそこにあるようにテストコードを書くってことは、→プログラム仕様じゃないか
- TDDがテストの技法と言うよりは設計の技法である。 すべてはこの文に集約されている。
- SQUARE ENIX の プロジェクトマネジメント講座 http://www.jp.square-enix.com/info/library/dldata/PM/PM.pdf
- 習熟できてないから判らないが、C#とかでVisualStudioを使って書く分には、以下の手順が現実的な気がする。
- ソース側でプロトタイプを書く
- VS の機能でテストメソッドを自動生成する。
- テストを書く
- 実装を書く