용어집 · 테스트 기초
새니티 테스트
영어: Sanity testing
다른 이름: sanity test, 새너티 테스트, 정상성 테스트, sanity check
정의
버그 수정이나 작은 변경 후, 해당 기능이 동작하고 주변 영역도 정상인지 빠르게 집중 확인하는 테스트입니다.
새니티 테스트(sanity testing)는 특정 변경이 제대로 동작하는지, 그리고 그 주변 영역이 여전히 상식적으로 동작하는지를 빠르고 집중적으로 확인하는 테스트입니다. 이미 어느 정도 안정된 빌드에서 버그 수정이나 사소한 변경이 있은 뒤에 수행합니다. 새니티 체크가 실패하면 전체 회귀 테스트에 시간을 쓰지 않고 빌드를 개발 쪽으로 되돌립니다.
예시
이메일 주소에 플러스 기호가 들어 있으면(ana+test@example.com) “비밀번호 찾기” 메일이 발송되지 않는다는 버그 리포트가 들어왔습니다. 개발자가 수정 사항을 배포합니다. 새니티 체크는 다음과 같습니다.
ana+test@example.com으로 재설정을 요청하고 메일이 도착하는지 확인합니다.- 일반 주소로 재설정을 요청하고 여전히 정상 동작하는지 확인합니다.
- 재설정 링크를 열어 새 비밀번호가 받아들여지는지 확인합니다.
이것으로 끝입니다. 여기서 장바구니나 리포트 모듈을 확인하는 사람은 없습니다. 이 확인을 통과하면 빌드는 회귀 테스트 단계로 넘어갑니다.
새니티 테스트와 스모크 테스트
| 새니티 테스트 | 스모크 테스트 | |
|---|---|---|
| 범위 | 좁고 어느 정도 깊게, 기능 하나나 수정 하나 | 넓고 얕게, 애플리케이션 전체 |
| 계기 | 특정 수정이나 작은 변경 | 새 빌드마다 |
| 빌드 상태 | 이미 꽤 안정적 | 알 수 없음, 망가져 있을 수도 있음 |
| 형태 | 스크립트 없이 테스터가 직접 하는 경우가 많음 | 보통 스크립트로 작성된 자동화 스위트 |
새니티 테스트를 변경된 영역에 집중한 회귀 테스트의 부분집합으로 설명하는 팀도 있습니다. 합리적인 이해 방식입니다.
용어에 관한 메모
정의는 회사와 교재마다 다르며, “스모크”와 “새니티”를 같은 의미로 쓰는 팀도 있습니다. 면접에서는 위의 구분을 설명한 뒤, 실무에서 중요한 것은 각 확인이 무엇을 커버하고 언제 실행되는지 팀이 합의하는 것이라고 덧붙이면 됩니다. 한 교재의 정의만 고집하기보다 정확하게 설명하면서 모호함을 인정하는 편이 더 좋은 인상을 줍니다.