Condividi tramite


Guida introduttiva: Generare dati per il test e la simulazione

In questa guida introduttiva si apprenderà come usare GitHub Copilot per creare set di dati realistici e a tema per supportare lo sviluppo, i test e le demo delle applicazioni. Analizzando lo schema e il contesto del database, GitHub Copilot può generare dati fittizi allineati a formati reali, simulare casi perimetrali e ridurre lo sforzo manuale dei database di seeding, rendendo i test più veloci e più rappresentativi degli scenari effettivi.

Inizia subito

Assicurarsi di essere connessi a un database e di aprire una finestra dell'editor attivo con l'estensione MSSQL. Questa connessione consente al partecipante della @mssql chat di comprendere il contesto dell'ambiente di database, abilitando suggerimenti accurati e con riconoscimento del contesto. Senza una connessione al database, il partecipante della chat non avrà lo schema o il contesto dei dati per fornire risposte significative.

Gli esempi seguenti usano il AdventureWorksLT2022 database di esempio, che è possibile scaricare dalla home page degli esempi di Microsoft SQL Server e dei progetti della community .

Per ottenere risultati ottimali, modificare i nomi di tabella e schema in modo che corrispondano al proprio ambiente.

Assicurarsi che la chat includa il @mssql prefisso. Ad esempio, digitare @mssql seguito dalla domanda o dal prompt. Ciò garantisce che il partecipante della chat comprenda che si sta chiedendo assistenza correlata a SQL.

Generare dati realistici e testabili con GitHub Copilot

GitHub Copilot può essere utile per generare dati di test e fittizi direttamente dallo schema SQL o dagli esempi JSON. GitHub Copilot offre suggerimenti contestuali per ridurre il tempo e migliorare la copertura, sia che si preparino set di dati per demo, test di case perimetrali o seeding dell'ambiente di sviluppo con dati a tema o casuali. Questi suggerimenti sono particolarmente utili negli scenari in cui l'immissione manuale dei dati sarebbe lenta o incoerente.

Di seguito sono riportati casi d'uso comuni ed esempi di ciò che è possibile chiedere tramite il partecipante alla chat.

Generazione di dati fittizi

Usare GitHub Copilot per generare dati fittizi a tema, casuali o rappresentativi per le tabelle esistenti. È possibile richiedere conteggi di righe specifici, applicare modelli nome/valore o creare set di dati basati su strutture esterne come esempi JSON.

Esempio di dati fittizi dei clienti

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

Esempio di dati di prodotto fittizi

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

Esempio di dati di vendita fittizi

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

Generare dati fittizi dall'esempio 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" }
]

Test dei casi limite

Andare oltre la generazione di dati di base usando GitHub Copilot per simulare i casi perimetrali e verificare il comportamento del sistema. GitHub Copilot può aiutare a generare i dati corretti, sia che si stia eseguendo test di stress sulla logica di business, controllando gli errori di convalida dei dati o garantendo la consistenza relazionale. Può anche scrivere asserzioni o testare la logica per convalidare i risultati.

Testare i vincoli di quantità

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.

Testare il formato dell'indirizzo di posta elettronica

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

Testare le anomalie dei prezzi dei casi limite

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

Testare l'integrità dei dati con creazione di mock

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.

Testare la logica di business

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.

Testare la convalida 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.

Testare i valori negativi

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.

Condividere la propria esperienza

Per ottimizzare e migliorare GitHub Copilot per l'estensione MSSQL, usare il modello di problema GitHub seguente per inviare commenti e suggerimenti: Commenti e suggerimenti su GitHub Copilot

Quando si inviano commenti e suggerimenti, è consigliabile includere:

  • Scenari testati: segnalare le aree su cui ci si è concentrati, ad esempio la creazione dello schema, la generazione di query, la sicurezza, la localizzazione.

  • Cosa ha funzionato bene : descrivere tutte le esperienze che si sono sentite fluide, utili o superate le aspettative.

  • Problemi o bug : includere eventuali problemi, incoerenze o comportamenti confusi. Screenshot o registrazioni dello schermo sono particolarmente utili.

  • Suggerimenti per il miglioramento : condividere idee per migliorare l'usabilità, espandere la copertura o migliorare le risposte di GitHub Copilot.