Udostępnij przez


Szybki start: generowanie danych na potrzeby testowania i pozorowania

W tym szybkim przewodniku dowiesz się, jak używać narzędzia GitHub Copilot do tworzenia realistycznych i tematycznych zestawów danych wspierających rozwój aplikacji, testowanie i prezentacje. Analizując schemat i kontekst bazy danych, narzędzie GitHub Copilot może generować pozorne dane dopasowane do rzeczywistych formatów, symulować przypadki brzegowe i zmniejszyć nakład pracy ręcznej przy rozmieszczaniu baz danych, co przyspiesza testowanie i bardziej reprezentatywne dla rzeczywistych scenariuszy.

Wprowadzenie

Upewnij się, że masz połączenie z bazą danych i masz otwarte aktywne okno edytora z rozszerzeniem MSSQL. To połączenie umożliwia uczestnikowi czatu @mssql zrozumienie kontekstu środowiska bazy danych, umożliwiając dokładne i kontekstowe sugestie. Bez połączenia z bazą danych uczestnik czatu nie będzie miał schematu ani kontekstu danych w celu zapewnienia znaczących odpowiedzi.

W poniższych przykładach użyto bazy danych AdventureWorksLT2022 jako przykładu, którą można pobrać ze strony głównej Przykładów i projektów społeczności programu Microsoft SQL Server.

Aby uzyskać najlepsze wyniki, dostosuj nazwy tabel i schematów, aby dopasować je do własnego środowiska.

Upewnij się, że czat zawiera @mssql prefiks. Na przykład wpisz @mssql pytanie lub monit. Dzięki temu uczestnik czatu rozumie, że prosi o pomoc związaną z językiem SQL.

Generowanie realistycznych i testowalnych danych za pomocą narzędzia GitHub Copilot

Narzędzie GitHub Copilot może pomóc w generowaniu danych testowych i pozorujących bezpośrednio ze schematu SQL lub przykładów JSON. Usługa GitHub Copilot oferuje kontekstowe sugestie, które pomagają skrócić czas i poprawić pokrycie, niezależnie od tego, czy przygotowujesz zestawy danych do pokazów, testowania przypadków brzegowych, czy uzupełniasz swoje środowisko deweloperskie tematycznymi lub losowymi danymi. Te sugestie są szczególnie przydatne w scenariuszach, w których ręczne wprowadzanie danych będzie powolne lub niespójne.

Poniżej przedstawiono typowe przypadki użycia i przykłady tego, co można zadać za pośrednictwem uczestnika czatu.

Generowanie danych testowych

Użyj narzędzia GitHub Copilot, aby wygenerować tematyczne, losowe lub reprezentatywne przykładowe dane dla istniejących tabel. Można zażądać określonych liczb wierszy, zastosować wzorce nazw/wartości lub tworzyć zestawy danych na podstawie struktur zewnętrznych, takich jak przykłady JSON.

Przykład pozornych danych klienta

Generate mock data for the `SalesLT.Customer` table with 100 sample records.

Przykład pozornych danych produktu

Populate the `SalesLT.Product` table with 50 items, each with unique names and prices.

Przykład pozornych danych sprzedaży

Generate mock data for the `SalesLT.SalesOrderHeader` table with 200 records, including order dates and customer IDs.

Generowanie danych testowych z próbki JSON

Based on this sample JSON with four records, generate a SQL table schema and populate it with 50 mock records. Use character names from well-known sci-fi books (for example, Dune, Foundation, Ready Player One) for the `firstName` and `lastName` fields to make the data more realistic and themed:

[
  { "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" }
]

Testowanie przypadków brzegowych

Przechodzenie poza podstawowe generowanie danych przy użyciu narzędzia GitHub Copilot w celu symulowania przypadków brzegowych i weryfikowania zachowania systemu. GitHub Copilot może pomóc wygenerować odpowiednie dane, niezależnie od tego, czy przeprowadzasz testy obciążeniowe logiki biznesowej, sprawdzasz błędy walidacji danych, czy zapewniasz spójność relacyjną. Może również pisać asercje lub logikę testów w celu zweryfikowania wyników.

Ograniczenia ilości testowej

Generate insert statements for `SalesLT.SalesOrderDetail` with `OrderQty` values at the upper boundary (for example, 1,000 units) and verify that the system enforces quantity constraints.

Testowanie formatu adresu e-mail

Create test data for `SalesLT.Customer` with invalid email formats and write a query that flags these records for review.

Testowanie anomalii cenowych przypadków brzegowych

Generate test data for `SalesLT.Product` with edge-case pricing, such as `StandardCost = 0` or negative values, and write a query that highlights anomalies.

Testowanie integralności danych za pomocą mockowania

Simulate data integrity by generating 500 `SalesOrderDetail` rows that correctly reference valid `ProductID` and `SalesOrderID` values from related tables, and ensure GitHub Copilot includes validation logic.

Testowanie logiki biznesowej

Write a test script that confirms the `SalesOrderHeader.TotalDue` value is always greater than the `SubTotal` for each order, helpful for spotting miscalculations in business logic.

Testowanie weryfikacji null

Using SQLAlchemy, create a test that attempts to insert a `SalesOrderDetail` record with a null `ProductID` and verify that the ORM raises an integrity error due to the foreign key constraint.

Testowanie wartości ujemnych

With Prisma, generate test logic that tries to insert a `Product` with a `StandardCost` of `-10`. Validate that Prisma rejects the entry and logs an appropriate error message.

Podziel się swoimi doświadczeniami

Aby pomóc nam udoskonalić i ulepszyć narzędzie GitHub Copilot dla rozszerzenia MSSQL, użyj następującego szablonu problemu GitHub, aby przesłać swoją opinię: GitHub Copilot Feedback

Podczas przesyłania opinii należy wziąć pod uwagę następujące kwestie:

  • Przetestowane scenariusze — daj nam znać obszary, na przykład tworzenie schematu, generowanie zapytań, zabezpieczenia, lokalizację.

  • Co się udało — opisz wszelkie doświadczenia, które przebiegły sprawnie, były pomocne lub przerosły twoje oczekiwania.

  • Problemy lub błędy — obejmują wszelkie problemy, niespójności lub mylące zachowania. Zrzuty ekranu lub nagrania ekranu są szczególnie przydatne.

  • Sugestie dotyczące poprawy — podziel się pomysłami na poprawę użyteczności, rozszerzaniem zasięgu lub ulepszaniem odpowiedzi w usłudze GitHub Copilot.