目次次「プログラマの品質管理」 English

テストの有効性


以前、プログラムが国際的な規格どおり、正確に動いているかどうかの試験を行なって いるのを見たことがある。試験官が外国からやってきて試験をした。膨大な量の項目があ り、個々の項目について、重箱の隅を突っつくようなレベルに至るまで試験をするのであ る。

面白かったのは、規格の解釈がなかなかはっきりしない。試験官の方も、規格書の理解 に曖昧な点がある。テストのために用意してきたプログラムに誤りがあって、テストの合 間に、テスト問題の方を直しているのだ。もうこうなったら、どっちがどっちをテストし ているのか分かったものではない。

読者の全員が知っているに違いない有名な会社のプログラムを使っていた。そのプログ ラムを利用して、かなり大きなプログラムを開発していた時のことだ。

開発の途中までは、暫定版という、商品として一般に出す前に、関係者に事前に配るバー ジョンを利用していた。開発を続けているうちに、暫定版ではなく、商品版が正式に出る 運びとなった。こちらの開発したプログラムを納めるのに、暫定版を使う訳にはいかない。 正式の商品が出るのだから、その製品の上で動作しなければいけないので、暫定版と商品 版を入れ替えた。

すると、どうだろう。全く動かなくなってしまった。暫定版と商品版とを入れ替えたの が原因であるが、悪いのは我々の開発しているプログラムなのか、あるいは商品版の方な のか、明白にしなければならない。特殊な道具(プログラム)を使って調べたら、暫定版 は正しかったが、商品版が間違っていることが分かった。

これには面白い逸話がある。正式に購入し、サポートの手続きもしているから、トラブ ルが発生したら堂々と文句を言える。製品のどこがどう誤っているかがはっきり分かるよ うな資料をファックスでサポート部門に送った。しかし、原因が完全に分かっても、製品 をこちらで勝手に変更する手段はない。それで、
「極めて基本的な誤りなので、この程度の誤りは商品化する前に、普通なら取っている のではないでしょうか」
と、しっかり書いて送ったのである。

それでも、なかなか返事が来ない。相手が返事をすると約束した解答指定日がやってき た。どうせ、今日も返事はないだろうと思い待っていたら、案の定返事はない。それで、 深夜の12時が過ぎたところで、すかさずFAXを入れて、そのまま直ぐに家に帰った。

次の日、会社に出てきて驚いた。相手からの返事が、深夜の1時過ぎに届いている。本 当に仕事をしていたんだ。

さらに、凄いことがあった。こちらが相手の誤りを指摘したら、さらに誤りの調査を続 けてくれ、と言う。道具がないので、詳しい誤りの状態を調べられない、と言う。

冗談ではない。こちらは金を払って購入している「お客様」の筈。何で、販売側の技術 サポートをお客がしなければいけない。まったくアホなことを言う。

この製品、誰でも知っている有名な会社が販売しているが、実は、そこは売っているだ けで、技術的な部分は全部別の会社に頼っていることは、とっくに知っていた。実際の技 術担当者は、コンピュータ技術者仲間の一人だし、その製品のプログラムの仕事を私にし ないかという話まであったのだ。だから、まあ、全部知っていた訳だ。私は、面白いから、 からかっていただけとも言える。

誤りが入った実情は、こうだった。開発会社の方は、正しく動くのを販売会社の方に納 めていた。暫定版では動いていたことからも、開発上の問題ではない。販売会社の方で、 商品化するときに、プログラムの管理を間違えて、正しい物を誤った物に直して(?)か ら販売してしまったのであった。

さらに、この誤りが、発覚した理由が面白い。小さな、テストのためのプログラムで試 している限り、絶対に発覚しない種類の誤りだった。我々が大きなプログラムで、巨大な データを操作したお蔭で発覚したのだ。テストのための小さなプログラムではなく、実務 に使うプログラムだから症状が出たのだ。

本当に誤りを見つけることは難しい。直すより、誤りを見つけることが遥かに難しい。 誤りは、見つけてしまえば、修正作業の半分以上は解決したようなものだ。誤りを直す作 業自体は、見つける作業に比較すれば非常に易しい。誤りを見つけた者にこそ賞金でも出 すべきである。

アメリカで作られた無償のソフトウェアについて、誤りを指摘すると賞金がもらえるの があった。開発した本人が、賞金を出そうというのである。確か最初が1ドルで、その後 誤りが指摘される毎に倍増するのである。私のような小心者には、とてもそんな危険極ま り無い賭けをする勇気はない。

このソフトウェアは非常に有名で、今や全世界で使われるようになった。無料で全世界 に配られ、日本も含めて広く使われているが、それでも、開発した本人が破産したという 話は聞いていない。スタンフォード大学のクヌース先生がその本人であるが、コンピュー タ技術者なら知らない人はいない超有名人である。特に、殆ど誤りを犯さないので有名で ある。

色々なソフトウェアも、クヌース先生のように、誤りが発見される毎に、賞金を出すと か、返金するようにすればどうだろう。こんなことをしたら、ソフトウェア会社の99% は間違いなく倒産するであろう。しかし、こういうことも少しは頭の片隅ででも考えるよ うにしてもらいたい。

『プログラミング
Gauch』
O'Reilly Japan刊

鋭意作成中状況

出版記念
gauche.night

3/8(土)18:00〜
お台場
前売券:1500円
当日券:2000円

主催
オープンソース
Scheme言語処理系
Gaucheの愛好者団体

gauche.gong
出場者募集中

詳細はブログで


Copyright1996,1999 Hirofumi Fujiwara. No reproduction or republication without written permission
目次次「プログラマの品質管理」 English