전체 목록
테스트Medium#253

회귀 테스트는 왜 중요하고 어떻게 구성하나요?

#테스트#RegressionTest#버그#품질

답변 포인트

재발 방지와 핵심 흐름 보호를 기준으로 정의, 장점, 한계, 예시를 함께 설명해보세요.

정답 및 해설

빠른 요약

회귀 테스트는 기존 기능과 고친 버그가 다시 깨지지 않도록 확인합니다. 과거 버그 재현 케이스와 핵심 사용자 흐름을 우선 포함하는 것이 좋습니다.

회귀 테스트는 기존 기능과 고친 버그가 다시 깨지지 않도록 확인합니다. 과거 버그 재현 케이스와 핵심 사용자 흐름을 우선 포함하는 것이 좋습니다.

핵심 개념

핵심 기준은 재발 방지와 핵심 흐름 보호입니다.

회귀는 새 변경이 기존 기능을 망가뜨리는 현상입니다. 회귀 테스트는 이미 해결한 버그나 핵심 사용자 여정이 다시 깨지지 않게 만드는 안전망입니다. 모든 것을 E2E로 덮기보다 과거 장애 재현 테스트, 도메인 단위 테스트, 핵심 플로우 E2E를 균형 있게 구성하는 것이 좋습니다.

동작 흐름

  1. 검증하려는 위험을 먼저 정의합니다.
  2. 입력 데이터, 실행 조건, 기대 결과를 명확히 둡니다.
  3. 자동화 비용과 실행 빈도에 맞게 테스트 범위를 조정합니다.
  4. 실패 시 로그와 지표로 원인을 추적할 수 있게 만듭니다.

실제 예시

TypeScript
test('최소 주문 금액 미만이면 쿠폰을 적용할 수 없다', () => {
  const order = createOrder({ total: 9000 });
  expect(() => applyCoupon(order, { minimum: 10000 })).toThrow();
});

예시는 핵심 흐름을 단순화한 것입니다. 실무에서는 팀의 배포 방식, 데이터 크기, 장애 영향도, 유지보수 비용까지 함께 고려해야 합니다.

실무에서 주의할 점

  • 구현 세부사항에 과하게 묶인 테스트는 리팩터링 때 쉽게 깨집니다.
  • 느리고 불안정한 테스트를 방치하면 팀이 테스트 결과를 믿지 않게 됩니다.
  • 커버리지 숫자보다 중요한 시나리오와 경계값을 검증하는지가 더 중요합니다.

함께 연결해서 보면 좋은 키워드

RegressionTest, Bug, TestStrategy, Quality

정리

한 줄로 정리하면, 회귀 테스트는 기존 기능과 고친 버그가 다시 깨지지 않도록 확인합니다. 과거 버그 재현 케이스와 핵심 사용자 흐름을 우선 포함하는 것이 좋습니다. 개념의 정의뿐 아니라 적용 조건과 실패했을 때의 증상까지 함께 이해하는 것이 중요합니다.

관련 질문

같은 카테고리/태그 기준