Irish Breakfast Tearoom

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

ユーザ用ツール

サイト用ツール


software:cause_of_bug

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

software:cause_of_bug [2022/10/10] – 作成 administratorsoftware:cause_of_bug [2022/10/10] (現在) – 外部編集 (不明な日付) 127.0.0.1
行 1: 行 1:
 +===== バグが起きる原因 =====
 +ソフトやアプリのプログラムが、不具合で正常な動作をしないことをバグといいます。その原因のほとんどは、人間のミスです。
  
 +簡単な例を実際のプログラムで説明します。
 +
 +1つ目は、ウェブアプリでよく使われるperlというプログラミング言語を使って、iiという変数(一時的にメモリにデータを保存するもの)を用意し、それに1をたして画面表示する(print)というプログラムを書いたものです。
 +
 +最初がゼロなので、1をたすと1になります。perlでは、変数は初期化されています。ただし、タイピングミスでiiではなく、iiiとタイプミスをしたら当然正しい計算結果は得られません。
 +
 +{{:software:screenshot_jt136.png?nolink|}}
 +
 +2つ目は、ソフトを作るときに使われるC言語というプログラミング言語です。同じように変数を用意し、1をたしています。C言語の場合、変数は初期化されないので、プログラマーがきちんと0を代入するとかの処理をしないといけないのですが、忘れてしまうと予想外の結果となります。繰り返し処理でこのミスをすると、プログラムは暴走するかもしれません。
 +
 +{{:software:screenshot_jt137.png?nolink|}}
 +
 +最近のソフトやアプリのプログラムは、高度に複雑化していますが、バグを探すと、案外たった1文字の打ち間違いが原因だったりします。NASAの金星探査機マリナー1号が打ち上げに失敗し、大西洋に沈んだのも、プログラムのたった1文字の伝達ミスが原因ということです。