Skip to main content

GitHub Copilotを使用したデバッグの学習

コード内のエラーを特定して修正するには、GitHub Copilot に助けを求めましょう。

コード内のバグを見つけて修正するのは、特に開発初心者の場合はフラストレーションがたまるものです。 幸い、GitHub Copilot のようなツールを使うと、バグをすばやく特定して修正できるので、よりクリエイティブで興味深い作業に集中できるようになります。

前提条件

この記事の例では、GitHub Copilot を使用してVisual Studio Code (VS Code) のPython プロジェクトをデバッグしていることを前提としています。 この例に従うには、次のことを行う必要があります。

  • Visual Studio Code ドキュメントの Copilot うぃ使用して、Visual Studio Code のセットアップを完了します。
  •         [download Python](https://www.python.org/downloads/)。
    
  • Visual Studio Code の Python 拡張機能をインストールします。

例を通してデバッグを学ぶ

バグのあるコードを実行しようとすると、主に 2 つの状況が発生します。

  • 実行が完了する前にコードが終了し、エラー メッセージを受け取る。
  • コードはエラーなしで実行されるが、想定と異なる出力になる。

幸い、Copilot は、どちらの状況でもコードのデバッグに役立ちます。 その方法については、次の例を参照してください。

GitHub Copilot を使ってエラーをデバッグする

バグのあるコードを実行すると、多くの場合、エラー メッセージを受け取ります。 メッセージには、エラーが発生したファイルと行が示され、何が問題だったかが簡単に説明されています。 ただし、エラー メッセージはわかりにくい場合があります。 バグを完全に理解して修正するには、Copilot に助けを求めることができます。

例のリポジトリを使ってこれを試してみましょう: .

サンプルリポジトリをコピーする

まず、リポジトリのローカル コピーを作成する必要があります。

  1. まず VS Code で new2code/debug-with-copilot リポジトリをクローンします。
  2. コンピューター上のリポジトリを保存する場所を選び、[Select as Repository Destination] をクリックします。
  3. プロンプトが表示されたら、リポジトリを開きます。

バグのあるファイルの実行

次に、 ファイルを実行してみましょう。 このプログラムは、2 人のプレイヤーによるサイコロを使った戦いをシミュレートします。

  1. VS Code で ファイルを開いて確認します。

  2. コマンド パレットを開くには、Ctrl+Shift+P (Windows linux) または Cmd+Shift+P (Mac)。

  3. 「」と入力して Enter キーを押します。

  4. ターミナル タブに次のコマンドを貼り付けます。

    Windows:

    Shell
    py bugged_dice_battle.py
    

    Mac または Linux:

    Shell
    python bugged_dice_battle.py
    
  5. Enter キーを押してプログラムを実行します。

残念ながら、ターミナルに次のメッセージで終わるエラー テキストが表示されます。

TypeError: str に連結できるのは、("int" ではなく) str のみです

ファイルのデバッグ

このエラーの意味を理解するには、VS Code に Copilot チャット を開き、次のプロンプトを貼り付けて送信します。

Text
Explain in depth why my code produces the following error and how I can fix it:

TypeError: can only concatenate str (not "int") to str

Copilot から、エラーが発生する理由は整数 と を文字列に連結しようとしているためであり、文字列は文字列にのみ連結できる、と回答されます。

コードの更新版を提供し、関数を使って整数を文字列に変換してから連結することでバグを修正します。 ファイルに Copilot の提案を適用して、デバッグの最後のステップを練習します。

GitHub Copilot を使って正しくない出力をデバッグする

ときどき、バグのあるコードを実行してもエラーが発生せず、出力が明らかに正しくないことがあります。 この場合、VS Code ではバグの場所や説明を示すことができないため、デバッグがより困難になることがあります。

このような "目に見えない" バグの場合は、Copilot が特に役立ちます。 サンプル リポジトリの他のファイル () で実際に体験してみましょう。 これは、階乗を計算する機能を持つPythonプログラムです。

バグのあるファイルの実行

まず、プログラムを実行して、正しくない出力を確認しましょう。

  1. ファイルを開いて確認します。

  2. 先ほど作成したターミナルに、次のコマンドを貼り付けます。 Windows:

    Shell
    py bugged_factorial_finder.py
    

    Mac または Linux:

    Shell
    python bugged_factorial_finder.py
    
  3. Enter キーを押してプログラムを実行します。

残念ながら、コードは期待どおりに機能しません。 戻り値は 6 階乗の正しい値である になるはずですが、出力はそれよりもはるかに大きい値です。

ファイルのデバッグ

問題の原因を理解するには、Copilot チャットを開き、次のプロンプトを送信します。

Text
Why is the output of this code so much higher than expected? Please explain in depth and suggest a solution.

Copilot により、 演算子を使っているため、実際には に と の両方を乗算していることが指摘されます。 つまり、ループの反復ごとに余計な が乗算されています。

このエラーを修正するために、数式から余計な を削除するか、 演算子を に変更するコードが Copilot から提案されます。 さっそく変更しましょう。

自分のプロジェクトをデバッグする

Copilot を使って簡単なプログラムのデバッグを演習したので、同じ手法を使って、自分の作業に隠れているバグを見つけて修正することができます。

たとえば、コードによって生成されたエラー メッセージをデバッグするには、次のプロンプトを Copilot に送信します。

Text
Explain in depth why my code produces the following error and how I can fix it:

YOUR-ERROR-MESSAGE

そうではなく、正しくない出力をデバッグする場合は、出力が正しくない理由とその修正方法を Copilot に問い合わせます。 最良の結果を得るには、出力が想定とどのように異なるかについて、できるだけ多くのコンテキストを提供します。

このような戦術があれば、プロジェクト内のバグ修正を始める準備は万全です。

次のステップ

コーディングを続けていると、デバッグが難しい特定の問題シナリオやエラーが発生することがあります。 考えられる issue の一覧と、それらを修正するための Copilot チャット プロンプトの例については、「AUTOTITLE」を参照してください。