このクイック スタートでは、GitHub Copilot を使用して、アプリケーションの開発、テスト、デモをサポートする現実的でテーマにしたデータセットを作成する方法について説明します。 GitHub Copilot は、データベースのスキーマとコンテキストを分析することで、実際の形式に合わせてモック データを生成し、エッジ ケースをシミュレートし、データベースのシード処理の手動作業を減らし、テストをより迅速かつ実際のシナリオのより代表的なものにすることができます。
始めましょう
データベースに接続されていて、MSSQL 拡張機能でアクティブなエディター ウィンドウが開かれていることを確認します。 この接続により、 @mssql
チャット参加者はデータベース環境のコンテキストを理解できるため、正確でコンテキストに対応した提案が可能になります。 データベース接続がないと、チャット参加者は意味のある応答を提供するスキーマまたはデータ コンテキストを持ちません。
次の例では、 AdventureWorksLT2022
サンプル データベースを使用します。このデータベースは、 Microsoft SQL Server サンプルとコミュニティ プロジェクト のホーム ページからダウンロードできます。
最適な結果を得るには、独自の環境に合わせてテーブル名とスキーマ名を調整します。
チャットに @mssql
プレフィックスが含まれていることを確認します。 たとえば、「 @mssql
」と入力し、その後に質問またはプロンプトを入力します。 これにより、チャット参加者は、SQL 関連のサポートを求めていることを理解できます。
GitHub Copilot を使用して現実的でテスト可能なデータを生成する
GitHub Copilot は、SQL スキーマまたは JSON サンプルから直接テストデータとモック データを生成するのに役立ちます。 デモ用のデータセットの準備、エッジ ケースのテスト、テーマ化またはランダム化されたデータを使用した開発環境のシード処理など、GitHub Copilot では、時間の短縮とカバレッジの向上に役立つコンテキストに基づく提案が提供されます。特に、手動でのデータ入力が遅くなったり矛盾したりするシナリオで役立ちます。
チャット参加者から質問できる一般的なユース ケースと例を次に示します。
モック データ生成
GitHub Copilot を使用して、既存のテーブルのテーマ化、ランダム化、または代表的なモック データを生成します。 特定の行数を要求したり、名前/値パターンを適用したり、JSON サンプルなどの外部構造に基づいてデータセットを構築したりできます。
100 個のサンプル レコードを含む
SalesLT.Customer
テーブルのモック データを生成します。SalesLT.Product
テーブルに 50 個の項目を設定し、それぞれに一意の名前と価格を設定します。注文日や顧客 ID など、200 件のレコードを含む
SalesLT.SalesOrderHeader
テーブルのモック データを生成します。4 つのレコードを含むこのサンプル JSON に基づいて、SQL テーブル スキーマを生成し、50 個のモック レコードを設定します。
firstName
フィールドとlastName
フィールドには、よく知られているSF小説のキャラクター名(たとえば、『デューン』、『ファウンデーション』、『レディ・プレイヤー1』)を使用して、データをより現実的でテーマ性のあるものにします。[ { "firstName": "Alice", "lastName": "Smith", "email": "alice@example.com" }, { "firstName": "Bob", "lastName": "Jones", "email": "bob@example.com" }, { "firstName": "Charlie", "lastName": "Brown", "email": "charlie@example.com" }, { "firstName": "Dana", "lastName": "White", "email": "dana@example.com" } ]
エッジ ケース テスト
GitHub Copilot を使用して基本的なデータ生成を超えてエッジ ケースをシミュレートし、システムの動作を確認します。 ビジネス ロジックのストレス テスト、データ検証エラーのチェック、リレーショナル整合性の確保のいずれであっても、GitHub Copilot は適切なデータを生成し、アサーションやテスト ロジックを記述して結果を検証するのに役立ちます。
上限 (1,000 単位など) に
SalesLT.SalesOrderDetail
値を持つOrderQty
の insert ステートメントを生成し、数量制約が適用されていることを確認します。無効な電子メール形式の
SalesLT.Customer
のテスト データを作成し、これらのレコードにレビューのフラグを設定するクエリを記述します。SalesLT.Product
用のエッジケースの価格データ、例えばStandardCost = 0
や負の値などを生成し、異常を強調表示するクエリを記述します。関連テーブルから有効な
SalesOrderDetail
とProductID
値を正しく参照する 500SalesOrderID
行を生成してデータ整合性をシミュレートし、GitHub Copilot に検証ロジックが含まれていることを確認します。SalesOrderHeader.TotalDue
値が各注文のSubTotal
より常に大きいことを確認するテスト スクリプトを記述します。これは、ビジネス ロジックの誤った計算を見つけるのに役立ちます。SQLAlchemy を使用して、null
SalesOrderDetail
を持つProductID
レコードを挿入するテストを作成し、外部キー制約が原因で ORM によって整合性エラーが発生することを確認します。Prisma を使用して、
Product
のStandardCost
を持つ-10
を挿入しようとするテスト ロジックを生成します。 Prisma がエントリを拒否し、適切なエラー メッセージをログに記録することを検証します。
フィードバック: テストとモック作成用のデータを生成する
MSSQL 拡張機能の GitHub Copilot を改良および改善するために、次の GitHub 問題テンプレートを使用してフィードバックを送信します。 GitHub Copilot フィードバック
フィードバックを送信する場合は、次の内容を検討してください。
テスト済みのシナリオ – スキーマの作成、クエリの生成、セキュリティ、ローカライズなど、どの領域に重点を置いたかをお知らせください。
うまくいったこと - スムーズで役に立ち、期待を超えた経験について説明します。
問題またはバグ – 問題、不整合、または混乱を招く動作を含めます。 スクリーンショットや画面の記録は特に役立ちます。
改善の提案 – 使いやすさの向上、カバレッジの拡大、GitHub Copilot の応答の強化に関するアイデアを共有します。
関連コンテンツ
- Visual Studio Code 用 MSSQL 拡張機能のための GitHub Copilot
- クイック スタート: チャットとインライン GitHub Copilot の提案を使用する (プレビュー)
- クイック スタート: コードの生成 (プレビュー)
- クイック スタート: スキーマ エクスプローラーとデザイナーを使用する (プレビュー)
- クイック スタート: スマート クエリ ビルダーを使用する (プレビュー)
- クイック スタート: クエリ オプティマイザー アシスタント (プレビュー)
- クイックスタート: ビジネス ロジック説明ツールを使用する (プレビュー)
- クイック スタート: Security Analyzer (プレビュー)
- クイック スタート: ローカライズと書式設定ヘルパー (プレビュー)
- 制限事項と既知の問題