다음을 통해 공유


빠른 시작: 테스트 및 모의를 위한 데이터 생성

이 빠른 시작에서는 GitHub Copilot를 사용하여 애플리케이션 개발, 테스트 및 데모를 지원하기 위해 현실적이고 테마가 있는 데이터 세트를 만드는 방법을 알아봅니다. GitHub Copilot는 데이터베이스의 스키마와 컨텍스트를 분석하여 실제 형식에 맞는 모의 데이터를 생성하고, 에지 사례를 시뮬레이션하고, 데이터베이스를 시드하는 수동 작업을 줄여 실제 시나리오를 더 빠르고 더 많이 대표할 수 있습니다.

시작하기

데이터베이스에 연결되어 있고 MSSQL 확장으로 활성 편집기 창이 열려 있는지 확인합니다. 이 연결을 사용하면 채팅 참가자가 @mssql 데이터베이스 환경의 컨텍스트를 이해할 수 있으므로 정확하고 컨텍스트 인식 제안을 사용할 수 있습니다. 데이터베이스 연결이 없으면 채팅 참가자는 의미 있는 응답을 제공하는 스키마 또는 데이터 컨텍스트가 없습니다.

다음 예제에서는 AdventureWorksLT2022 홈페이지에서 다운로드할 수 있는 샘플 데이터베이스를 사용합니다.

최상의 결과를 위해 사용자 고유의 환경에 맞게 테이블 및 스키마 이름을 조정합니다.

@mssql 접두사가 채팅에 포함되어 있는지 확인하세요. 예를 들어, @mssql을 입력한 후에 질문이나 프롬프트를 작성합니다. 이렇게 하면 채팅 참가자가 SQL 관련 지원을 요청하는 것을 이해할 수 있습니다.

GitHub Copilot를 사용하여 현실적이고 테스트 가능한 데이터 생성

GitHub Copilot는 SQL 스키마 또는 JSON 샘플에서 직접 테스트 및 모의 데이터를 생성하는 데 도움이 될 수 있습니다. GitHub Copilot는 데모용 데이터 세트를 준비하거나, 에지 사례를 테스트하거나, 테마 또는 임의 데이터를 사용하여 개발 환경을 시드하는 등 시간을 줄이고 범위를 개선하는 데 도움이 되는 상황별 제안을 제공합니다. 이러한 제안은 수동 데이터 입력이 느리거나 일관성이 없는 시나리오에서 특히 유용합니다.

다음은 채팅 참가자를 통해 요청할 수 있는 일반적인 사용 사례 및 예제입니다.

모의 데이터 생성

GitHub Copilot를 사용하여 기존 테이블에 대한 테마, 임의 또는 대표 모의 데이터를 생성합니다. 특정 행 수를 요청하거나, 이름/값 패턴을 적용하거나, JSON 샘플과 같은 외부 구조를 기반으로 데이터 세트를 빌드할 수 있습니다.

모의 고객 데이터 예제

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

모의 제품 데이터 예제

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

모의 판매 데이터 예제

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

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

한계 사례 테스트

GitHub Copilot를 사용하여 에지 사례를 시뮬레이션하고 시스템의 동작을 확인하여 기본 데이터 생성을 넘어갑니다. GitHub Copilot는 비즈니스 로직의 스트레스 테스트, 데이터 유효성 검사 실패를 확인하거나 관계형 일관성을 보장하는 등 올바른 데이터 생성에 도움을 줄 수 있습니다. 어설션 또는 테스트 논리를 작성하여 결과의 유효성을 검사할 수도 있습니다.

수량 제약 조건 테스트

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.

전자 메일 주소 형식 테스트

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

경계 사례 가격 책정 이상 현상 테스트

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

모의를 사용하여 데이터 무결성 테스트

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.

비즈니스 논리 테스트

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.

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.

음수 값 검사

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.

사용자 경험 공유

MSSQL 확장에 대한 GitHub Copilot를 구체화하고 개선하는 데 도움이 되도록 다음 GitHub 문제 템플릿을 사용하여 피드백을 제출합니다. GitHub Copilot 피드백

피드백을 제출할 때 다음을 포함하는 것이 좋습니다.

  • 테스트된 시나리오 – 스키마 만들기, 쿼리 생성, 보안, 지역화와 같이 집중한 영역을 알려주세요.

  • 잘 작동하는 기능 – 원활하거나 도움이 되거나 예상을 초과한 모든 경험을 설명합니다.

  • 문제 또는 버그 – 문제, 불일치 또는 혼란스러운 동작을 포함합니다. 스크린샷 또는 화면 녹화는 특히 유용합니다.

  • 개선 제안 - 유용성 향상, 적용 범위 확장 또는 GitHub Copilot의 응답 향상을 위한 아이디어를 공유합니다.