

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 테스트 데이터 생성
<a name="test-data-generation"></a>

테스트 데이터 생성에는 성능 테스트 사례를 실행하기 위한 대량의 데이터를 생성하고 유지 관리하는 작업이 포함됩니다. 이렇게 생성된 데이터는 테스트 사례에 대한 입력 역할을 하므로 다양한 데이터 세트에서 애플리케이션을 테스트할 수 있습니다.

종종 테스트 데이터 생성은 복잡한 프로세스입니다. 그러나 잘못 생성된 데이터 세트를 사용하면 프로덕션 환경에서 예측할 수 없는 애플리케이션 동작이 발생할 수 있습니다. 성능 테스트를 위한 테스트 데이터 생성은 기존 테스트 데이터 생성 방식과 다릅니다. 실제 시나리오가 필요하며 대부분의 고객은 실제 프로덕션 데이터와 유사한 데이터로 워크로드를 테스트하려고 합니다. 또한 생성된 테스트 데이터는 일반적으로 각 테스트 실행 후 원래 상태로 재설정하거나 새로 고쳐야 하며, 이로 인해 시간과 노력이 추가됩니다.

테스트 데이터 생성에는 다음과 같은 주요 고려 사항이 포함됩니다.
+ **정확도** - 데이터의 정확도는 테스트의 모든 측면에서 중요합니다. 데이터가 부정확하면 부정확한 결과가 생성됩니다. 예를 들어 신용 카드 트랜잭션이 생성될 때 미래 날짜의 트랜잭션이 아니어야 합니다.
+ **유효성** - 데이터가 사용 사례에 유효해야 합니다. 예를 들어 신용 카드 트랜잭션을 테스트하는 동안 유효한 사용 사례 시나리오에서 크게 벗어나므로 하루에 사용자당 10,000개의 트랜잭션을 생성하는 것은 권장되지 않습니다.
+ **자동화** - 테스트 데이터 생성을 자동화하면 시간 노력의 이점을 얻을 수 있습니다. 또한 효과적인 테스트 자동화로 이어집니다. 테스트 데이터를 수동으로 생성하면 품질 및 시간 작업 요구 사항에 영향을 미칠 수 있습니다.

  다음과 같이 사용 사례에 따라 채택할 수 있는 다양한 메커니즘이 있습니다.
  + **API 기반** -이 경우 개발자는 테스터가 데이터를 생성하는 데 사용할 수 있는 테스트 데이터 생성 API를 제공합니다. 테스터는 [JMeter](https://jmeter.apache.org/)와 같은 테스트 도구를 사용하여 비즈니스 API를 사용하여 데이터 생성을 확장할 수 있습니다. 예를 들어 사용자를 추가할 API가 있는 경우 동일한 API를 사용하여 프로필이 다른 수백 명의 사용자를 생성할 수 있습니다. 마찬가지로 API 삭제 작업을 호출하여 사용자를 삭제할 수 있습니다. 복잡한 워크플로 애플리케이션의 경우 개발자는 다양한 구성 요소에서 데이터 세트를 생성할 수 있는 복합 API를 제공할 수 있습니다. 테스터는이 접근 방식을 사용하여 요구 사항에 따라 데이터 세트를 생성하고 삭제하는 자동화를 작성할 수 있습니다.

    그러나 시스템이 복잡하거나 호출당 API 응답 시간이 긴 경우 데이터를 설정하고 삭제하는 데 시간이 오래 걸릴 수 있습니다.
  + **SQL 문 기반** - 대체 접근 방식은 백엔드 SQL 문을 사용하여 대량의 데이터를 생성하는 것입니다. 개발자는 테스트 데이터 생성을 위한 템플릿 기반 SQL 문을 제공할 수 있습니다. 테스터는 문을 사용하여 데이터를 채우거나 이러한 문 위에 래퍼 스크립트를 생성하여 테스트 데이터 생성을 자동화할 수 있습니다. 이 접근 방식을 사용하면 테스트가 완료된 후 데이터를 재설정해야 하는 경우 테스터가 데이터를 매우 빠르게 채우고 삭제할 수 있습니다. 그러나이 접근 방식을 사용하려면 애플리케이션의 데이터베이스에 직접 액세스해야 하며, 이는 일반적인 보안 환경에서는 불가능할 수 있습니다. 또한 잘못된 쿼리는 잘못된 데이터 모집단을 초래하여 왜곡된 결과를 생성할 수 있습니다. 또한 개발자는 시간 경과에 따른 애플리케이션 변경 사항을 반영하기 위해 애플리케이션 코드의 SQL 문을 지속적으로 업데이트해야 합니다.

## 테스트 데이터 생성 도구
<a name="data-tools"></a>

AWS는 테스트 데이터 생성에 사용할 수 있는 기본 사용자 지정 도구를 제공합니다.
+ **Amazon Kinesis Data Generator** - Amazon Kinesis Data Generator(KDG)는 데이터를 생성하고 Amazon Kinesis로 전송하는 작업을 간소화합니다. 이 도구는 브라우저에서 직접 실행되는 사용자 친화적인 UI를 제공합니다. 자세한 내용과 참조 구현은 [새로운 Amazon Kinesis Data Generator로 스트리밍 데이터 솔루션 테스트 블로그 게시물을 참조하세요](https://aws.amazon.com/blogs/big-data/test-your-streaming-data-solution-with-the-new-amazon-kinesis-data-generator/).
+ **AWS Glue 테스트 데이터 생성기** - AWS Glue 테스트 데이터 생성기는 AWS Glue PySpark 서버리스 작업을 사용하여 테스트 데이터 생성을 위한 구성 가능한 프레임워크를 제공합니다. 필수 테스트 데이터 설명은 YAML 구성 파일을 통해 완전히 구성할 수 있습니다. 자세한 내용과 참조 구현은 [AWS Glue 테스트 데이터 생성기](https://github.com/aws-samples/aws-glue-test-data-generator) GitHub 리포지토리를 참조하세요.