テスト!!!

テストを楽にする為に、と思いついたのでメモ的に。

  1. SeleniumIDEを使おう。(画面遷移が確認できれば、後は(ほとんど)見た目的なものだけ)
  2. URLは冪等なのが良い。(SeleniumIDEでさらっと画面遷移を流せるように)

SeleniumIDEを使ってテストできるという事は、つまりプログラムを作ってユニット・テストをして、そこで取りきれなかったバグを後から直した場合、ボタン1つでインテグレーション・テストを再実行できるという事。

そしてSIなスーツが大好きな「生産性を上げる」というのは、プログラム単体を仕上げる時間だけを見ていても絶対上がっていかないんじゃないかと思うです。デバッグ後の再テスト、特にインテグレーション・テスト以降の手間を省かない限り、本当の意味での生産性は上がっていかないし(というか、そもそも生産性って言葉だけじゃなくてきちんと数値化しなきゃいけないんですけども)、仕事も楽になっていかないんじゃないかな、と。


実際にシステムを1つ作り上げるうちで、コードを書く時間そのものはかなり比率は低いと思うんですよね。ではどこに一番コストがかかるかというと、「打ち合わせ」「調査」「デバッグ」「再テスト」です。(SI的な理由で

ポイントは「再テスト」。初回のテストではなく、何かを見つけた後手戻り作業を踏まえた後で行われる奴です。発見された問題を一度に全部対応するのではなく、細々としたものを都度改修していくようなターンに入っていた際に、この再テストという作業は修正のリズムを崩すし、ソースコードを把握している人間を改修以外の作業に奪われてしまうし、となかなかデメリットが大きいと思うんです。

その為、このコストを省きたい。


そう考えた時、SeleniumIDEというのはなかなか頼れる相棒になります。
企業システムだと「IE推奨」とか言ってしまうんですが、実際に使う機能の中でIEで動いてFirefoxで動かない、逆にIEで動かなくてFirefoxで動く、といった機能があるのかないのか、それを把握するのは多分簡単かなと思っています。ブラウザを2つ用意して、同じ画面を同じように叩けば良いんです。
(ここでIEFirefoxの違いを探ろうとすると、かたやプロプライエタリでかたやオープンソースだし、そもそもブラウザの仕様を解析するような真似、SI的な仕事では採算が合わないとか何だとかとDisられる羽目になりますが)

差分が把握できたら、Firefoxで出来る部分はSeleniumIDEに任せてしまえば良いんです。


そういう感じに、「再テスト」を簡単にしておくだけでずいぶん仕事は楽になるんじゃないかな、と。
そこで省けるコストは1日1時間くらいかも知れませんけど、8営業日分省ければ誰か1日休めます。160営業日分省ければ、1人月分の利益を見る事が出来ます。

○○さんて、分かってないよね〜。
××君のテスト甘いから〜。

なんて「分かってない奴」をDisる話をしている暇があるなら、こういった工夫をしていく方が全然建設的だと思いますし、「分かっている奴」を自認する以上そういったプロセスを提供できないのは怠慢だと考えた方が良いんじゃないかな、と。*1

これは自分自身への苦言です。

*1:これをモヤモヤ考えていた時は、Mixiの日記で感情的に愚痴ったり、ついったーに変な投稿したり、ちょっとアウトローな感じになってました。。。若い、若いよ自分><