PASONATECH


[ホーム]
[最新エントリー]
[あすなろBLOG]
[あすなろNEXTBLOG]
[あすなろカウンセラーBLOG]
[インタビュー]
[スペシャルコンテンツ]
[テックスペース]


踊るプログラマ物語


前へ   次へ

大谷 弘喜

2006年09月26日

プログラムのバグ

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

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

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

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

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

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

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


前へ   次へ

最新エントリー


大谷 弘喜
2011年04月19日
AsciiのHadoop & NoSQL
大谷 弘喜
2011年04月14日
プログラマにとって椅子は命
大谷 弘喜
2011年04月12日
血圧計で血圧を測る日々
大谷 弘喜
2011年04月08日
3月分の電気代
大谷 弘喜
2011年04月05日
iPadのi文庫はとってもできる子だった

前へ

バックナンバー




ページトップ


[ホーム]
[ブログコンセプト]
[個人情報]
[著作権]


i-mobile

ITエンジニアの仕事見つかる!PASONA TECH

Copyright(C)2006-2011
Pasona Tech. inc.
All Rights Reserved.