본문 바로가기
성공지식백과 로고성공지식백과
GLOSSARY

단위 테스트 (Unit Testing)

중급바이브 코딩

이 페이지는 바이브 코딩 문맥에서 자주 쓰이는 단위 테스트 (Unit Testing)의 뜻과 쓰임을 중급 난이도 기준으로 정리한 AI 용어사전 항목입니다. 정의와 맥락, 관련 용어 6개 순서로 묶었으니, 아래 설명을 먼저 읽고 연결된 개념과 글까지 이어서 보면 이해가 빨라집니다.

단위 테스트(Unit Testing)는 함수나 작은 소프트웨어 구성 요소를 대상으로 정해진 조건에서 기대한 동작이 나오는지 확인하는 테스트입니다. 입력과 초기 상태를 준비하고 코드를 실행한 뒤 반환값이나 상태 변화를 검사합니다. 외부 시스템의 영향을 줄여 실패한 동작을 좁혀 살펴보는 데 쓰입니다.

입력과 기대 동작의 대응

단위의 크기는 코드 줄 수로 정해지지 않습니다. 함수 하나가 대상이 되기도 하고 하나의 책임을 수행하는 작은 구성 요소가 대상이 되기도 합니다. 마이크로소프트의 .NET 테스트 개요는 개별 구성 요소나 메서드를 단위로 설명하며 데이터베이스·파일·네트워크 연동을 별도 관심사로 구분합니다. 테스트할 동작의 시작점과 관찰할 결과가 명확할수록 실패 원인을 찾을 범위가 좁아집니다.

배송비 계산 함수에는 주문 금액과 배송 지역을 입력하고 예상 배송비를 결과로 둡니다. 무료 배송 기준 바로 아래, 기준과 같은 값, 잘못된 지역 코드는 서로 다른 조건입니다. 정상 입력 하나만 검사하면 경계에서 비교 연산자를 잘못 쓴 오류가 남을 수 있습니다. 함수 시그니처에 드러난 입력과 반환값을 출발점으로 삼되, 요구사항이 허용하는 값의 범위를 함께 읽습니다.

테스트는 준비, 실행, 확인의 흐름으로 구성합니다. 계정 잔액을 준비하고 출금을 실행했다면 남은 잔액과 거부 조건을 확인합니다. 코드를 호출했다는 사실만으로는 기대 동작을 판정할 수 없습니다. 실패 메시지에 입력 조건과 기대 결과가 드러나면 디버깅할 때 재현 조건을 다시 추측하는 일을 줄입니다.

외부 의존성과 테스트 경계

현재 시각이나 외부 API 응답에 결과가 좌우되면 같은 코드도 실행할 때마다 다른 결과를 낼 수 있습니다. 마이크로소프트의 단위 테스트 지침은 격리성과 반복 가능성을 좋은 테스트의 특성으로 제시합니다. 시간과 응답을 테스트에서 지정할 수 있게 분리하면 만료 직전이나 오류 응답 같은 조건을 의도적으로 검사할 수 있습니다.

외부 의존성을 대신하는 테스트 대역은 정해진 값을 반환하거나 호출을 기록합니다. 이때 확인하는 범위는 그 대역을 사용하는 코드의 반응입니다. 대역이 성공을 반환하도록 설정한 테스트로 실제 서버의 인증 설정이나 데이터베이스 연결까지 확인했다고 판단하면 범위가 어긋납니다. 실제 연결의 일치 여부는 해당 구성 요소를 함께 실행하는 검사에서 다룹니다.

도우미 함수가 호출됐다는 이유만으로 단위 테스트라는 이름을 버리지는 않습니다. 하나의 동작을 어디까지 묶고 무엇을 대역으로 바꾸는지는 코드 구조와 팀의 기준에 따라 달라집니다. 파일 이름이나 도구 이름에만 기대기보다 실행에 포함된 구성 요소, 외부 자원 사용 여부, 확인할 결과를 적으면 테스트가 지지하는 주장이 명확해집니다.

수정 뒤에도 유효한 검사 기준

리팩터링으로 내부 함수를 나눠도 외부에서 약속한 결과가 같다면 그 결과를 확인하는 테스트는 계속 쓸 수 있습니다. 반대로 내부 함수의 호출 순서까지 고정하면 사용자가 보는 동작이 같아도 테스트를 고쳐야 할 수 있습니다. 호출 순서 자체가 요구사항인 경우와 구현 과정에서 우연히 생긴 순서는 구분해서 검사합니다.

코드 커버리지는 테스트 중 실행한 코드의 범위를 보여 주는 정보입니다. 마이크로소프트의 품질·커버리지 설명은 높은 수치만으로 코드 품질을 판단할 수 없다고 설명합니다. 계산 함수를 실행해도 결과를 잘못 비교하면 오류를 놓칩니다. 실행 여부와 기대값의 정확성은 따로 살펴볼 대상입니다.

변경한 동작의 테스트를 자주 실행하고 빌드 과정에서 기존 검사도 함께 돌리면 이전 동작의 훼손을 발견하는 데 도움이 됩니다. 실패했을 때는 제품 코드의 결함, 바뀐 요구사항, 잘못된 테스트 가정을 나눠 확인합니다. 입력 조건을 명시한 테스트 이름과 작은 검사 범위는 이 판단에 필요한 단서를 남깁니다.

RELATED TERMS

관련 용어

단위 테스트 (Unit Testing)와 함께 자주 언급되는 개념들입니다. 비슷한 말처럼 보여도 역할과 쓰임은 다를 수 있습니다.