山下寛人オフィシャルブログ

オイシックス株式会社 執行役員 システム本部長 山下寛人の公式ブログです。

バグはなくならない

システムバグはエンジニアにとって永遠の

課題だと思います。

誰もバグを出したいと思う人はいません。

エンジニアは常にバグゼロを目指しています。

しかし悲しいことにバグゼロは現実的には

不可能です。

だいぶ前に何かの記事を見てなるほどと思いました。

要旨としては

・バグをゼロにするには全てのケースをテストする
必要がある

・しかし厳密にすべてのケースをテストするとなると
ケースが無限に増える

・それだとコストが膨大に膨れ上がる

・だからある程度バグがないことを確認したら
コスト的に適切なところでリリースする

といった話だったと思います。

バグ曲線があって、経営者はバグをゼロにせよと

言うが、そこまでやっていたら延々と終わらず

期間もコストも全く見合わないものになってしまう

というようなことも書いてあったと思います。

実際やっているとそう思います。


ホワイトボックステストカバレッジを網羅する

ことはある程度可能です。

しかし現実には処理の前後関係が存在したり

HTTPセッションのような状態との組み合わせが

あったりします。

あるプログラムが思わぬところに影響することも

あります。

そうすると論理的には関係ないところもテスト

する必要が出てきます。

そんなふうに考えていくとテストケースが

無限大に増えていきます。


マネジメントとしてはバグは発生することを

前提として考えないといけませんが、一方で

バグゼロを目指して対策をし続けなければ

なりません。

終わりなき戦いです。