次の方法で共有


クイック スタート: テストとモック作成のためにデータを生成する (プレビュー)

このクイック スタートでは、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や負の値などを生成し、異常を強調表示するクエリを記述します。

  • 関連テーブルから有効なSalesOrderDetailProductID値を正しく参照する 500 SalesOrderID行を生成してデータ整合性をシミュレートし、GitHub Copilot に検証ロジックが含まれていることを確認します。

  • SalesOrderHeader.TotalDue値が各注文のSubTotalより常に大きいことを確認するテスト スクリプトを記述します。これは、ビジネス ロジックの誤った計算を見つけるのに役立ちます。

  • SQLAlchemy を使用して、null SalesOrderDetailを持つProductID レコードを挿入するテストを作成し、外部キー制約が原因で ORM によって整合性エラーが発生することを確認します。

  • Prisma を使用して、ProductStandardCostを持つ-10を挿入しようとするテスト ロジックを生成します。 Prisma がエントリを拒否し、適切なエラー メッセージをログに記録することを検証します。

フィードバック: テストとモック作成用のデータを生成する

MSSQL 拡張機能の GitHub Copilot を改良および改善するために、次の GitHub 問題テンプレートを使用してフィードバックを送信します。 GitHub Copilot フィードバック

フィードバックを送信する場合は、次の内容を検討してください。

  • テスト済みのシナリオ – スキーマの作成、クエリの生成、セキュリティ、ローカライズなど、どの領域に重点を置いたかをお知らせください。

  • うまくいったこと - スムーズで役に立ち、期待を超えた経験について説明します。

  • 問題またはバグ – 問題、不整合、または混乱を招く動作を含めます。 スクリーンショットや画面の記録は特に役立ちます。

  • 改善の提案 – 使いやすさの向上、カバレッジの拡大、GitHub Copilot の応答の強化に関するアイデアを共有します。