견고한 소프트웨어 개발을 위해서 테스트를 돌리는 것은 아주 중요합니다. 소스를 수정하고 어딘가 잘못되었다는 것을 빠르게 알아차릴수록 발생한 버그를 더욱 쉽게 고칠 수 있습니다. 이를 위해서는 테스트 시간이 오래 걸리지 않아야 합니다. 테스트에 걸리는 시간이 짧으면 짧을수록 개발자의 생산성은 올라갑니다.
회사의 사업이 빠르게 성장하면서 피플펀드의 시스템에서 지원해야 하는 기능도 많아졌습니다. 이에 자연스럽게 테스트 케이스의 개수도 크게 증가하며 전체 테스트 케이스에 엄청난 시간이 걸리게 되었습니다. 개발자들의 생산성이 크게 저하되었습니다. 코드를 긴급하게 수정 및 배포해야 하는 경우 모든 테스트를 돌리지도 못하고 운영 서버에 배포하기도 하였습니다. 저는 이런 상황을 이대로 방치할 수는 없었습니다.
온갖 수단을 사용하여 테스트에 걸리는 시간을 줄였습니다. 테스트 옵션을 수정하는 것에서 그치지 않았습니다. 심지어는 Django의 소스 코드를 수정하기도 하였습니다. 그 결과, 약 40분에서 50분이 걸리던 테스트를 3분 30초 만에 끝내도록 최적화 할 수 있었습니다. 이 과정에서 사용한 여러 가지 테스트 시간을 줄이는 데 도움이 될 만한 노하우를 PyCon에서 공유하고자 합니다.