단위 테스트
- 단위 테스트(Unit Test)는 소프트웨어의 가장 작은 구성 요소인 개별 함수나 메서드가 의도한 대로 작동하는지를 검증하는 테스트입니다.
- 주로 개발 단계에서 수행되며, 코드의 품질을 높이는 데 도움을 줍니다.
버그 발견 시간이 늦어짐에 따라 비용이 기하급수적으로 커집니다.
Development : 개발
Unit Tests (단위 테스트) : 개발자 테스트
QA Testing :
- 블랙박스 테스팅
- 주로 QA 팀이 Production 환경과 유사한 환경(Stage)에서 테스팅
Production : 실 서비스 운영 환경
- 따라서 테스트 코드를 작성한다면 프로그램의 버그를 사전에 발견하여 기하급수적인 비용의 증가가능성을 사전에 방지할 수 있습니다.
- 개발자는 단위 테스트를 작성하여 프로그램을 테스트 할 수 있습니다.
- 단위 테스트는 작은 단위로 쪼개서 각 단위가 정확하게 동작하는지를 검사하는 테스트 기법입니다.
- 단위 테스트는 빠르게 작성할 수 있고 문제 발생 시 어느 부분이 잘 못 되었는지를 빠르고 정확하게 확인할 수 있다는 장점이 있습니다.
장점
- 버그 조기 발견 : 코드 변경 시 즉시 테스트하여 문제를 조기에 발견할 수 있습니다.
- 코드 품질 향상 : 코드를 더 잘 설계하고 모듈화하게 됩니다.
- 리팩토링 안전성 : 테스트가 있으면 코드 리팩토링 시 안전성을 보장할 수 있습니다.
- 문서화 역할 : 테스트 코드가 실제 사용 사례를 문서화하여 이해도를 높입니다.
- 신속한 문제 확인 : 단위 테스트는 작은 단위로 쪼개져 있어, 문제가 발생했을 때 어느 부분에서 오류가 발생했는지를 빠르고 정확하게 파악할 수 있습니다.
- 작성 용이 : 빠르게 작성할 수 있어, 개발 주기에 쉽게 통합할 수 있습니다.
단점
- 초기 개발 비용 : 테스트 작성에 시간과 노력이 필요할 수 있습니다.
- 유지보수 부담 : 테스트 코드가 많아질 경우 관리하기 어려울 수 있습니다.
- 허위 안전성 : 테스트가 모든 경로를 커버하지 못할 경우 잘못된 안전성을 느낄 수 있습니다.