경계값·조합·개인정보 보호를 함께 다루는 테스트 데이터 설계
경계값 분석과 조합 테스트, 개인정보 보호를 결합해 테스트 커버리지와 데이터 안전성을 관리하는 설계 방법
2026-08-14 · 최초 발행 2025-12-23
테스트 데이터는 제약에서 출발한다
테스트 데이터 설계는 기능·비기능 요구사항과 데이터 제약을 구조화해, 최소한의 데이터로 필요한 커버리지를 확보하는 방법이다. 동등 분할, 경계값 분석, 조합 설계, 개인정보 보호 기법을 함께 적용한다.
핵심은 요구사항에서 제약을 뽑아 데이터로 만들고 검증 결과를 다시 제약 카탈로그에 반영하는 흐름이다. 이 루프가 닫혀 있어야 변경된 규칙과 결함 발견 결과가 다음 테스트 데이터에 반영된다.
경계 주변에서 드러나는 결함
경계값 분석(Boundary Value Analysis)은 입력 도메인의 최소·최대·초과·이상치 부근을 집중 검증한다. 정수와 실수 범위, 문자열 길이, 날짜, 금액, 상태 전이의 임계점에 적용할 수 있다.
동등 분할과 함께 사용하면 필드별 대표값을 표준화할 수 있다. 예를 들어 금액은 {<0, =0, (0,lim), =lim, >lim}처럼 클래스를 나눠 경계와 대표값을 관리한다.
상호작용은 조합으로 다룬다
조합 테스트(Combinatorial Testing)는 입력 인자 간 상호작용을 t-way 수준으로 포괄하는 최소 조합 집합을 설계한다. Pairwise(2-way), IPOG, 정규 직교 배열 같은 알고리즘을 활용하며, 불가능하거나 의미 없는 조합은 제약 조건으로 제외한다.
Pairwise와 3-way를 기본으로 삼되, 위험도에 따라 t-way 수준을 조정할 수 있다. 생성 후에는 인자·값·상호작용 기준의 커버리지를 측정하고, 중복을 제거해 테스트 우선순위를 정한다.
개인정보를 포함한 데이터 생성
PII가 있는 테스트 데이터는 원본 기반 마스킹·가명화·토큰화와 통계적 유사성을 유지하는 합성 데이터(synthetic data)를 병행한다. k-익명성, l-다양성, 차분 개인정보(ε-privacy)는 프라이버시 보장을 위한 수단이며, 데이터 유틸리티와 보호 수준 사이의 균형을 관리해야 한다.
PII 필드는 데이터 카탈로그나 분류기로 탐지하고, 규칙 기반 마스킹과 통계적 합성을 적용한다. 링크 재식별 위험을 평가한 뒤 노이즈·일반화·재합성으로 보정하며, 변환 로그는 감사 가능하게 남긴다.
제약 카탈로그와 데이터 운영 체계
비즈니스 규칙, 스키마, 유효성 검사, API 계약은 데이터 제약의 원천이다. 타입·범위·정규식이 담긴 스키마와 규칙 엔진을 소스 오브 트루스로 관리하고, 제약 충돌을 탐지해 우선순위를 부여한다. 테스트 목적에 따라 제약 가중치를 설정할 수도 있다.
도메인 공통의 동등 클래스와 경계값 카탈로그를 재사용하면 데이터 설계의 일관성을 유지하고 회귀 테스트 유지 비용을 낮출 수 있다.
운영 측면에서는 버전형 테스트 데이터 세트와 고정 시드를 사용해 재현성을 확보한다. 환경 간 동기화는 CI/CD로 자동화하고, 데이터 만료·파기 정책, 접근 제어, 사용 추적 메트릭, 품질 게이트를 함께 운영한다.
생성과 검증이 되돌아오는 흐름
도메인별 설계 관점
금융 대출 심사 엔진에서는 금액·DTI·LTV·신용등급의 경계값을 집중 검증하고, 상품·직군·보증 유형은 pairwise로 조합할 수 있다. 원본 샘플은 마스킹하고 희소 구간은 합성 데이터로 보강하며, 사기 탐지 룰의 음성·양성 케이스는 균형 있게 확보한다.
커머스 프로모션과 쿠폰 규칙은 고객 세그먼트×카테고리×결제수단×기간을 pairwise로 다루고, 고위험 프로모션에는 3-way를 적용한다. 중복 할인과 한도 초과 경계, 말일·윤년 같은 날짜 경계, 타임존 이슈가 검증 대상이 된다.
의료 SaaS는 강도 높은 PII 비식별화가 필요하다. 합성 환자 데이터에 희귀 질환 패턴을 포함하고, HL7/FHIR 스키마 제약을 기반으로 생성한 뒤 참조 무결성과 시계열 일관성을 검증한다.
임베디드와 IoT 환경에서는 센서 범위·샘플링 주기 경계, 통신 오류·지연의 조합을 다룬다. 고장 모드 삽입(fault injection) 데이터 세트는 정상 데이터와 분리해 버전 관리한다.
데이터 소스별 선택 기준
| 소스 유형 | 성능(스루풋) | 확장성 | 일관성 | 안정성(민감정보 위험) | 운영 편의 |
|---|---|---|---|---|---|
| 운영 데이터 부분 샘플 | 높음 | 중간 | 높음 | 낮음 | 중간 |
| 마스킹된 운영 데이터 | 중간 | 중간 | 중상 | 중상 | 중간 |
| 합성 데이터 | 중상 | 높음 | 중간 | 높음 | 높음 |
| 경계/조합 생성 데이터 | 중상 | 높음 | 높음(제약 기반) | 높음 | 높음 |
실제 지표는 도메인·툴체인·규제에 따라 변동하므로, 데이터 소스를 하나로 고정하기보다 혼합 전략을 고려한다.
커버리지와 보호 수준 사이의 균형
조합 최적화로 케이스 수를 60~90% 절감하면서 pairwise 커버리지를 확보할 수 있다. 경계값 중심 설계는 임계 결함의 조기 검출에 유리하며, 고위험 결함의 다수는 경계 주변에서 발견된다.
제약 위반 데이터를 실행 전에 제거하면 비유효 케이스에 드는 낭비를 줄이고 테스트 신뢰도를 높일 수 있다. PII 위험도 평가와 보정은 재식별 리스크를 대폭 축소한다. 시드와 버전 관리는 결함 재검증을 가능하게 하고, 환경 간 동기화 자동화는 배포 리드타임을 단축한다.
요구사항이 바뀌면 제약 카탈로그를 먼저 갱신하고 데이터 생성 파이프라인을 다시 실행한다. 규제·금융 로직에는 3-way, 일반 UI 흐름에는 pairwise를 적용하는 식으로 위험에 따라 t-way를 조정한다. 기본 마스킹에 희소·민감 구간용 합성 데이터를 더하는 방식도 사용할 수 있다.
합성 데이터는 프라이버시 측면에서 유리하지만 통계적 왜곡 가능성이 있어 모델 검증 시 원본 기반 샘플을 혼합할 필요가 있다. 높은 t값은 탐지력을 높이는 대신 케이스를 급격히 늘리므로 시간과 자원 제약 안에서 균형을 잡아야 한다.