code-testing-generator logo

code-testing-generator

開く

Microsoftのオープンソース多言語エージェント。リポジトリを調査してから単体テストを計画・作成・検証:タスク完了率92.1%(素のCopilotは78.9%)。

共有:

code-testing-generator は Microsoft の .NET チームが公開したオープンソースのエージェントで、単体テストを書いた上でそれが実際に機能することを証明します。「単体テストを生成して」という一言のプロンプトでは空白が多すぎます。どのコードにテストが必要か、どのフレームワークか、どこに置くか、ビルドがどう見つけるか、何を検証すべきか。このエージェントは書き始める前にリポジトリを読んでこれらの判断を決め、計画・作成・実行・検証を行います。MITライセンスの dotnet/skills リポジトリの dotnet-test プラグイン内にあり、.NET、Python、Go、TypeScript、Java、Rust など多言語に対応します。

主な機能

  • リポジトリを意識した計画:一発生成ではなく Research-Plan-Implement(RPI)パイプライン。言語とテストフレームワークを検出し、既存テストを読んで慣習を学び、実際のビルド/テストコマンドを特定します。これは「ローカルではコンパイルできるのに、登録されていないためCIでは一度も走らない」という失敗モードを直接解決します。
  • 3つの戦略:直接(即時に書き検証)、単一パス(一度だけ研究・計画して実装)、反復(大きな範囲やカバレッジ目標に向けて繰り返す)。
  • 検証ゲート:完了前に5つのチェックを実施。テストを失敗させるはずの小さな変更を推論する軽量変異テスト、弱い/欠落したアサーションの検出、要求された各シナリオをテストに対応付け、ワークスペース全体をビルドして全スイートを実行、リポジトリ自身のテストコマンドが新テストを発見するかを確認。
  • 安全な設計:本番コードは変更せず、外部URL呼び出し、ポートバインド、正確なタイミング依存のテストを避ける。
  • 既存の環境で動く:GitHub Copilot CLI、プラグイン対応の Visual Studio Code / VS Code Insiders で利用可能。Visual Studio 対応も進行中。

ベンチマーク

実在リポジトリから作った152タスクの内部ベンチマークで、このエージェントは140(92.1%)を完了、素の GitHub Copilot は120(78.9%)。エラーは63%減。利得は曖昧なプロンプトに集中:89中の79(88.8%)対59(66.3%)。diff指定の15タスクでは全て通過し、素のCopilotはゼロ。テスト数は2.3%少なく(6,963 vs 7,129)、行カバレッジはほぼ同等(72.4% vs 72.2%)、所要時間は約5.5%速い。より難しい外部の SWE Atlas でも差は維持、16/44 対 12/44。

使用シナリオ

  • 未テストモジュールへのテスト穴埋め、リリースゲート前のカバレッジ向上。
  • PRのdiffを精査し、新コードが実際にカバーされていることを確認。
  • 金融、ヘルスケア、公共部門など規制・監査が重いスタックで、意味のあるテストを証明したい場合。
  • ポリグロットなモノレポで、慣習を一本化したい場合。

解決する問題

  1. 通るが何も検証しないテスト:CIが緑かどうかだけでなく、アサーションと変異をチェック。
  2. 登録されていないテストプロジェクト:実際のビルド/テストコマンドを見つけ、CIが本当に走らせる。
  3. 曖昧なプロンプト:フレームワーク・場所・慣習の判断を自ら行う。

料金

オープンソースで無料。

プラン 価格 備考
エージェント+スキル $0 dotnet/skills 内でMITライセンス。コーディングエージェントとモデル費用は別途。

はじめに

  1. GitHub Copilot CLI で /plugin marketplace add dotnet/skills、続けて /plugin install dotnet-test@dotnet-agent-skills
  2. CLIを再起動し、エージェント一覧から code-testing-generator を選択。
  3. 「generate unit tests」と入力し、計画・テスト・最終チェックをレビュー。

よくある質問

何をテストする?

単体テストのみ。統合・E2E・ブラウザ・性能テストは現状対象外。

無料?

はい、MITライセンスのオープンソース。

本番コードを触る?

いいえ。コンテキストとして読むだけで、書くのはテストファイルのみ。

代替案

  • Aider:プロンプトと編集のための汎用CLIコーディングエージェント。
  • Claude Code:カスタムスキルと組み合わせられるターミナルコーディングエージェント。
  • codex-cli:OpenAIのエージェントCLI。同様にスキルで拡張可能。

ヒント

  1. 素のCopilotより大きく伸びる「曖昧なプロンプト」に使いましょう。
  2. 緑のテスト数より最終チェックを重視。アサーション品質こそ本当の利得。
  3. 社内フレームワークを使うなら公式の言語ガイドをフォークして、慣習を合わせる。

まとめ

code-testing-generator は「通るのに何も証明しないテスト」への Microsoft の答えです。リポジトリを先に調査し、書くテストを逐一検証することで、コピペのプロンプトを信頼できるループに変えます。数字は汎用アシスタントが苦手な場面で最も良く出ます。GitHub Copilot CLI で試すか、技術記事を読んでください。

コメント

まだコメントがありません。最初のコメントを投稿してください!