테스트란?
앱의 품질과 안정성을 높이기 위해 사전에 결함을 찾아내고 수정하기 위한 행위이다.
주로 특정 모듈(특히 컴포넌트)이 사양에 잘 동작하는지 자동화된 절차로 검증한다.
개발 시에는 테스트 코드에 대한 개발 비용이 추가로 들지만,
리팩토링이나 추가 개발 시 테스트 코드 덕분에 유지보수 비용이 줄어들어 장기적으로 도움이 된다.
테스트의 효과
좋은 설계에 대한 사고를 도와준다.
테스트 단위를 어떻게 나눌지 생각하다 보면 자연스럽게 어떤 컴포넌트에서 상태를 관리할지
어떤 컴포넌트에서 API를 호출할지 등 컴포넌트 간 의존성을 줄이기 위한 설계가 무엇인지 고민하게 된다.
이를 통해 앱의 품질을 향상시킬 수 있고 개발자의 역량 또한 높아진다.
테스트 코드를 기반으로 코드를 빠르고 안정적으로 리팩토링할 수 있다.
간단한 코드 변경이라도 다른 코드에 영향을 주어 사이드 이펙트가 발생할 수 있는데
이에 대한 검증 코드가 있다면 개발자는 자신감 있게 코드 변경 작업을 시행할 수 있다.
좋은 테스트 코드는 앱의 이해를 돕는 문서가 된다.
테스트 코드를 보면 이 코드가 어떤 의도로 작성되었는지 파악할 수 있다.
그 자체로 문서의 역할을 수행할 수 있다.