「世界のすべてをテストせよ。〜Make the world Green by Test ! 〜」へ行ってきた

月曜の夜、「世界のすべてをテストせよ。〜Make the world Green by Test ! 〜」へ行ってきました。

主催の方、発表者の方、お話してくださった方、ありがとうございました。楽しかったです & 勉強になりました:-) というわけで、感想や考えたことをメモ。

『誰が為のテスト』 〜 千里の道も一歩から 〜 和田卓人さん

TDDは「テストを使った考え方」や「テストを使った設計手法」に近い

テストを使った分析、テストを使った設計、テストを使ったプログラミング…などなど。これって、「テスト」を「オブジェクト指向」に置き換えれば通じる! ということは、テスト駆動開発とは、思考のフレームワークのようなものなのか。

そういう観点でTDDを見たことがなかったので、TDDの奥深さというか広さを垣間見てビックリしました。

TDDをしていて定性的に直感するのは、「品質が向上している」こと

和田さんは、TDDの効果は定量的なものではないと強調されます。TDDを実践している人から、「TDDで明らかにコードの品質が上がった。バグが減った」という話を聞くことも多いです。たぶんどちらも真実。単にバグが減った現象があったとしても、それが本当にTDDの効果によるものなのかを証明するのは、むずかしいんだろうな。

テストは目的ではない

これを聞くと、私はなんだか安心する。一回きりのテストなら自動化しても意味ないな、と判断できるし、getter/setterのテストは省いていいや、と判断できる。ものづくりのそもそもの目的に立ち戻って、テストやリファクタリングを切り上げられる。気がする。

で、テストが目的でないのと同様に、おそらくリファクタリングも目的ではないですよね?

バーがグリーンになったら成功と分かるテストと違って、リファクタリングは終わりがどこにあるのか分からない。まぁ、私がそうなる原因は、第一にリファクタリングに習熟してないからだけど(フツーは分かるものなのかも…)。

そのへんをちょこっと和田さんに聞いてみたかったので、懇親会でお話しできて嬉しかったです。ありがとうございました。(>和田さん)

『テスト設計のさわり』鈴木三紀夫さん

完璧なテスト計画なんてムリ

完璧なプロジェクト計画がムリなのと、同じかも。

ただ、自分の感覚では、プロジェクトは計画のしすぎで危うくなり、テストは計画のしなさすぎで危うくなることが多い、という印象があります。

ライトニングトークス by 佐々木誠さん

「すべての工程で、テストの要素を取り入れる」

これは、理想的だと感じながら、自分は実現できていないことです。そのため、とても気になりました。

要件と検証方法をセットで考える

「『100人同時アクセス』と決めたら、その検証方法までセットで考える」という例が、わかりやすかったです。それができたらすばらしい。テストを実施することだけが確定していて、方法はあいまいなままで、実施直前にあわてて決めることとか、あるある。…反省。

  • 何のツールで、どうやって実行するのか
  • どんなスキルを持った人が実施するのか
  • いつまでに、どのようなインフラを調達するのか

ホントは事前にここまで考えたテスト計画を作りたい。だけど現実では、「インフラ調達計画の期限は、○○工程の終了までとする」とか逃げて、逃げっぱなしになったりw ………反省。

リリース後の試験書

「これによっても結構バグが見つかる」と佐々木さん。リリース後の試験書って、どういうものなんでしょうか? 勉強不足で、イメージがわきません。知りたいー。作って使ってみたい。

保守のテスト――本番データのモニタリング

これは本当に大事だとあらためて思った。なぜなら、バグを見つけることはもちろん、保守の中からこそ、運用を改善する試みを生みだせると思うから(たとえば、システムの異常を検地する仕組みや、エラーから自動復帰する仕組みを、プログラムで自動化しようと思いついたりだとか、そういうこと)。

運用の自動化は、リリース前にすべてを決めてもダメで、運用して稼動状況をモニタリングしてみてはじめて、そうすることが望ましいと考えられる部分を自動化していくといい気がする。稼動するシステムを見守って、育てていくスキルが、担当者には必要なんだろうなぁ。

とかつらつら考えましたが、「バグを出すための」保守のテストについて、もっと詳しく聞いてみたかったです。

ワールド・テスト・カフェ:グループ内で直感トーク

グループで、「開発者がテスト担当者以上に率先してテストして、バグを見つけたら皆で喜ぶチーム」で仕事をしている、と話してくれた方がいて、すごく面白かった。PMをされている人が、チームにそういう空気を広めて、文化として浸透させているそうです。やっぱり、そういう雰囲気って、人に根付くんだなぁ。

反省:話をしにいこう

さて、ここからは裏のメイン。今回の反省。

グループワークがはじまった時、自分のグループでは一瞬ちょっと間が空きました。誰が口火を切る?というかんじで、お見合いみたいになってしまった。ようは、「シーン」ってしちゃった。

その時、私の隣に座っていた人が、「今日は、ここに話を聞きに来た人ばっかなわけ? 話をしに来た人はいないの?」と、おっしゃった。

これが結構、グサッときました。私は、つい待ってしまう。もちろん、理由はその時によってさまざまですが…言い訳を書いてもしょうがないので、省きます。でも、それってダメだな。すくなくとも、こういう場に参加する意味が半減する。

聞きたいことや言いたいことは、素直に口にしよう。笑われたっていいじゃない。相手が経験豊かな人なら、笑いながら、もっと良い方法を示してくれるハズだ。それに、絶対的に正しいことなんて、じつは少ないし。

というわけで、ズバンといってくれた某さん、ありがとうございました。:-)