開発ツール・手法

デバッグ手法 でばっぐしゅほう

デバッグバグ修正ブレークポイントログ解析二分探索再現手順
デバッグって上手い人と下手な人の違いは何?

簡単に言うとこんな感じ!

上手な人は「仮説を立てて→証拠を集めて→範囲を絞る」というサイクルを素早く回すんだよ!下手な人は「なんとなくここが怪しい」でコードを変えまくる。デバッグは「探偵の推理」と同じで、感情より証拠(ログ・デバッガ)に基づく論理的なアプローチが大事なんだ。


デバッグとは

デバッグ(Debugging) とは、ソフトウェアのバグ(不具合)を発見・原因特定・修正するプロセスです。「デバッグ(Debug)」の語源は、1947年にGrace Hopperがコンピュータのリレーに詰まった虫(Bug)を取り除いたことに由来します。


デバッグの基本アプローチ

ステップ内容
1. 再現するバグを確実に再現する手順を特定
2. 最小化するバグを再現する最小のコード・データに絞る
3. 仮説を立てる「〇〇が原因では?」という仮説を設定
4. 証拠を集めるログ・デバッガで仮説を検証
5. 範囲を絞る(二分探索)どこで壊れているかを半々で絞り込む
6. 修正して検証修正後に再現手順で問題が解消したか確認

主なデバッグ手法・ツール

手法/ツール内容
ブレークポイント特定の行で実行を一時停止して変数を確認
ステップ実行1行ずつ実行して処理の流れを追う
ログ出力処理の流れと変数の値をprint/logで出力
ゴムダックデバッグぬいぐるみに向かってコードを説明する(問題に気づく)
Git Bisectコミット履歴を二分探索してバグ導入コミットを特定

歴史と背景

  • 1947年:Grace HopperがMarkII計算機のリレーに虫を発見し「Bug」という言葉が定着
  • 1960〜70年代:デバッガーツールの登場(DDT・GDB等)
  • 現在:IDEのデバッガ・リモートデバッグ・タイムトラベルデバッグ等が普及

関連用語