도메인 테스트로 경계와 변수 상호작용 설계하기

도메인 테스트의 On·Off·In·Out 기준과 변수 제약, Pairwise 조합, 출력 오라클을 활용해 경계 중심 테스트를 설계하는 방법

2026-08-14 · 최초 발행 2025-12-16

입력 공간을 경계와 제약으로 읽는 테스트

도메인 테스트는 입력·출력 변수를 수학적·논리적 제약에 따라 영역으로 나누고, 각 영역의 경계와 대표 지점에서 테스트 데이터를 고르는 기법이다. 단일 변수의 경계값 분석을 다변량 상호작용과 조건식까지 다루도록 넓힌 방식으로 볼 수 있다.

등가분할로 동치 클래스를 먼저 정의한 뒤, 도메인 테스트에서는 경계의 On·Off와 내부·외부의 In·Out 지점을 구체화한다. 그 결과 개별 변수의 경계뿐 아니라 변수 조합 수준의 커버리지를 다룰 수 있다.

입력 변수, 출력 변수, 불변식과 비즈니스 규칙이 도메인 모델의 재료가 된다. 변수는 범위형·이산형·카테고리형처럼 타입에 따라 나누며, A > B, A와 B의 합 ≤ K, 플래그와 값 사이의 조건 같은 상관관계로 유효 영역과 금지 영역을 구분한다.

경계의 안과 밖을 구분하는 기준

  • On은 도메인 경계 자체, 또는 내부와 외부가 만나는 경계값 위치다. 경계 접점에서 시스템이 어떻게 동작하는지 확인한다.
  • Off는 경계에서 최소 인지 가능한 거리 δ만큼 떨어진 지점이다. 내부와 외부 양쪽의 경계 인근 취약점을 찾는다.
  • In은 도메인 내부의 대표값으로, 각 등가 클래스의 정상 시나리오를 맡는다.
  • Out은 도메인 바깥의 명백한 위반값으로, 음성 시나리오와 오류 처리를 검증한다.

δ를 정할 때는 정수·부동소수의 정밀도, 단위, 라운딩 규칙을 문서화해야 한다. 불연속 구간이나 금지 영역이 있다면 경계도 여러 곳에서 생성된다.

조합을 줄이면서 상호작용을 남기는 방법

모든 입력값을 전수 조합하면 테스트 수가 빠르게 늘어난다. 도메인 테스트에서는 Pairwise, Orthogonal Array, 위험 기반 고차 상호작용 선택으로 조합을 통제한다. 경계에 가까운 조합을 우선하고, 제약을 위반하지 않는 범위에서 최소 케이스를 구성한다.

고위험 규칙은 3-way 이상 조합으로 보강할 수 있다. 커버리지는 On·Off 경계, In 대표값, Out 위반값, 2-way·3-way 튜플 기준으로 측정한다. 실패 밀도, 중복 테스트 비율, 조합 대비 축소율도 운영 지표로 활용할 수 있다.

출력도 별도의 도메인이다. 성공·경고·에러 코드, 구간별 금액, 상태 전이를 정의하고 입력에서 출력으로 이어지는 매핑 규칙을 테스트 오라클의 근거로 삼는다. Off·Out 입력에서는 명세에 따른 에러 코드·메시지·HTTP 상태를 확인한다.

입력부터 판정까지 이어지는 설계 흐름

스코프를 정할 때 입력과 출력 변수를 분리하고, 모든 변수가 하나 이상의 규칙 또는 함수에서 실제로 쓰이는지 확인한다. 이어서 필수·선행 제약, 상관관계, 경계를 수집한다.

각 변수의 가능한 집합은 등가·균질하게 나눈다. 범위형은 구간으로, 카테고리형은 그룹으로 분할한다. 클래스별 대표값은 가능한 작은값을 우선 선택하고, 필요하면 중간값과 최대값을 더한다.

On·Off·In·Out 후보를 만든 뒤 데이터 타입별 최소 증분을 δ로 설정한다. 제약을 충족하는 조합만 남기고 Pairwise와 경계 우선 전략을 적용하며, 고위험 규칙은 3-way 이상으로 선택한다. 이후 성공·경고·에러·코드로 출력 도메인을 정의하고, Off·Out의 오류 경로와 예외·로그까지 검증한다. 실행 결과는 On·Off·튜플 커버리지와 결함 밀도로 되돌아가 미충족 경계를 보강한다.

입력 정의변수, 범위, 제약 수집도메인 분할등가·균질 분할, 타입별 구간화경계 후보 생성On·Off·In·Out, δ 정의조합 전략Pairwise, 위험 기반 3-way+제약 검증불가능 조합 필터링테스트 케이스최소 세트 산출오라클 정의출력 도메인, 에러 코드실행 판정자동 판정, 로그·예외 검증커버리지 측정On·Off·튜플 커버리지피드백결함·공백 보강, 케이스업데이트에러 경로제약 충돌, 도메인 탐지

규칙이 겹치는 업무 로직에서의 적용

결제·할인 엔진에서는 고객등급, 장바구니 금액, 쿠폰 유형, 기간 제한을 변수로 둔다. 특정 쿠폰에 최소 결제금액이나 등급 조건이 있다면 이를 상관관계로 모델링한다. 금액 경계는 On으로 50,000, 100,000, Off로 ±1 단위, In으로 중간값, Out으로 음수와 최대 초과값을 선택할 수 있다. 등급과 쿠폰의 2-way를 보장하고 고위험 규칙은 3-way로 보강한다.

대출 심사와 금리 산정에서는 대출금액, 신용점수, 기간의 관계가 도메인을 형성한다. 금액>3억이면 신용점수≥700 필요라는 규칙이 있다면, 금액의 On은 300,000,000, Off는 299,999,999300,000,001, In은 150,000,000, Out은 01,000,000,000으로 둘 수 있다. 규칙을 위반하는 Out 입력에서는 정확한 에러 코드를 검증한다.

예약 시스템은 시작일시, 종료일시, 리소스 용량을 함께 다룬다. 종료일시는 시작일시보다 커야 하고 용량 제한도 충족해야 한다. 시작과 종료가 같은 시점은 On, 종료가 시작보다 δ만큼 뒤인 값은 Off 후보가 된다. 야간과 영업시간의 경계도 On·Off로 확인하며, 시간대와 DST 이슈에 맞는 δ 정의가 필요하다.

기대할 수 있는 변화

전수 조합과 비교하면 테스트 수를 40~80% 축소하면서 핵심 경계와 상호작용 커버리지를 유지할 수 있다. 경계·상호작용 결함 검출률은 20~50% 향상되며, 자동 판정 오라클을 적용하면 케이스 실행 처리량은 2~5배 증가한다.

제약을 명시적으로 표현하는 과정은 요구사항과 규칙의 불일치를 앞당겨 발견하게 한다. 데이터 정밀도와 라운딩 규칙도 분명해져 운영 장애를 예방할 수 있고, 테스트 설계의 일관성·재사용성·리뷰 용이성도 높아진다.

경계값 분석과 비교할 때의 차이

방법 효율성(성능) 확장성 일관성 안정성(결함 검출) 운영 편의
경계값 분석 단변수 경계에 매우 효율 다변수 증가 시 한계 규칙 단순, 적용 용이 상호작용 결함 탐지 약함 학습/도입 매우 용이
도메인 테스트 상관관계 반영 시 효율 우수 Pairwise 등으로 확장 용이 On/Off/In/Out 기준 일관 경계·상호작용 결함에 강함 모델링·도구 지원 필요

설계 검토에서 확인할 항목

  • 입력과 출력을 분리하고, 모든 변수가 하나 이상의 함수에서 쓰이는지 확인한다.
  • 가능한 집합을 등가·균질하게 분할하며, 클래스별 대표값은 작은값을 우선한다.
  • 타입별 최소 증분을 문서화한다. 정수는 1, 통화는 1원 또는 라운딩 기반, 부동소수는 ULP/고정 소수점 자리수를 기준으로 삼는다.
  • Pairwise와 고위험 규칙의 3-way를 함께 사용하고, 제약 기반 필터로 불가능한 조합을 제거한다.
  • 출력 도메인과 에러 코드를 표준화하고 판정 자동화 스크립트로 연결한다.
도메인 테스트소프트웨어 테스트경계값 분석Pairwise 테스트테스트 설계