Post

[QA]테스트 데이터 관리

[QA]테스트 데이터 관리

# 테스트 데이터

개요

소프트웨어 테스트를 수행할 때 입력값으로 사용.
테스트 실행 시 시스템이 예상대로 작동하는지 검증하는 핵심 요소임.
테스트 데이터는 입력값, 처리 과정, 예상 결과를 포함하여 테스트 시나리오를 구성함.

역할

  • 테스트 실행의 성공률을 높이고 오류를 사전에 발견할 수 있도록 도움
  • 자동화 테스트에서 재현성을 보장하여 테스트 품질을 향상
  • 실제 운영 환경과 유사한 데이터를 제공하여 실용적인 테스트 가능

중요성

  • 일관된 테스트 실행을 보장
  • 신뢰성 높은 테스트 결과를 확보
  • 테스트 실패 시 원인 분석이 용이
  • 운영 데이터와 분리하여 보안 및 데이터 무결성 유지

테스트 데이터 유형

유형정적 데이터동적 데이터
정의미리 정의된 값, 항상 동일한 데이터 사용테스트 실행 시마다 생성되는 값
장점- 테스트 결과 일관성 유지
- 디버깅 용이
- 현실적인 시나리오 검증 가능
- 다양한 입력값 테스트 가능
단점- 실제 데이터 반영 어려움
- 유연성 부족
- 매번 다른 결과 발생 가능
- 디버깅 어려움
예시CSV, JSON, YAML 파일랜덤 ID, 현재 날짜, API 응답값

테스트 데이터 저장 방식

1. 로컬 파일 (CSV, JSON, XML 등)

장점: 간단한 설정, 빠른 액세스
단점: 확장성 부족, 데이터 공유 어려움

2. 데이터베이스 (SQL, NoSQL)

장점: 대량 데이터 관리 가능, 복잡한 쿼리 활용 가능
단점: 설정 복잡, 속도 저하 가능

3. 클라우드 스토리지 (AWS S3, Firebase 등)

장점: 글로벌 접근 가능, 백업 및 확장 용이
단점: 보안 이슈 발생 가능, 속도 제한


테스트 데이터 격리의 중요성

  • 운영 환경과 분리하지 않으면 데이터 충돌 위험 발생
  • 보안 문제 방지 (운영 데이터 유출 위험 차단)
  • 운영 데이터를 오염시키지 않도록 관리

테스트 데이터 격리 방법

방법설명
별도 테스트 데이터베이스 활용운영 데이터베이스와 테스트용 DB를 분리
가짜 데이터(Mock Data) 사용운영 데이터를 사용하지 않고 테스트용 가상 데이터 생성
환경 변수 기반 데이터 분리개발, QA, 운영 환경별 데이터 설정 분리
테스트 후 데이터 정리테스트 종료 후 데이터 자동 삭제

테스트 데이터 재사용

이점:

  • 테스트 실행 속도를 최적화하고 불필요한 데이터 생성을 방지
  • 일관된 테스트 환경을 유지하여 신뢰성 확보
  • 테스트 실행 시마다 동일한 데이터 구조 활용 가능

테스트 데이터 재사용 방법

(예시)

  • Snapshots (스냅샷): 특정 시점의 데이터를 저장하고 필요할 때 복원하는 방법
  • Rollback (롤백): 테스트 실행 후 데이터베이스 상태를 원래대로 되돌리는 방법
  • Seed 데이터: 미리 정의된 데이터를 테스트 실행 전 로드하는 방식 (시드 코드 기역!)

This post is licensed under CC BY 4.0 by the author.