悪意を持ってテストをしよう | A Day In The Boy's Life

A Day In The Boy's Life

とあるエンジニアのとある1日のつぶやき。

少し過激なタイトルを付けてみましたが、これぐらいの意気込みでテストをすれば、つまらないルーチンワークのテストという業務も少し斬新な思いで臨めるのではないでしょうか。

ようは、受動的なテストというものをやめ、能動的なテストをしようよというお話。


テスターという職種は、日本ではあって無いようなもので、大部分ではSEやプログラマがかねているというのが現状です。

海外ではこのテスターに特別な地位を与えて、専門とさせている企業も多くあると聞きます。

現に私の同僚はそのテスターとして、アメリカで3ヶ月ほど業務をこなしていました。


プログラマはシステムを構築する事に喜びを感じても、このテスト工程に入ったとたんモチベーションを落とします。

完璧! 」という独り言が多いところからも、少し自信過剰に思っているプログラマーも多いのでしょう。

俺が作ったプログラムにバグなんて無い!そんな自身を持つことはかまいませんが、それは結果が伴わなければなりません。

簡単な単体テストですませ、後は他人任せで誰かが「バグあるよ~」という報告を待っている、そんなプログラマが多いのではないでしょうか。

美しいコードを書いていますか? 」に書いたように、自分のソースコードを一つの芸術作品と捉えるのであれば、その芸術品を寄り完璧に仕上げるためにもテストというのは欠かせない工程になります。


テストがつまらない理由の一つは、決められたシナリオに沿って行う作業が恐ろしく単調だからです。

ただ、確かにシナリオというのは必要になるわけです。

何をやったかの記録、どういった結果になるのか仕様の把握、それを確かに検証したという証明などなど、テストは単にバグをだすという事だけの工程ではありません。


そのつまらない受動的なテストのやり方をかえ、自らがバグを出してやると半ば悪意をもって能動的に取り組めばテストに取り組む意識も変わり、またテストの結果というものもついてきます。

そもそも完璧なソフトウェアなどこの世に存在しません。

バグなんて探しても探しても尽きないわけです。

かならず奴は潜んでいる。絶対に探してやるぞ。と、目くじら立ててやってみると意外とテストは楽しいものです。


このモジュールを作った奴は、果たしてこういうユーザーの操作を想定しているかな?・・・やっぱり出たぞ!と。

それはそれでプログラマ泣かせなテスターですが、そういうテスターは非常にありがたい存在です。

単にテストシナリオを黙々とこなすのではあまり意味がありません。

多くの人がそのシナリオに沿って作業しているわけなので、そのシナリオがクリアされる事は多くの場合、すでにやる前から決まっています。


テストの段階では、その環境を自由に触れることのできる場でもあります。

思い切って普段やら無いようなことをやってみて、言い方は悪いですがアラを探してみる。

そんなテストのやり方をしてみてはいかがでしょうか。