TOP > 踊るプログラマ物語 > プログラムのバグ

あすなろBlogger

facebookに投稿 このエントリーを含むはてなブックマーク このエントリーを含むはてなブックマーク このエントリーをはてなブックマークに追加 この記事をクリップ! livedoorclip ユーザー数 BuzzurlにブックマークBuzzurlにブックマーク この記事をtweetする

プログラムのバグ

2006.09.26

ソフトウェアにバグはつきものです。バグの深刻さもピンからキリまでありますが、バグを埋め込むのは人間です。バグのないプログラムを作るのは理想かもしれませんが、現実には不可能です。djb先生ならともかく、すくなくとも、僕には無理でしょう。

ソフトウェアのバグを少なくするために、開発者はテストコードを書いたりしてなるべく早い段階でバグを見つけようとします。僕がいる会社では、その後、開発者自信でテストスペック(単体テスト仕様書)を書いてある一定の品質を保つようにしていました。開発者自身のテストによる品質については賛否両論ありますが、その後に、本格的なテスターによるテストをするためのテストレディあるという品質の維持にはいいかな、と思っています。

その後、本格的なテスターによるテストが行われるはずです。でも、テスターの質によって、実際のテストの「深さ」はまちまちです。つまりは、テスターによってプログラムの品質が左右されます。「テストスペックがあれば、属人性はなくなるのでは?」と言われます。回帰テストならともかく、新しい機能はテストスペック自体を作らなければなりません。テストスペックが出来上がるまでは、テスターに依存することになります。

開発者が一応のテストスペックは書きますが、それを信用してはいけません。いえ、テスターは開発者のテストを信用してはいけません。開発者は無意識のうちに危ないこと、やってはいけなさそうなことを避けてしまいます。多分、人間なら無意識に避けることを防止できないでしょう。目の前に飛んできたボールをよけちゃうようなものです。ただ、僕の会社にはちょっと人間としての道を踏み外したばかりに、開発者なのに自分が作った部分の危険な操作のテストをやってのける人もいますが、それは例外です。

かといって、すべてのテスターの能力を上げることも現実的ではありません。少なくとも短期的に急激にあがることは考えられません。そもそも、テスター本人もテストをして一生飯を食べていきたいとも思っていないこともあります。理由はいろいろありますが、多分、日本ではテスターの地位が低いせいかもしれません。また、テストなら誰でもできるという誤解もあります。確かに簡単なテストなら誰でもでき、開発者になるまえに製品自体を知ってもらうためにテストをしばらくすると言うこともあります。でも、本当にテスターはもっと職人的で、もっとイノベーティブなものだと思っています。多分、僕はそんな領域には到達できないでしょう。

さて、大多数の職人の領域に達していないテスターはどうすればいいのか?と。テストするときに、「テストスペックだけに頼らずにバグを見つける」「テストですべてを網羅できないと適当に行うんじゃなくって、すべてを網羅することを目指す」という意識さえ持ってもらえばいいんじゃないかな。単に努力目標で、テストするときの姿勢なんですが。以前書いた34歳のおじさんプログラマは今は、テストする人になっています。テストスペックを形式的にちゃんと書こうとしてくれますが、話していてもテストスペック通りにやったからいいじゃないか、すべてを網羅することはできないでしょ?と言う答えしかかえってきません。

 まあ、どんなにたくさんバグがあろうと、お客さんがそのバグをつつかなければいいんですけどね。

投稿者 : 大谷 弘喜 | 投稿日時 : 2006.09.26 15:13

あすなろBLOGのトラックバック・コメントは承認制になっています。
すぐにブログに反映されませんので、ご了承ください。

トラックバック

単独開発で気付いた事(3) 業務上でプログラマーにとって必要な事柄 
どうもこんにちは。 今回は今現在、短期間ながらも開発の仕事をしている中でシステムエンジニア兼プログラマー として行っていますが、業務上でプログラマ...

トラックバックURL


コメントの送信








カレンダー

<< 2006年09月 >>

          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

最新のエントリー

最新のトラックバック

最新のコメント

Tag

バックナンバー