Irish Breakfast Tearoom

初心者向け情報やコラムを書き込んでいます

ユーザ用ツール

サイト用ツール


software:cause_of_bug

バグが起きる原因

ソフトやアプリのプログラムが、不具合で正常な動作をしないことをバグといいます。その原因のほとんどは、人間のミスです。

簡単な例を実際のプログラムで説明します。

1つ目は、ウェブアプリでよく使われるperlというプログラミング言語を使って、iiという変数(一時的にメモリにデータを保存するもの)を用意し、それに1をたして画面表示する(print)というプログラムを書いたものです。

最初がゼロなので、1をたすと1になります。perlでは、変数は初期化されています。ただし、タイピングミスでiiではなく、iiiとタイプミスをしたら当然正しい計算結果は得られません。

2つ目は、ソフトを作るときに使われるC言語というプログラミング言語です。同じように変数を用意し、1をたしています。C言語の場合、変数は初期化されないので、プログラマーがきちんと0を代入するとかの処理をしないといけないのですが、忘れてしまうと予想外の結果となります。繰り返し処理でこのミスをすると、プログラムは暴走するかもしれません。

最近のソフトやアプリのプログラムは、高度に複雑化していますが、バグを探すと、案外たった1文字の打ち間違いが原因だったりします。NASAの金星探査機マリナー1号が打ち上げに失敗し、大西洋に沈んだのも、プログラムのたった1文字の伝達ミスが原因ということです。

software/cause_of_bug.txt · 最終更新: 2022/10/09 (外部編集)