회귀 테스트
이미 고친 버그나 기존 기능이 새 변경 때문에 다시 깨지지 않았는지 확인하는 테스트이다. 회귀(regression)는 앞으로 나아간 코드가 예전 문제 상태로 되돌아가는 현상을 뜻한다. 바이브 코딩에서는 AI가 한 화면을 고치다가 다른 화면의 props, API 응답 모양, CSS 클래스, 권한 체크를 함께 바꿔 버릴 수 있으므로 회귀 테스트가 특히 중요하다. 좋은 회귀 테스트는 과거 장애의 재현 조건을 작고 자동화된 형태로 남겨, 같은 실수가 다시 들어오면 즉시 실패하게 만든다.
영어 표기
Regression Test
예시
AI가 Q&A 목록 UI를 고친 뒤 예전에 중복 H1 문제가 다시 생기지 않도록 detail page의 h1 개수를 검사하는 회귀 테스트를 추가한다. 이후 리팩터링 때 같은 문제가 재발하면 테스트가 먼저 실패한다.
참고
버그를 고칠 때는 수정 코드만 남기지 말고, 그 버그가 다시 들어오면 실패하는 테스트를 함께 남기는 것이 안전하다.
- 카테고리
- 테스트·디버깅
- 난이도
- basic
- 태그
- 회귀테스트 · 재발방지
- 슬러그
- regression-test
- 상태
- published
- 정렬 순서
- 162
함께 읽기
연관 용어
컨텍스트 엔지니어링
근거 파일
영어 표기 Evidence File
AI에게 주장이나 추측 대신 실제 코드를 보게 만들기 위해 지정하는 핵심 파일, 테스트, 로그, 문서 조각을 뜻한다. 초보자가 에러 메시지만 붙여 넣으면 AI는 프로젝트 구현을 모른 채 일반론으로 답할 수 있다. 근거 파일을 함께 지정하면 AI가 현재 코드의 함수명, 데이터 구조, 렌더링 위치, 기존 테스트 의도를 확인한 뒤 수정안을 만들 수 있다. 특히 버그 수정에서는 증상 설명, 재현 경로, 실패 테스트, 관련 소스 파일을 한 세트로 묶어야 검증 가능한 답변이 나온다.
테스트·디버깅
단위 테스트
영어 표기 Unit Test
개별 함수, 메서드, 모듈이 예상대로 올바르게 동작하는지 검증하는 가장 작은 범위의 자동화된 테스트이다. '단위(unit)'는 테스트할 수 있는 가장 작은 코드 조각을 의미하며, 외부 의존성(데이터베이스, 네트워크, 파일 시스템)을 모킹(mocking)하여 해당 함수 자체의 로직만 순수하게 검증한다. 바이브 코딩에서 단위 테스트는 AI가 생성한 코드의 정확성을 보장하는 첫 번째 방어선이다. AI에게 'calculateTax 함수의 단위 테스트를 작성해줘'라고 하면 Jest, Vitest 등의 프레임워크로 다양한 입력 값과 경계 조건에 대한 테스트 코드를 생성한다. 그러나 AI가 생성한 테스트에는 주의가 필요하다: AI는 종종 정상 경로(happy path)만 테스트하고, 에지 케이스(경계 값, null, 빈 문자열, 음수 등), 에러 상황, 동시성 문제 등을 간과하는 경향이 있다. 따라서 AI가 생성한 테스트를 검토하고 에지 케이스를 추가하는 것이 인간의 중요한 역할이다. 에이전틱 엔지니어링에서는 Test Generator 에이전트가 자동으로 테스트를 생성하고, 품질 게이트에서 테스트 통과를 필수로 요구한다.
테스트·디버깅
통합 테스트
영어 표기 Integration Test
여러 모듈이나 서비스가 결합(integration)되어 함께 올바르게 동작하는지 검증하는 테스트이다. 단위 테스트가 개별 부품(함수)의 정상 동작을 확인한다면, 통합 테스트는 부품들이 조립되었을 때 전체가 기대한 대로 동작하는지 확인한다. 바이브 코딩에서 통합 테스트가 특히 중요한 이유: AI는 개별 함수 단위에서는 올바른 코드를 생성하더라도, 함수 간 데이터 전달, API와 데이터베이스 연동, 서비스 간 통신에서 미묘한 불일치를 만들어낼 수 있다. 예를 들어, 사용자 서비스가 반환하는 사용자 ID 형식(숫자 vs 문자열)과 결제 서비스가 기대하는 형식이 다른 경우, 단위 테스트는 각각 통과하지만 통합 테스트에서 실패한다. 테스트 범위 예시: API 엔드포인트 → 비즈니스 로직 → 데이터베이스 쿼리가 함께 동작하는지, 인증 미들웨어와 라우터가 올바르게 연결되는지, 외부 API 연동이 예상대로 동작하는지 등. Supertest(Node.js), pytest(Python) 등의 도구가 사용된다.