人間がやらなくてもよいテストを代わりに精度高くやってくれる「テストツール」。日本のプロジェクトではなぜ積極的に使われないのかというと、多くのプロジェクトが、「作業はなんでも人間がやる」ということを前提に設計されているという背景がある。
例えば、インドではエンジニアでも単価が安い人と高い人がいる。高い人には、領域は限られても難易度の高いテストを、安い人には簡単でも大量の処理をこなすテストを割り振らなければ採算が合わないから、最初からテストをできるだけ要素分解して設計するのが普通だ。よって、良いテストツールが登場すれば、「人間にやらせた方がいいもの以外」はテストツールに任せるということが簡単にできてしまう。
しかし日本では、そんなにエンジニアに価格の幅がない。そしてSIベンダーは「人月と工数」で稼ぐビジネスモデルだから、できるだけ多くの人をプロジェクトにアサインしようとする。SEの人数をコントロールすることなく、みんなでテストをするわけだから、「要素分解しなければならない」というモチベーションがプロジェクト全編通して働かないのだ。だから、いざテストツールを手にしても、何をツールに投げて、何を人間の作業に残すかという切り分けが簡単にできない。
ましてや下工程が逼迫した状況において、「決してテスト遅延は許されない」という立場に追い込まれていたら、「無駄な工数がかかる」「作業遅延のリスクがある」という理由を挙げて、SIベンダーは使い慣れないツールの使用を避けたがる。だが、そもそもツールを使う理由それこそが、プロジェクトの品質向上、遅延リスクの低減なのであるから、これでは完全に本末転倒だ。
Wモデルとの組み合わせでテストツールは効果倍増に
そこで筆者が提唱するのが、Wモデルとテストツールの併用である。Wモデルは、Vモデルの改良版といってもよい。VモデルとWモデルの違いは、テスト設計作業をいつどのようにやるべきかを明確に示している点にある。
VモデルとWモデルの違い
Wモデルでは、要件定義の後にすぐ受入テストの設計を、システム使用定義の後にすぐシステムテストの設計をすることになる。テスト設計を早期に実施することでテストの準備がより早く進み、テストの難易度、必要期間や工数がより詳細にわかるようになるのだ。
要素分解することで、どのテストにどのツールを使い、何を人間の手で検証するかを定義し、詳しいテスト計画を作成することができる。さらに、具体的なテストのデザインを並行して進めることで、設計の不備を検知し、下流でのトラブルの種をここで潰しておくこともできる。
実際のところ、テスト設計の適任者である業務リーダーは、開発フェーズに入っても前述の通り全工程において余裕がないから、Wモデルでテスト設計するには、それができるリーダークラスの人財を上工程に追加しなければならなくなる。
しかし、設計をきちんとやった上で適切なテストツール正しく使いこなせば、下工程のテストフェーズにかかる工数とコストは確実に削減できる。そして当然テストの精度もあがる。Wモデルとテストツールの「併用」は、プロジェクトの下流工程の遅延リスク削減のひとつの鍵なのだ。