ソフトウェアテストに対する認識

@IT:ソフトウェアテスト・エンジニアの本音(5)「テストライブ」とは、テストのプロフェッショナルたちが、開発側を向こうに回して、自前のテストケースを武器に、テスト対象のバグを聴衆の前でその場で見つけていくという企画です。

イベントに関してはよく知らないが,この記事を見ているとありえない文章が出てきて驚いた.これだから日本のプログラマの質が向上しないのでは?と思う節もある.そもそもテストのみを別個に扱ってその質を試すというやり方が間違っている.ソフトウェアにはバグはつきものだがそれを発見出来ないことをここでいうテストエンジニアに押しつけているようにしか見えない.

そもそもソフトウェア開発においてテストがプログラミングの下流作業と思うのが間違いではないかと思う.その認識のせいでテストウェアを担当する人間が時間に対するとばっちりを受けるのである.

ソフトウェア開発におけるテストの位置付け

そもそもソフトウェア開発においてテスティングがプログラミングの下流作業と思われている節がある.この記事の中にも下記のような発言がある.

その際、テスト技術者チームからは「仕様がアバウトな個所があり、テストケース設計が難しい」という声も出ましたが、「テストをやる人間は、仕様に文句をいってはいけない」といった名言(?)も出たりで、そのまま当日に使用するテストケース設計に取り掛かってもらいました。

これがソフトウェア開発におけるテストフェイズの重要性に対する認識の低さを表しているのではないか?と思う.競技としての設定上のジョークだと思いたい.まちがってもこんな認識のマネージャやプログラマのもとでは働けない.テストというのは作ったものが完成したかどうかの確認作業であり,本来その責任はプログラマが持つべき仕事ではないかと思う.テスト仕様自体はプログラマが書くべきであり,それをチェックするのがテストエンジニアというのが理想的である.時にはプログラマ自身がテストをすることも必要だろう.ただテストエンジニアにはバグや仕様の問題の発見に対するノウハウがありそのノウハウをプログラマに管理する必要がある.そしてバグなどを発見した際にはそれの管理と修正のプライオリティ付けの判断の場にいる必要があるだろう.

また「仕様に文句を言ってはいけない」というのは明らかに間違いで,仕様設計段階からテストエンジニアはテストを念頭に設計に参加するべきである.仕様がテストエンジニア不在で策定されることはあってはいけないはずだ.テストエンジニアはリリースに向けた最終的な判断をする(あるいはその材料を提供する)べきである.テストエンジニアの判断無しにマネージャや管理責任者の判断の下リリースしたとしても,その責任はテストエンジニアには取れない.

結局のところ現場ではこの記事レベルの対応しかできていないということだろう.理想は理想でしかないし仕方がないことではある.どちらかというとテスティングの技術を向上するよりも,テスト後にバグが出た場合の言い訳の根回しの方が大事なのかもしれない(笑)いうまでもなくもっと重要なのはこの記事のテストエンジニアの状況にとどまることではなく,ソフトウェア開発における品質保証の立場にステージアップすることが大事だと思うけどね.