GitHub Copilotと連携することでコードの修正を加速させる

近年、生成AIは急速に発展しており開発現場にも生成AIを利用した様々なツールが普及してきました。Parasoft Jtest/dotTESTも生成AIとの連携をサポートしており、次のリリースからOpenAIに加えてGitHub Copilotとの連携もサポートします。本記事では、GitHub Copilot連携を利用してVisual Studio Code(以下、VS Code)上からJtest/dotTESTの静的解析で検出した違反を修正する方法をご紹介します。

OpenAIとの連携については、以下の記事でご紹介しています。

Parasoft Jtest/dotTEST はコードに潜むさまざまなセキュリティ脆弱性を早期発見
ソースコードの品質向上を実現します。

>> Parasoft Jtest の詳細はこちら <<


>> Parasoft dotTEST の詳細はこちら <<

要件

GitHub Copilot連携を利用するためには、以下の要件を満たす必要があります。
※ GitHub Copilot連携機能にはGitHub Copilotの利用契約は含まれていません。利用者が個別に契約する必要があります。

  • Jtestまたは、dotTESTがインストール済みであること
  • Jtestまたは、dotTESTのライセンスでLLM Integration機能が有効化されていること
  • 以下のVS Codeプラグインがインストール済みであること
    • GitHub Copilot Chat(github.copilot-chat)
    • Jtest(parasoft.vscode-jtest)または、dotTEST(parasoft.vscode-dottest)
    • Java(oracle.oracle-java)または、C#(ms-dotnettools.csharp)

利用方法

GitHub Copilot連携の利用方法はJtestとdotTESTで同じです。今回はdotTESTを利用して違反を修正する方法をご紹介します。事前に静的解析を実行するなどしてVS Code上に違反をインポートしておく必要があります。解析の実行方法については、以下のドキュメントをご参照ください。

今回の対象は、以下のゼロ除算のコードです。ゼロ除算が発生するまでの実行パスを確認すると、foreachループに入らなかった場合に除数が0のまま除算がおこなわれてゼロ除算が発生する可能性があることが分かります。

ゼロ除算の違反
  1. 83行目:除数になるint型の変数accountsを0に初期化
  2. 85行目:foreachループに入らない場合、変数accountsはインクリメントされず0のまま
  3. 96行目:変数accountsが0のまま除算されゼロ除算が発生

この違反に対してGitHub Copilot連携を利用するとGitHub Copilot Chatへ問い合わせがおこなわれ、違反の解説と修正コードの提案がされます。問い合わせは数クリックでおこなうことができます。

GitHub Copilot Chatの回答

提案された修正コードを確認すると、ゼロ除算を防ぐために変数accountsが0であるかをチェックする条件式が追加されているのが分かります。修正コードは実コードベースのため、そのままコピーして利用することも可能です。

もし、回答に不明点などがある場合はチャットで追加の問い合わせをすることでより理解を深めることができます。例えば、修正コードの内容や理由を問い合わせたり、日本語での回答を要求することができます。

GitHub Copilot Chatへ追加の問い合わせ

内容を理解したら違反を修正してdotTESTで解析するというのを繰り返します。回答から学ぶことで開発者のスキルの向上も見込めます。

まとめ

GitHub Copilot連携を利用すると、GitHub Copilot Chatで違反の内容や修正コードを問い合わせることができます。開発者は提案された修正コードを確認して利用することで簡単に違反を修正することができます。違反の修正作業に課題を感じている方は利用を検討してみてはいかがでしょうか。

本記事でご紹介したGitHub Copilot連携を搭載したdotTESTは2025年3月末に日本でリリース予定です。Jtestは2025年夏頃リリース予定ですが、リリース済みのUS版を個別でご提供することもできます。ご興味のある方はリンクバナーのページからお問い合わせください。