テストとはどんな仕事だろう?
私は現在社内でテストおよびテストマネジメントの仕事に就いています。
この業界に携わっている人には、開発の中にテストという工程が存在し、それに携わる人はテスタとよばれることはかなり知られていると思います。
しかし、一般的にはSEやプログラマに比べてテスタという存在はかなり認知度が低いかと思います。私の知人・友人にSEやプログラマは何人かいますが、テスタは職場で出会った方々だけです。
そんな状況の中で少しでもテストへの理解を広げたいので、このコラムではテスタの仕事や面白さの一部をご紹介したいと思います。
完璧なテスト
まず、テスタの仕事とはなんでしょう?
一言でいうと、バグを見つけることです。
バグとは大雑把に言うとソフトウェアの障害・欠陥・不良すべてを指します。ほとんど全てのソフトウェアの中にはバグがいます。ソフトウェアがユーザの元に行くまでに、ユーザに不都合なバグをできる限り見つけ出すことがテスタの仕事です。
上記でテスタの仕事を「ソフトウェアに存在するすべてのバグを見つけること」と言い切ることができれば、とてもわかりやすいでしょう。しかし、残念ながら言い切ることは出来ません。
なぜなら、テストにおける数多くの先人が言い切るように「バグを全部見つけるのは無理」だからです。
完璧なテストをすればよいのでは?と思うかもしれません。では、完璧なテストについて少し考えてみることにします。
ここで、テストを職業としている人たちにはある程度知られている「マイヤーの自己診断テスト」を紹介します。
-問題-
下記のプログラムをテストするのに十分と思われるテストケース(テスト項目)を書き出してください。
このプログラムは、カードから3つの整数を読む。この3つの値は、それぞれ三角形の3辺の長さをあらわすものとする。プログラムは、三角形が不等辺三角形・二等辺三角形・正三角形のうちのどれであるかを決めるメッセージを印字する。

答えは14項目程度の要素をすべて含んでおいて、満点となります。(興味のある方は「myers 三角形」で検索してみてください。解答を確認できます。)
プログラムを習ったことのある方がこのプログラムを作れるかというと、きっとほとんどの方が短時間で作れるでしょう。でもテストケースをプログラマに書いていただくと正解率は平均5割程度といわれています。しかも、作成時間はプログラム作成時間の倍以上かかる場合が多いのです。
ここまでシンプルなソフトウェアでさえ、14項目程度のテストケースが必要なのです。まして、複雑な要件を満たしたソフトウェアのテストケースとなると、膨大な量になります。
それらを作成し、プログラムがある程度変更されるたびに実施するのは、納期や工数を考えると非常に困難な作業です。
加えて、ユーザビリティのテスト(ユーザの使い勝手を検査するテスト)や、パフォーマンステスト(性能テスト)・ストレステスト(耐久性テスト)などなど機能以外のテストも必要です。それらのテストをしたとしても、こんな環境で動作したらどうなるだろうなどとまだまだ不具合の可能性は思いついてしまいます。時間をかけて作業をしていると、開発言語やOSのバージョンアップが行われ、さらにテストは増えていきます。
結果、完璧なテストを目指すと永遠にテストを続けることになってしまいます。
創造的であり、知的に挑戦しがいのある仕事
大半のソフトウェアは何らかのリリースをする必要があるので、永遠にテストしていくわけにはいきません。一方で、完璧なテストが不可能である以上完璧な品質のソフトウェアのリリースは不可能であることを証明してしまいました。そうなると、ユーザが満足いく十分な品質のソフトウェアをリリースすることが、現実的な目標となります。
つまり、テストはバグを見つけなければいけないのですが、見つける範囲や限度も決めなければならないのです。ソフトウェアの性質・言語・リリース対象のユーザや顧客から、どういったテストをどのように行うと一番効果的であるかを推測し、実施していくのです。
同じ機能でも、使う人もパソコンも決まっている企業に納める業務用アプリケーションと、使うパソコンもOSも異なる市販用アプリケーションでは当然テストの内容やボリュームが異なってきます。後者では悪意を持ってソフトウェアを操作する人のことも想定に入れる必要が出てきます。
「テストとは、非常に創造的であり、知的に挑戦しがいのある仕事である」といわれるのも納得がいくと思います。一般的にはまだまだテストの作業というと地味だったり、新人の仕事と思われがちですが、実際には非常に経験や能力、適性が必要な仕事です。さらに、他の開発工程以上に戦略性が求められる仕事でもあります。
プロのテスタ
欧米ではプロのテスタと呼ばれる人が存在し認知度も高いのですが、日本ではまだまだこれからというのが現状です。
ただ、ここ数年以前に比べてソフトウェアのテストという言葉やそれに関する書籍を書店でも目にするようになり、テストの理解が深まっていることを感じます。テストが不十分だったためのシステムトラブルが多発し、マスコミに何度も取り上げられたことも関係しているのでしょう。
また、今年からテスト技術者の資格認定試験が始まりました。(JSTQBテスト技術者資格認定 http://www.swtest.jp/certification.html)私も次回挑戦してみようと勉強中です。資格が広まることでプロのテスタも、テスタへの認知度もより増加することでしょう。
プロ意識と知識を持ったテスタが増え、近いうちに、もっと頻繁にお仲間に会える日が来そうだとわくわくしている今日この頃です。

