前回(第1回)のながれ
新入社員のA君が希望も新たにプロジェクトチームにやってきました。「早く一人前のプログラマになるぞ」と意気込んでいたところ,先輩から指示された仕事はソフトウェアテストでした。
適当に操作しているようにしか見えません
前回途方にくれたA君,戸惑いつつも初めての仕事に果敢に取り組もうと決意を固めました。新人研修では,ソフトウェアテストというテーマで教わっていませんでしたが,プログラミング研修のときに,テストらしきことをやっていました。そのときの曖昧な記憶を思い出してみます。
- A君 「よく覚えてないけど,『テストはソフトがちゃんと動いているかどうか確かめること』だったような気がする」
席の周りを見渡してみると,どうやらK先輩がテストを行っているようです。どんなことをやっているのか遠巻きに見てみると,画面を見ながら忙しそうに手を動かしています。ソフトを起動したと思ったらすぐ消してみたり,適当に操作しているように見えます。
- A君 「なるほど,研修で習ったとおり,ソフトの機能がちゃんと動くかどうか,いろいろ操作して確かめればいいんだな」
机の上には先ほど手渡された数枚のソフトウェア仕様書があります。仕様書を見てみると,ソフトウェアの画面説明などが書かれています。
- A君 「うーん,これを見ながら適当に操作すればいいのかな?」
A君が仕様書を眺めながらぶつぶつ言っていると,A君の戸惑っている様子に気が付いたK先輩が話しかけてきました。
- A君 「テストっていろいろと操作しておかしなところを見つければいいんですか?」
- K先輩 「まぁそんなところかな」
- A君 「違うんですか?」
- K先輩 「きっとA君には適当に操作しているだけに見えるかもしれないんだけれど,決してそうじゃないんだ」
- A君 「そうなんですか?」
- K先輩 「適当にやるテストなんて存在しないよ。ちゃんと目的を持って行っているんだ」
そう言って,K先輩は自席に戻ってしまいました。また,一人になったA君。K先輩に言われたことを繰り返し考えてみましたが,A君にはどうみてもK先輩が適当に操作しているだけにしか見えません。
またまた,A君は途方にくれてしまいました。
やみくもテストはテストじゃない!
先輩の仕事を背中越しに見ると,単に手を動かしているだけのように見えます。頭を使った作業には見えません。先輩からも「適当に動かしてバグを探しておいてよ」という指示が出ているかもしれません。
頭を使わずやみくもに手を動かすテストが必要な局面というのはあります。しかし,新人でその局面に遭遇するケースというのはあまり無いでしょう。やみくもなテストではなく,やらなくてはいけないテストを任されることが多いはずです。
第2回は,この「やみくもなテスト」の問題点と「やるべきテスト」との違いを説明します。
やみくもなテストとやるべきテストの違い
テストの経験がないA君には,先輩のやっているテストが適当に操作しているだけにしか見えませんでした。ところが,先輩は決して『適当に』テストしているわけではありません。A君が言うような,やみくもなテストを行っているのではないのです。
では,《やみくもなテスト》と《ちゃんとしたテスト》は何が違うのでしょうか?
やみくもなテストの問題点
具体的にやみくもなテストの問題点を考えてみましょう。主な問題点を3つほど挙げます。
- バグが見つかるかどうかは運まかせ
- 記録を残さない
- 時間が来たらそこで終了
- 1.バグが見つかるかどうかは運まかせ
- 狙いやあたりをつけてテストをするわけではありませんから,言ってみればバグが見つけられるかどうかは運まかせということになります。強運な人がいればいいのですが,現実はそうではないので…。
- 2.記録を残さない
- やみくもなテストでは,テストについての記録が行われません。どんなテストを実施したのか,そのときどんな操作をしたのか一切書き残しません。これでは,先輩に対してすら適切な報告ができません。また,バグを発見したときに,どのような操作を行ったかが記録されていませんので,再現手順を見つけ出すのに苦労します。
- 3.時間が来たらそこで終了
- テストがどれだけ十分に実行されたのか,わかるはずもありません。十分なテストを実施したのかどうかの判断基準がありません。どこまでテストすべきかが明確でないということです。そのため,いつテストを終わればよいのか判断できません。したがって,「定時時間が来たら終了」など,なんの根拠もないテスト終了判断となりがちです。新人さんの場合,先輩から「どう?」と声をかけられるまで,ダラダラとテストをしがちになります。
いかがでしょうか?
ベテランの方はもちろん,新人の方も「あちゃー,こりゃダメだよ」という感想を持ったのではないかと思います。自分に部下がいたとして,このようにテストを行っていたとしたら,きっと「ちゃんと頭使わないとダメだよ」と指導するのではないでしょうか?

