デバッグとは、プログラムに残されている不具合を取り除く作業のことを言います。
プログラムは前もって作られた設計に従って各機能が実装されていきますが、想定外の要因や作業時のミスなどによって不具合が生じることが多々あります。この不具合のことをバグと呼び、それらを取り除いて正常に動作するようデバッグが行われます。
デバッグの方法には大きく分けて二つのものがあります。一つはプログラムを世の中に送り出す前に、品質を担保する目的で行うものです。
ここではプログラムには必ずバグが潜んでいるという前提をもとに作業が行われ、どういった箇所に不具合があるのか予想した上であぶり出していきます。わざと異常になりそうな数値を入力したり、通常ではありえないような操作を行うことで動作を確認するというものです。
よくあるバグの種類は決まっているので、効率よく作業を行うために専用のツールが用いられるのが一般的です。これを使うことで不具合が起きそうな状況を一通り作り出すことができ、ソフトウェアの品質を高めることができます。
この方法ではよくあるパターンのバグについては発見し修正することが可能ですが、これまでにないタイプのバグに関しては見つけることが難しくなります。
もう一つはユーザーから不具合の報告があった時に対処するというものです。このケースでは不具合の状況が知らされているため、それを再現した上でどこに問題があるのか探り出すという作業になります。
トラブルの状況がわかっているため修正するのは簡単に思えるかもしれませんが、実際はこちらの方が難しいと言われています。というのもユーザーの環境はそれぞれ異なるため、必ずしもデバッガの環境で再現できるというわけではないからです。
さらにすでに完成したプログラムにバグを見つけたとしても、全体に影響を与える恐れがあるため変更するのは困難です。修正用のパッチを作成した上で、それが他の部分に悪影響を与えないか念入りなバグ探しの作業が必要です。