더북(TheBook)

테스트가 완전 자동화되지 않으면 테스트를 실행하는 것이 점점 귀찮아지고, 이는 결국 다른 팀원들에게도 전염병처럼 퍼지게 된다.
테스트 환경 설정에 많은 시간을 쓰고 싶어 하는 사람은 없다. 테스트 환경 설정 작업도 중요하지만 새로운 기능 개발처럼 더 중요한 일도 많기 때문이다. 그렇지만 아이러니하게도 프로젝트의 현재 상태(버그는 없는지, 기능은 제대로 동작하는지 등)를 알지 못하면 더 중요한 작업을 할 수가 없다.

좋은 테스트는 수작업으로 설정하거나 실행할 필요 없이 바로 실행할 수 있어야 한다.

기본적인 테스트를 몇 분 내로 작성할 수 있는가?

통합 테스트를 구별하는 가장 쉬운 방법은 실행하는 데만 시간이 오래 걸리는 것이 아니라 테스트를 준비하고 실행하는 데도 많은 시간이 걸린다는 것이다. 준비 과정에서 시간이 많이 걸리는 이유는 내외부 의존성( 데이터베이스)을 고려해야 하기 때문이다. 테스트를 자동화하지 않을 때 의존성은 문제가 덜 된다. 대신에 테스트를 자동화했을 때 얻을 수 있는 이점은 포기해야 한다. 테스트를 작성하기가 까다로울수록 테스트 작성에 겁을 먹거나 큰 문제에만 신경 쓰게 될 가능성은 커진다. 단위 테스트의 강력한 장점은 작은 부분까지도 테스트할 수 있다는 것이다. 테스트를 작성하다 보면 버그가 없을 것이라고 여긴 간단한 코드에서조차 많은 버그를 발견하고는 놀란다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.