핵심 요점

  • 안정적인 어설션을 위해 고정 픽스처를 사용하고 탐색을 위해 시드된 무작위성을 사용합니다.
  • 생성된 모든 실패 케이스의 시드 값를 기록합니다.
  • 정상 기록, 경계 기록, 의도적으로 유효하지 않은 기록을 분리하세요.
  • example.com 이메일을 사용하고 기록을 합성으로 표시하세요.

작성 및 검토

편집 및 검토 원칙
작성
무작위 주소 생성기 편집팀
검토
데이터모델링 및 QA 검토팀
최근 주요 업데이트
결정적 시드, 일반-경계-무효 그룹화, 출처 및 생산 격리가 추가되었습니다.

고정 픽스처와 무작위 픽스처는 역할이 다릅니다.

고정 픽스처는 스냅샷, 계약 및 마이그레이션에 적합합니다. 무작위 생성은 조합을 확장하지만 시드가 없으면 누구도 재생할 수 없는 실패를 생성합니다.

작은 검토된 회귀 세트와 시드, 국가 및 시나리오를 허용하는 생성기를 유지하십시오. 유용한 오류를 고정된 픽스처로 승격합니다.

픽스처목적
보통기본 흐름 증명형식적이며 지역적으로 일관성이 있음
경계길이 및 인코딩 노출Unicode, 긴 거리, 선두 0
유효하지 않음운동 회복도시와 우편번호가 일치하지 않습니다.
결함탄력성을 운동하세요조회 시간 초과 및 재시도

형식을 깨지 않고도 인식 가능

example.com와 같은 예약된 도메인을 사용하고, dataPurpose 및 fixtureId를 추가하고, 전체 주소 대신 fixtureId를 기록합니다. 파서를 테스트할 때 우편물의 모양을 사실적으로 유지하십시오.

고객을 복사하지 말고 이름만 바꾸십시오. 다른 필드에서는 여전히 사람을 식별하거나 알림을 보낼 수 있습니다.

{
  "fixtureId": "ca-boundary-003",
  "dataPurpose": "synthetic-test",
  "seed": 7319,
  "countryCode": "CA",
  "email": "qa-7319@example.com"
}

무작위는 불일치를 의미하지 않습니다.

불변성을 정의합니다. 국가 형식이 일치하고, 지역 필드가 하나의 튜플에서 나오며, 우편번호는 텍스트로 유지되고, 선택적 행은 N/A가 아닌 비어 있습니다. 속성 테스트는 여러 종자에 대해 이를 확인할 수 있습니다.

유효하지 않은 픽스처은 하나의 불변성을 깨뜨릴 수 있지만 expectedError를 선언하여 누구도 이를 일반 데이터로 취급하지 않도록 해야 합니다.

  • 모든 시드는 재생 가능합니다.
  • 일반 지역 튜플은 일관성을 유지합니다.
  • 유효하지 않은 픽스처가 하나의 명명된 규칙을 위반합니다.
  • 출력은 참조 데이터 버전을 기록합니다.

프로덕션 부작용 방지

샌드박스 또는 아웃바운드 블록을 통해 이메일, SMS, 인쇄, 이행 및 결제 통합을 테스트합니다. 주소에 테스트를 작성해도 실제 물류 호출이 방해되지는 않습니다.

CI는 환경 및 자격 증명 유형을 확인하고 생산 대기열에 들어가는 합성 테스트 레코드를 거부해야 합니다.

실패를 회귀 테스트 자산으로 전환

실패한 기록, 시드, 데이터 버전 및 어설션을 최소화합니다. 주기적으로 중복을 제거하되, 단지 새로운 것처럼 보이도록 하기 위해 안정적인 픽스쳐를 재생성하지 마십시오.

각 고정 픽스처에 소유자, 시나리오, 예상 결과, 생성 이유 및 검토 날짜를 지정합니다. 보호하는 동작을 신속하게 설명하지 않는 대규모 JSON 파일은 아무도 신뢰하지 않고 감히 삭제할 수 없는 더미가 됩니다. 검토 중에 중복된 보장 범위와 제품에 더 이상 적용되지 않는 규칙을 식별합니다.

무제한 무작위 출력에서 UI 스냅샷을 찍지 마십시오. 스냅샷에 대해 명시적인 고정 레코드를 사용하고 무작위 테스트에서 속성과 불변성을 확인하도록 합니다. 이러한 분할은 생성된 거리가 변경될 때마다 의미 없는 스냅샷 이탈을 방지하는 동시에 광범위한 탐색 범위를 유지합니다.

참조 데이터 업그레이드를 종속성 변경처럼 처리하십시오. 새 스냅샷에 대해 이전 시드 세트를 실행하고, 의도적인 차이점을 검토하고, 이전에 재현 가능한 기록이 변경된 이유를 설명할 수 있을 만큼 오랫동안 두 버전을 모두 유지합니다.

생성된 행의 원시 수가 아닌 시나리오별로 적용 범위를 추적합니다. 10,000개의 일반 주소는 누락된 단위, 앞에 0이 오는 우편번호, 너무 긴 건물 이름 또는 지원되지 않는 지역에 대한 하나의 의도적인 픽스처를 대체하지 않습니다. 컴팩트한 적용 범위 매트릭스를 통해 검토자는 각 픽스처가 어떤 규칙을 적용하는지, 생성기의 사각지대가 어디에 있는지 확인할 수 있습니다.

  • 소유자 및 보호된 동작 할당
  • 중복되고 더 이상 사용되지 않는 케이스 검토
  • 스냅샷에는 고정 픽스처를 사용하고 속성에는 무작위 픽스처를 사용하세요.
  • 버전 참조 데이터 업그레이드가 명시적으로 이루어짐

자주 묻는 질문

테스트 주소는 고정되어야 할까요, 아니면 무작위여야 할까요?

두 가지 모두 사용: 안정적인 회귀를 위한 픽스처와 더 광범위한 조합을 위한 시드 생성.

테스트 이메일에 example.com를 사용하는 이유는 무엇입니까?

문서화 및 테스트용으로 예약되어 있어 실제 제3자와 접촉할 위험이 줄어듭니다.

합성 레코드를 프로덕션에서 실행할 수 있나요?

기본적으로는 아닙니다. 여전히 실제 이메일, 이행, 결제 또는 분석 부작용을 유발할 수 있습니다.

출처 및 추가 자료

  1. RFC 2606: 예약된 테스트 도메인 이름
  2. USPS: 주소 및 우편번호 기본 사항