문맥:
테스트 자동화는 예측 가능하고 재현 가능한 테스트 데이터를 생성하고 유지해야 할 필요성과 밀접하게 연결되어 있습니다. 수동 테스트는 임의의 데이터를 사용할 수 있지만, 자동화된 시나리오는 데이터베이스나 환경의 상태를 정확히 제어해야 합니다. 애플리케이션의 규모, 마이크로서비스 작업 및 개인 정보 보호 요구는 테스트 데이터 관리 작업을 더욱 복잡하게 만들었습니다.
문제:
관리되지 않는 테스트 데이터에서는 테스트가 불안정해지고, 그 결과는 대표성이 없게 됩니다. 흔히 발생하는 상황은 다음과 같습니다:
또한 실제 데이터를 사용하는 것은 보안이나 개인 정보 보호 정책을 위반할 수 있습니다.
해결책:
현대적인 접근 방식에는 다음이 포함됩니다:
주요 특징:
자동화 테스트에 생산 환경에서 실제 데이터를 사용할 수 있나요?
아니요. 이는 데이터 유출, 규정 위반 및 생산 시스템의 지속적인 변화로 인한 테스트 불안정성으로 이어질 수 있습니다.
테스트 간 모든 데이터를 단순히 정리하는 것만으로 테스트 안정성을 보장할 수 있나요?
아니요. 데이터를 정리하는 것뿐만 아니라 필요한 상태로 제대로 준비하는 것도 중요합니다. 게다가 대량 정리는 동시에 실행되는 테스트나 서비스에 영향을 미칠 수 있습니다.
모든 팀에 대해 하나의 테스트 환경만 있으면 충분한가요?
아니요, 이는 다른 팀의 테스트 간의 충돌 및 갈등으로 이어질 수 있는 방법입니다. 최적의 방법은 격리된 환경 또는 컨테이너화 (Docker 테스트 스위트, 일시적인 환경)를 사용하는 것입니다.
테스트 팀은 자동화된 테스트와 수동 테스트가 작동하는 단일 테스트 데이터베이스를 사용했습니다. 종종 자동화된 테스트가 수동으로 데이터를 삭제하거나 변경하여 실패하여 긴 디버깅 및 시간 손실이 발생했습니다.
장점:
단점:
회사는 ephemeral 환경 인프라를 도입했습니다: 각 테스트는 Docker를 통해 배포되는 데이터베이스의 별도 복사본에서 실행되었습니다. 피xture는 마이그레이션 스크립트에 의해 자동으로 로드되었습니다.
장점:
단점: