テスト!!

ステージが低い為、たくさん考えたり書く時間が取れないので今回も手短に><


僕が一番嫌なテストが、ズバリ単体試験と結合試験(って言うんでしょうかね、人によって場所によって違うんですけど、ブラウザを叩くアレです)です。案件によっては両方ブラウザ経由でやるように言われて絶望したりしますが、ともあれブラウザを操作してテストするというのに微妙な違和感を感じてならないです。

つまり、何が重要かと言うとWebのテストと言うのは「画面を目視する」と事態に陥り、見落とし、サボりにより、無駄に品質が低くなってしまう可能性が高いと言うこと。

print scalar grep /やる気/, <>; ###0

と、id:t_ishidaさんの書かれている通り。


これを自動化できたらよいなー、と思っていたらSeleniumIDEがあったり。
やったぜー!なんて喜んでいると、クライアントからIE以外は推奨しないとかさくっと言われたり。

もちろん一番げんなりするのは何かって、ブラウザを叩く事そのものではなくて、LLな言語でテストコードを頑張って書いても、その言語の特性上テストコードはブラウザから起動してやらなきゃいけないとか、なんだかんだとブラウザ依存になるのを防ぐ方法を見つけられない自分に対してorz

でも自身の無能は今に始まった事じゃないので、何とかこういったストレスを回避したいと考えておりました。「開発効率よりも、読みやすさや変更しやすさよりも、実行効率よりも、テスト」というアプローチで何か作れないかなー、と。。。結局、そのときは仕事そのものがバタバタし始めてしまったのでお蔵入りになってしまいましたorz。


なので今回、たまたま思い出したようにエントリを書いたので、良い機会だったのかも知れませんね。(java-jaでTDD祭もやるし


僕が当時考えていたのは、(多分)こんなこと。

  • なんかこう「これはひどい」ってタグをたくさん付けられちゃうような圧倒的に効率の悪い実装にならざる得ない(wような、そんな凄い設計だったとしても、前述のテストが楽になるから良いやと思えるような、そんなものなら楽なのかな?
  • 良いコードを書くよりも、テストを自動化する為だけに駄目なコードを時間かけて書いたとしても、全然アリじゃん!っていうかテストを自動化するためだったら、100回で済むループを10,000回回したって良いじゃない!と。(これはさすがにマズイ


という訳で、このへんを軸にちょっとずつ何かを考えていく2008年にしたいですね。
(でも、Python放置しちゃっているし、RESTful Webサービスは読み進まないし、きしだ充は本を会社に置いてきているのでしばらくStopしてるし。。。このままではマズイ><