회귀 테스트

정의
회귀 테스트(Regression Testing)는 소프트웨어에 수정·보완·업그레이드가 이루어진 후, 기존에 정상적으로 동작하던 기능이 여전히 올바르게 작동하는지를 확인하기 위해 수행하는 테스트 절차를 말한다.

개요
소프트웨어 개발 과정에서 버그 수정, 기능 추가, 성능 개선 등 다양한 변경이 이루어지면, 이러한 변경이 기존 코드에 미치는 영향을 평가할 필요가 있다. 회귀 테스트는 이러한 변경이 기존 기능에 부정적인 영향을 미치지 않았는지 검증함으로써, 소프트웨어 품질을 유지·향상시키는 데 중요한 역할을 한다. 일반적으로 자동화된 테스트 스크립트를 활용해 반복적으로 실행되며, 지속적 통합(CI)·지속적 배포(CD) 파이프라인에 포함되는 경우가 많다.

어원/유래
‘회귀’는 영어 ‘regression’을 번역한 것으로, ‘후퇴·퇴보’를 의미한다. 소프트웨어 공학에서는 ‘수정이 이전 상태(기능)의 정상 동작을 퇴보시키는 경우’를 의미한다. 따라서 ‘회귀 테스트’는 영어 표현 regression testing을 그대로 번역·수용한 용어이며, 1990년대 초반부터 국제적인 소프트웨어 테스트 표준 및 문헌에 등장하기 시작했다.

특징

구분 내용
목적 변경 사항이 기존 기능에 미치는 영향을 확인하고, 새로운 버그 발생을 방지
시점 코드 변경 직후, 빌드가 완료된 시점에 수행
실행 방식 수동 테스트와 자동화 테스트 두 방식이 존재하나, 규모가 큰 프로젝트에서는 자동화가 주류
범위 전체 테스트 스위트(모든 테스트) 혹은 위험도·변경 범위에 따라 선택된 서브셋
주요 도구 Selenium, JUnit, TestNG, Selenium WebDriver, Cypress 등 자동화 프레임워크
주요 장점 - 기존 기능 손상 조기 발견
- 배포 전 안정성 확보
- 테스트 반복성 확보
한계·과제 - 테스트 케이스 유지보수 비용 증가
- 테스트 실행 시간이 길어질 수 있음
- 모든 회귀 시나리오를 포괄하기 어려움

관련 항목

  • 소프트웨어 테스트(Software Testing)
  • 단위 테스트(Unit Testing)
  • 통합 테스트(Integration Testing)
  • 시스템 테스트(System Testing)
  • 자동화 테스트(Automated Testing)
  • 지속적 통합(Continuous Integration, CI)
  • 테스트 주도 개발(Test‑Driven Development, TDD)

※ 본 항목은 소프트웨어 공학 분야에서 널리 사용되는 표준 용어이며, 관련 문헌 및 산업 표준에 근거한다.

둘러보기

더 찾아볼 만한 주제