リファクタリングとは、プログラムの外見的な振る舞いを変更せず、その内部構造を改善すること。プログラマにとって理解しづらい箇所の改善を重ねることで、プログラムの拡張性や再利用性を高く保つことがリファクタリングの目標である。
プログラム改善の作業中にかえって新しくバグを作りこんでしまわないようデバッグを徹底する、複数の修正作業を同時に行わないなど、方法が確立されている。