「バグ」の使い方 | 悪態のプログラマ

悪態のプログラマ

とある職業プログラマの悪態を綴る。
入門書が書かないプログラミングのための知識、会社の研修が教えないシステム開発業界の裏話は、新人プログラマや、これからプログラマを目指す人たちへのメッセージでもある。

コンピュータの画面表示が乱れてしまったり、文字が意味不明の記号などに変わってしまったりすると、「バグった」と言う人がいる。

しかし、「バグ」というのは、本来、設計やプログラミングの間違いのことである。つまり、「バグっている」というのは、ソースコードの記述が間違っているという意味だ(※1)。画面や文字が崩れることではない。また、プログラムの「動作」がおかしいことでもない。

もちろん、ソースコードが間違っていると、プログラムの動作はおかしくなってしまう。しかし、別の原因でおかしくなる場合もあるのだ。プログラムを動かしたときの「現象」だけを見て、「バグっている」と言ったりしていると、それを聞いた開発者がへそを曲げるかもしれない。

同様の誤解からか、プログラムを動かして動作がおかしいところを探す作業を「デバッグ」と言う人もいるようだ。しかし、本来、デバッグは、バグ(つまり、ソースコードの間違い)を修正することである。

問題の現象が発生する「原因」を突き止めることは、デバッグという作業に含まれる。しかし、問題の現象自体を探す仕事はデバッグではない。それは「テスト」と呼ぶのが正しいだろう。


・・・とここまで書いてから、いろいろと Web を眺めたりしていたのだが、「画面がバグった」といった記述は、コンピュータゲーム関連のページに、非常に多いようだ。

また、ゲーム業界では、「デバッグスタッフ」という名目で、テスト要員を募集しているところも結構ある。

「バグ」という言葉の使い方について私が感じていた違和感は、ビジネスソフト開発業界と、ゲームソフト開発業界の、文化の違いから来るものだったのだろうか。

ビジネスソフトの動作がおかしいという場合、プログラム以外に原因があることも多い。例えば、実行環境(パソコンや OS の設定など)がおかしいとか、投入したデータがおかしいといったことだ(※2)。

しかし、ゲーム専用機の上で動作するゲームソフトでは、動作がおかしいという時には、プログラム自体がおかしい、つまりバグである可能性が高いのだろう。

そういった背景を考えれば、ゲーム業界で、「バグ」という言葉がソフトの動作がおかしいこと自体を意味するようになってしまったとしても、不思議なことではないのかもしれない。




※1
ソースコードが間違って記述される瞬間を目撃することは少ないので、「バグった」という言い方はほとんどしない。「バグっている」とか「バグっていた」といった使い方が多い。または、「バグがある」、「バグがあった」というように、名詞としてもよく使われる。

※2
あるいは、設計の元になる、顧客の提示した要件自体がもおかしかった、ということもある。そのような場合は「バグ」ではなく「仕様」と言うことになっている。



Javaデバッグ明快技法
Javaデバッグ明快技法
posted with amazlet on 06.04.16
Will David Mitchell 鈴木 義幸
オーム社 (2001/04)
売り上げランキング: 216,248
おすすめ度の平均: 5
5 あらゆる言語のプログラマに


猫でもわかるゲームプログラミング
粂井 康孝
ソフトバンク クリエイティブ (2005/11/30)