AIはバグを直せるの?という疑問から
「バグの原因がわからない…」 「誰か、コードをチェックしてくれないかな?」
そんなふうに感じたことはありませんか?
Webエンジニアとして日々コードを書く中で、予期しないエラーや動かない処理に頭を悩ませるのは日常茶飯事です。最近では、ChatGPTやGitHub CopilotといったAIツールが「バグを直してくれるかも」と話題になっています。
でも、実際にどれくらい使えるのか? 本当にAIがバグを正確に見抜いて、適切に修正してくれるのでしょうか?
この記事では、実際のコードを使ってAIにバグ修正を依頼し、その結果を検証していきます。初心者〜中級者のエンジニアの方が、実務で活用できるかどうかの参考になれば嬉しいです。
ChatGPTとCopilotでバグ修正実験
使用するAIツールの紹介(違いも比較)
ChatGPT (GPT-4)
-
会話形式でやり取りができる
-
バグの修正理由を説明しながら提案してくれる
-
プロンプト次第で柔軟な対応が可能
-
初心者にも理解しやすい回答が多い
GitHub Copilot
-
IDE内でリアルタイムに補完・修正提案してくれる
-
コーディングスピードが向上する
-
簡単な構文や雛形は自動生成が得意
-
手軽さとスピードを重視する人におすすめ
-
ChatGPTは「なぜそれがバグなのか?」という解説付きで提案してくれます。
-
一方、CopilotはIDE内で素早く補完を提示してくれるのが強みです。
サンプルコード(JavaScript)
// バグ:条件分岐が間違っている("=" ではなく "==")
function isEven(number) {
if (number = 2) {
return true;
}
return false;
}
ChatGPTへの修正依頼プロンプト
以下のJavaScript関数にはバグがあります。バグの原因と修正内容を説明しながら、正しいコードにしてください。
function isEven(number) {
if (number = 2) {
return true;
}
return false;
}
ChatGPTの出力結果と説明
function isEven(number) {
if (number === 2) {
return true;
}
return false;
}
「=」は代入演算子であり、比較には「===」を使う必要があります。このようなミスは実務でもよく見られます。
GitHub Copilotの提案内容
-
if (number === 2) に補完される
-
より一般的に number % 2 === 0 という補完も表示される
補完内容は文脈依存で変わります。カーソル位置や関数名なども補完に影響します。
修正精度の比較
構文エラー(=の誤用)
-
ChatGPT:◎ 修正+理由説明あり
-
Copilot:◎ 補完候補提示
複雑なロジックの誤り
-
ChatGPT:○ 修正候補が曖昧
-
Copilot:△ 補完だけでは不十分
文脈理解が必要なバグ
-
ChatGPT:○ 条件次第で正解に近い
-
Copilot:○ 同上
AIがつまずくポイントと実務での注意点
1. ビジネスロジックやコンテキストを要するバグには不向き
たとえば「在庫がゼロならエラーを出す」など、業務固有のルールがある場合、それをAIに伝えない限り正しい判断は難しいです。
対策: 事前に「前提条件」や「期待する動作」を明示的にプロンプトに含めることで、精度が上がります。
2. ChatGPTの説明が間違っていても説得力がある
ChatGPTは自然な言葉で説明してくれるため、「一見正しそう」に見えます。しかしコードの挙動は必ず自分で確認しましょう。
3. Copilotはブラックボックス的補完に注意
補完が速いのは魅力ですが、なぜそのコードになるのかは教えてくれません。特に初心者は「自分で考える力」を養うためにも、内容の検証が必要です。
Before / After 事例(HTMLの例)
Before(ミスあり)
<input type="text" name="email" required="false">
After(ChatGPTの修正)
<input type="text" name="email">
解説:「required属性」は存在するだけで有効になります。required=”false”と書いても「requiredがある」ということになり、実は必須扱いになってしまうのです。
AIによるバグ修正は“使い方次第”で実用的
今回の実験から、次のような結論が得られました。
-
構文ミスや一般的なバグには非常に強い
-
ビジネスロジックを含む修正はまだ人の補完が必要
-
Copilotは即時性、ChatGPTは柔軟性に優れる
つまり、AIによるバグ修正は「完全自動化」ではなく、あなたの相棒として非常に頼れる存在です。特に初心者にとっては、学習ツールとしても最適でしょう。
実務への活かし方
こんな場面でAIが役立ちます
-
レビュー前のセルフチェック:ChatGPTに「このコードに問題はある?」と聞いてみる
-
テストコードの生成補助:Copilotに「テストを書き始める」だけで雛形が出る
-
エラー文の意味理解:ChatGPTにエラーメッセージを貼ると、説明+対処法を教えてくれる
バグ修正で困ったときは「AIに聞いてみる」から始めてみませんか? 正しく使えば、時間も学びも効率化され、あなたと一緒にコーディングしてくれる心強いパートナーになるかもしれません!