プログラマが知るべき97のこと
本記事は、株式会社オライリー・ジャパンより出版された『プログラマが知るべき97のこと』の中からひとつのエッセイを取り上げ、そのエッセイをクリエイティブ・コモンズ表示3.0の条件下で転載したものです。
本書の各々のエッセイは、オープンソースモデルに従い、ほぼ無制限で利用が可能です。クリエイティブ・コモンズ表示3.0の条件下で、自由に使用することができるのです。つまり、どのエッセイも、著者の名前を明記すれば、自由に転載、改変が可能であるということです。
『プログラマが知るべき97のこと』はじめに(p.XII)
なお、原書(英文)のエッセイは、下記のWebサイトで公開されています。
Contributions Appearing in the Book – Programmer 97-things
58 テスト担当者はプログラマの友人
バーク・ハフネーゲル(Burk Hufnagel)
テスト担当者は「悩みの種」?
会社によって QA(Quality Assurance:品質保証)と呼ばれたり QC(Quality Control:品質管理)と呼ばれたりしますが、いずれにしろそれを担当している人たちのことをプログラマの多くは「悩みの種」だと思っています。
私の直接知っている範囲でも、テスト担当者たちと敵対的な関係に陥っているプログラマは多くいます。「小うるさい」「完璧主義すぎる」という愚痴もよく聞きます。読者の中にも同じような人は多いのではないでしょうか。
テスト担当は総務部長
私自身は、彼らに対してまったく違った印象を持っています。そうなった原因はおそらく、最初に務めた会社でテストを担当していた人にあると思います。その会社でテストを担当していたのは何と総務部長でした。
マーガレットという名前の女性で、とても感じの良い人でした。いつも業務がスムーズに進むよう、細かいところにまで気を配ってくれ、私も含めた若いプログラマたちの教育も買って出ていました。プロとして顧客の前ではどう振る舞うべきなのかを教えていたのです。
そして、彼女はバグを見つける才能にも恵まれていました。どれほど目立たないバグだろうとすぐに見つけてしまうのです。
リリース前にあらゆるバグを見つけてくれた
当時私が担当していたプログラムは、元々は経理担当の人間が書いたものでした。書いた本人は、自分の腕はプロ並みだと思っていたようですが、実際はやはりプロではないため、プログラムは重大なバグをいくつか抱えていました。その修正が私の仕事だったのです。
修正ができるとマーガレットがテストをします。私としては完全に直したつもりだったのですが、彼女が使い始めると、ほんの少しキーを叩くだけで、すぐに妙な動きをするのです。新たなバグが見つかったというわけです。
もちろんその時は、いらだたしい思いや恥ずかしい思いをすることもありましたが、ともかく彼女が感じの良い人だったので、恨む気持ちはまったくありませんでした。
テスト、デバッグを繰り返すうち、ついにその日が来ました。マーガレットが使っても、プログラムは何の問題もなく起動され、請求書の作成からプリントアウト、終了までまったく滞りなく進んだのです。実に嬉しい瞬間でした。
さらに嬉しかったのは、顧客のコンピュータにプログラムがインストールされてからです。プログラムには何の問題も起きず、ずっと順調に動き続けました。リリース前にあらゆるバグをマーガレットが見つけてくれたからでしょう。
顧客から高く評価される
テスト担当者たちは、プログラマの敵ではなく「友人」であると私は言いたいです。彼らは、取るに足らないと思えるような問題を逐一指摘してくるかもしれません。それで「恥をかかされた」と思う人もいるでしょう。
しかし、些細に思える問題でも解決しておけば、顧客はその問題に煩わされずに済みます。そうすれば、あなたは恥をかくどころか、顧客から高く評価されるでしょう。素晴らしいことではないでしょうか。それはテスト担当者が問題を見つけてくれたからこそ、できたことなのです。
私の言う意味はもうお分かりでしょう。
プログラマに対する信頼感
想像してみてください。たとえば今、とても革新的な人工知能アルゴリズムを利用したソフトウェアが納入され、はじめて使ってみているところだとします。人工知能が、並行処理に関する問題を自動的に発見し修正してくれるという触れ込みです。
起動してみたら、最初の方に表示される画面で “intelligence” のスペルが間違っていることに気づきました。何となく嫌な予感がしますが、単なるタイプミスです。大した問題ではありません。
さらに操作すると、環境設定の画面で、ラジオボタンであるべきところにチェックボックスが使われているのが見つかりました。それからキーボードショートカットがいくつか機能しないのにも気づきました。
どれも大問題というわけではないのですが、数が多くなると、作ったプログラマに対する信頼感は揺らいでくるはずです。
こんな簡単な問題の修正もちゃんとできない人たちが作った人工知能、本当に大丈夫だろうか。並行処理の問題はずっと難しいのに、それを発見して修正するなどという芸当が果たしてできるのだろうか。そう思っても不思議ではありません。
テスト担当者はプログラマにとって「友人」と言える
もちろん、プログラマたちが大変な天才で、AIを素晴らしいものに仕上げるのに熱中するあまり、些細な問題にまったく気付かないということはあり得ます。
それでも、他の人間にテストをさせれば、些細な問題は見つかり、顧客の目に触れるようなことはなかったはずです。それができないというのは、プログラマとしての資質を疑われても仕方ないでしょう。
だから、些細な問題を社内で見つけてくれ、顧客の目に触れないようにしてくれるテスト担当者は、プログラマにとって「友人」と言えるのです。なかなか納得はできないかもしれませんが、それは本当です。
コメント