Upgrade to Pro — share decks privately, control downloads, hide ads and more …

GitHub Copilot で効率よくユニットテストが書ける / 2023-04-14

GitHub Copilot で効率よくユニットテストが書ける / 2023-04-14

Takuma Yamamoto

April 14, 2023
Tweet

More Decks by Takuma Yamamoto

Other Decks in Programming

Transcript

  1. Takuma Yamamoto
    GitHub Copilot で
    効率よくユニットテストが書ける

    View full-size slide

  2. BIOGRAPHY
    あなたは誰ですか?
    技術スタック
    SNS
    趣味
    ● バックエンド: Ruby on Rails
    ● フロントエンド: React
    ● アプリ: React Native
    Takuma Yamamoto
    Work at snaq.me
    From Miyazaki
    ●  https://github.com/tamago3keran
    ●  https://twitter.com/yamataku3831
    ●  https://qiita.com/tamago3keran
    ●  https://zenn.dev/tamago3keran
    ● おやつ
    ● サウナ
    ● アニメ ...

    View full-size slide

  3. TODAY’s TOPIC
    GitHub Copilot で効率よくユニットテストが書けることを紹介

    View full-size slide

  4. TODAY’s GOAL
    GitHub Copilot 導入のきっかけに
    導入事例を知る 導入へのきっかけ
    GitHub Copilot の導入によって、ど
    ういったメリットを享受できるか、
    デモも合わせて紹介します。
    ご自身で開発しているプロダクトに
    導入してみようかなと、考えるきっ
    かけになれば嬉しいです。

    View full-size slide

  5. そもそも GitHub Copilot とは何ですか?
    What is GitHub Copilot?

    View full-size slide

  6. INTRODUCTION
    AI による開発サポートツール
    Your AI pair programmer
    GitHub Copilot uses the OpenAI Codex to
    suggest code and entire functions in
    real-time, right from your editor.
    引用元: https://github.com/features/copilot
    GitHub Copilot とは、 OpenAI が開発した人工
    知能モデル「OpenAI Codex」を使用し、コー
    ドや機能をサジェストしてくれる "あなたのAI
    ペアプログラマー" です。

    View full-size slide

  7. GitHub Copilot はどのようにして使用しますか?
    How to use GitHub Copilot?

    View full-size slide

  8. 公式ドキュメントに沿って、自身のアカウントにて GitHub Copilot を有効にします。
    (公式ドキュメント: https://docs.github.com/en/copilot/quickstart )
    有料のサービスではありますが、2023年4月現在60日間のフリートライアルがあります。
    GETTING STARTED
    自身のアカウントで GitHub Copilot を有効にする
    引用元:https://github.com/features/copilot

    View full-size slide

  9. 公式ドキュメントに沿って、プラグインをエディタに導入します。
    (公式ドキュメント: https://docs.github.com/ja/copilot/getting-started-with-github-copilot)
    2023年4月現在、以下のエディタに対応したプラグインが提供されています。
    GETTING STARTED
    エディタにプラグインを導入する
    引用元:https://github.com/features/copilot

    View full-size slide

  10. GitHub Copilot を使ったテスト実装のデモ
    Demonstration

    View full-size slide

  11. DEMONSTRATION - Ruby
    GitHub Copilot の力を借りる前にちょっとだけ準備
    user_test.rb
    user.rb
    まずはコメントでどういったテストを書きたいのか記載します。
    そして、参考になるテストコードをちょっとだけ書いておきます。

    View full-size slide

  12. DEMONSTRATION - Ruby
    GitHub Copilot に少しずつサジェストしてもらう
    neovim ではインサートモードに入って、少し待つとコードがサジェストされます。
    タブを押すとサジェストされたコードが反映されます。

    View full-size slide

  13. DEMONSTRATION - Ruby
    GitHub Copilot に他の候補も表示してもらう
    また GitHub Copilot は複数の候補を持っている場合があります。
    パネルを開くと、候補が複数表示され、適切なものを選択するとそれがコードに反映されます。

    View full-size slide

  14. DEMONSTRATION - JavaScript
    GitHub Copilot の力を借りる前にちょっとだけ準備
    generation_text.test.js
    generation_text.js
    まずはコメントでどういったテストを書きたいのか記載します。
    そして、参考になるテストコードをちょっとだけ書いておきます。

    View full-size slide

  15. DEMONSTRATION - JavaScript
    GitHub Copilot に少しずつサジェストしてもらう
    こちらもインサートモードに入って、コードがサジェストされるのを少し待ちます。
    タブを押してサジェストされたコードを反映しましょう。

    View full-size slide

  16. DEMONSTRATION - JavaScript
    GitHub Copilot に他の候補も表示してもらう
    パネルを開いてみましたが、今回はひとつしか表示されませんでした。
    候補を選択して Enter を押すと、一気に複数行のコードが反映されます。

    View full-size slide

  17. 終わりに...
    Impression

    View full-size slide

  18. ● 公式で紹介されている通り、 "Your AI pair programmer" であることを実感。
    ● 「全てのコードを代わりに書いてくれる」というわけではない。
    ● とても優秀な相棒が一緒に開発してくれている感。
    ● GitHub Copilot X が出るなど、今後も進化していくツールであるはず。
    ● アップデートをキャッチアップして、よりスピーディーな開発を目指したい。
    IMPRESSION
    GitHub Copilot を使ってみて...

    View full-size slide

  19. エンジニア募集中です!
    Recruitment

    View full-size slide

  20. RECRUITMENT
    We are Hiring!
    スナックミー 採用
    https://team.snaqme.com/
    スナックミーでは、「おやつと、世界を面白
    く」していく、そんな活動を仕事として取り
    組みたいエンジニアを募集しています。

    View full-size slide