テストの自動化には時間がかかり、プロジェクトが前進していないように感じることもあります。しかし、多くのデベロッパーが経験しているように、自動テストを導入することで全体的に投資収益率がプラスになります。カスタムモジュールを構築(この記事ではgitlab-helperと呼びます)した場合、これが特に当てはまりました。
当初の開発においては、既存のスクリプトから、将来の機能のベースラインとしてのみ使用される新たなモジュールに、実績のある機能を移行することにフォーカスしました。既存のスクリプトには自動テストが含まれていませんでしたが、一貫して使用することで、機能の期待どおりの動作を示す強力な裏付けとなりました。
私たちの目標は、この問題に対するより成熟した解決策を用意することでした。そのため、自動テストが必要になったのです。これにより、テストにかける時間と堅牢な製品を開発する時間のバランスを取りつつ、効率的に構築するという課題が生じました。合計3人しかいないチームメンバーにとって、これは大きな障壁でした。そこでチームは、当社の一連のAI機能であるGitLab Duoを活用してテスト生成を行い、製品のデリバリー速度と品質を向上させることにしました。
GitLab Duoを使用した自動化に関するこの3部構成のシリーズでは、以下の内容を説明します。
- GitLab Duoを使用してコードテストをどのように生成したか
- より複雑な状況でのGitLab Duoのインタラクティブな活用方法
- 達成できた結果(ネタバレ:デベロッパー1名と GitLab Duoの活用だけで、 2日間で84%のカバレッジを実現)
GitLab Duoを使用してコードテストを生成する
機能自体はどのツールでも利用できますが、この記事では、VS CodeでGitLab Duoを使用し、VS Code用GitLabワークフロー拡張機能を用いて、テストを生成する方法について説明します。その他のGitLab Duoオプションへのリンクは、下部の参照に記載されています。
GitLab Duoをインストールして有効にする
まずは、GitLab Duoを使用するための前提要件として、GitLab Duo対応のアカウントを持っていることを確認しました。GitLab Duoをお持ちでない場合は、60日間の無料トライアルにお申し込みいただけます。
VS CodeでGitLab Duo Chatを使用する方法は、こちらのインストール手順に従いました。そうすると、サイドバーにGitLab Duo Chat拡張機能が表示され、次のChatウィンドウが開きました。
Chatでテストを生成する
gitlab-helperは、チームの作業全体でGitLab APIとのインタラクションを標準化するために構築されたカスタムモジュールです。他のライブラリ機能を拡張して開発およびスクリプト作成作業を簡素化します。メソッドや機能がgitlab-helperに移行され、適切に実装されていることが確認できたら、そのテストを生成するプロセスは簡単でした。
- IDEでメソッド、クラス、またはファイル全体を選択します。
- 選択したコードを右クリックします。
- GitLab Duo Chatで、Generate testsを選択します。
数秒以内にテストが生成され、GitLab Duo Chatウィンドウに表示されました。これらのテストはレビューしたり、コピー&ペーストでコードベースに付け加えたり、既存や新規のテストファイルへ追加したりすることができます。今日のほとんどの世代の自然言語処理の場合と同様に、特にコンテキスト周りでは、GitLab Duoによって作成された初期テストの一部は失敗し、微調整(ネストされた依存関係の処理など)が必要になりました。
上級者向けのコツ:GitLab Duoは、生成されたテストの追加先のファイルを自動作成しません。新規のテストファイルを作成し、ファイル内の上部に
# Tests Generated by Duo
とコメントを追加し、さらにそれらのテストの作成方法がわかるように_duo.py
と末尾につけておくと便利でした。
GitLab Duoは、gitlab-helperの自動テストを構築するための優れた出発点となり、テスト作成の効率とコードカバレッジが大きく向上し、開発プロセスが大幅に高速化されました。GitLab Duoを使用しつつ、人間が監督することで、有用なテストのイテレーションを多数、gitlab-helperモジュールに導入することができました。
このシリーズの次回の記事では、GitLab Duoを使用して自動テストを生成する際に学んだことと、より複雑な状況でのAIとのインタラクティブな作業について説明します。
参照
GitLab Duoを使用してテストを生成する方法は複数あります。他のオプションを以下にご紹介します。
- GitLab UI
- GitLab Web IDE(クラウド内のVS Code)
- VS CodeとVS Code用GitLabワークフロー拡張機能の使用
- JetBrains IDEとJetBrains用GitLab Duoプラグインの使用
- Visual Studio for WindowsとVisual Studio用GitLab拡張機能の使用
監修:川瀬 洋平 @ykawase
(GitLab合同会社 カスタマーサクセス本部 シニアカスタマーサクセスマネージャー)