私は意図的にプログラムの実行をエラーを修正する行為から調べるという行為を分けた。もちろん、デバッグはバグを取り除くことを意味します。理想的には、コードを完全に理解し、エラーが完全に表示され、修正する方法を示す「ハハ!」の瞬間に到達します。しかし、あなたのプログラムでは、可視性のない文書化されたシステムを使用することが多いため、必ずしもそうであるとは限りません。他のケースでは、コードが複雑であるため、理解が完全ではありません。
バグを修正するには、バグを修正する最小限の変更を加えたいと考えています。あなたは改善が必要な他のものを見るかもしれません。同時にそれらを修正しないでください。一度に一つのこと、ただ一つの事を変える科学的方法を採用しようとする。このための最良のプロセスは、バグを簡単に再現し、修正プログラムを適用してからプログラムを再実行し、バグが存在しなくなったことを確認することです。もちろん、時には複数の行を変更する必要があるかもしれませんが、バグを修正するために概念的に1つのアトミックな変更を適用する必要があります。
時には、実際には1つのように見えるいくつかのバグがあります。バグを定義して一度に修正するのはあなた次第です。時々、プログラムが何をすべきか、または元の著者が意図したものが不明である。この場合、あなたは自分の経験と判断を行い、コードに自分の意味を割り当てる必要があります。何をすべきかを決定し、コメントしたり、何らかの方法でそれを明確にしたりして、コードをあなたの意味に適合させます。これは、最初の場所に元の関数を書くよりも時には難しい中級または上級のスキルですが、実際の世界はしばしば面倒です。書き換えができないシステムを修正する必要があるかもしれません。