バグ

bug

本来は「虫」という意味の英語なのだが、カタカナ語としては、コンピュータのソフトウェアの不具合を指す。
計算機の不具合でも、ハードウェアの場合は故障というが、ソフトウェア(プログラム)は経年劣化するものではないので、故障とはいわず、不具合(障害)という。

皆さんは、設計された通りにプログラムが作られていない場合を「バグ」だと考えると思うが実はそうではない。
設計そのものが間違っている場合もやはり「バグ」という。
単純なプログラムミスは検査で見つかるが、設計が間違っている場合は稼働前の発見が非常に難しく問題が大きい。

私がまだ若く、自分でプログラムを書いていたとき、「時限バグ」を思いついたことがある。何年の何月何日何時何分に発生する、あまり大事にならない程度のバグを予め仕込んでおく。
その年月日は、私が旅行に行きたいなあ、思う頃にしておいて、現地に呼ばれて、さっさと対策(自分で仕込んだものだから簡単に直せる)して、会社の出張旅費でその辺を観光して帰って来るというものである。
誘惑に駆られたのは事実だが、これは犯罪であり、ばれたら首どころでは済まないのでやらなかったが、そういう意図的なバグもあるのだよ。

有名な話なので知っている人もいるかもしれないが、銀行のシステムで、預金者に払う利息の小数点以下を切り捨てて、それを自分の口座に集めたプログラマーがいた。
預金者には、一円以下の端数などわからないし、銀行側も気付きにくい。
優れた犯罪だと思ったが、結局はばれている。悪いことはできないのである。