読者です 読者をやめる 読者になる 読者になる

あなたは何をテストしますか?

昨日はDevLOVEに参加して来ました!「世界のすべてをテストせよ。〜Make the world Green by Test ! 〜」というサブタイトル。それを受けて自分は「何をそんなにテストしたいのだろう」と疑問がふと頭に浮かびました。
また地雷を踏んでみましょうか。InfoQの記事で「Kent Beck氏、ごく短期のプロジェクトではテストを省略することを提案」という記事が公開されています。自分なりに考えてみた結果、KentBeck氏は超短期のプロジェクトではテストコードを書かなくてもよいという提案をした、と書かれています。が、元々無償で提供しているものにお金を払ってもらうにはどうしたらいいか、と言うことをテストしたかったのだと思うのです。それがKentBeck氏がJUnitMAXを始めた動機であり、それが受入テストに合格するというプロジェクトではないでしょうか?
実際テストコードをまったく書いていなかったのかと言うと、元のBlogを読む限りautomated testを書かなかった、というだけです。automated testという言葉は、直訳すると自動的に実行されるテスト、です。例えばPlug-inとしてどう書くべきか学ぶためのラーニングテストなどは自動的に実行しないテストコードですが、きっとそういうコードは製品を作るうえで早くフィードバックを得たいときには書くでしょう。だから、JUnitを使ったコードは書いていたんじゃないか、と思います。またEclipse Plug-inは自動テスト環境の作成が面倒なんですが、そういう環境を作らなかった、と言うだけで、テストコードをまったく書いていないってことじゃないのではないでしょうか?
話がそれましたが、KentBeck氏が一番初めにテストしたかったもの、それは製品の振る舞い、ではなく、製品の市場価値だと思ったんですよ。
じゃ、システム開発の現場に居る人にとって、テストするものは何か、と言うのが僕の頭の中にあった疑問だったわけです。そうなるとやっぱり出てくるのはシステムの振る舞いが正しいかどうか、仕様のとおりに動作するかどうか、という声をたくさん聞きました。
QAエンジニアの方からすると、テストの視点として、仕様以外にもシステムが満たすべき視点が多々あると思うので、それらを含むはずです。が、製品を作って、それで飯を食っていきたいKentBeck氏や、自分からすると視点がそうとも限らないなぁ、と言うのが自分の感想でした。
それにしても、いろんな方のお話を聞けてとても楽しかった!鈴木先生マインドマップは手書き推奨といい、某製品の関係者いないよね?とおっしゃってましたが、僕は某製品使ってメモ取ってましたし、関係者です。