본문 바로가기
[Effective Unit Testing] Chap9. 테스트 속도 개선 [Effective Unit Testing] Chap9. 테스트 속도 개선 -좋은 단위 테스트는 수행 시간도 짧다.그러나 테스트 스위트의 덩치가 커질수록 피드백 주기가 길어지는 건 피할 수 없다. -테스트 속도 개선과 빌드 속도 개선 두 가지 측면을 볼 수 있다.테스트 속도 개선은 테스트를 빠르게 해줄 실마리를 찾기 위해 코드를 파해치는 작업이다.빌드 속도 개선과 관련해서는, 빌드 스크립트가 테스트를 실행하는 방식을 봐야 한다. 구체적으로는 고성능 컴퓨터나 다수 컴퓨터를 이용한 병렬 실행을 통해 빌드 시간 단축을 볼 수 있다. 9.1. 속도 개선을 위해서 9.1.1. 더 빠르게! -테스트가 빨리 끝나야 하는 이유는 피드백이 늦어질수록 피해가 더 커지기 때문이다.좁게 보면 개발자는 작업을 마무리하지 못하고.. 2019. 3. 19.
[Effective Unit Testing] Chap8. 제 2의 JVM 언어를 활용한 테스트 작성 [Effective Unit Testing] Chap8. 제 2의 JVM 언어를 활용한 테스트 작성 8.1. JVM 언어 혼용의 조건 - 제 2의 JVM 언어의 역사는 파이썬 언어의 JVM 버전인 자이썬(Jython)으로부터 시작되었다. 자이썬은 사용자를 충분히 확보하지 못하여 결국 2005년에 실질적인 개발이 중단되었지만, 또 다른 JVM 언어들이 등장하는 계기가 되어주었다. - 2001년에는 자바판 루비인 JRuby, 2003년에는 Groovy 가 발표되었다. 2003년은 Scalar 가 나온 해이기도 하다. 2007년 Lisp 를 변형하여 만든 Closure 역시 강력한 JVM 언어이다. 8.1.1. 일반적인 이점 - JVM non-java 언어의 장점은.. 자질구레한 문법이 적어 핵심 로직이 잘 .. 2019. 3. 18.
[Effective unit Testing] Chap3. 테스트 더블 [Effective unit Testing] Chap3. 테스트 더블 -스텁(stub)과 더미(dummy)가 등장한 가장 큰 이유는 제품 코드가 온전히 준비되기 전까지 사용할 대용품이 필요했기 때문이다.대용품이 있다면 주변 모듈을 다 갖추지 못했더라도 코드 일부만을 따로 컴파일하고 실행해볼 수 있었다. -오늘날에는 쓰임새가 훨씬 다양해졌다.종속 모듈 없이 컴파일하고 실행하려는 애초의 용도는 그 비중이 많이 줄었다.대신 테스트 추종 프로그래머에 의해 다양한 테스트 전용 장치가 만들어지면서 요즘은 테스트 대상 코드를 격리하고, 속도를 개선하고, 예측 불가능한 요소를 제어하고, 특수한 상황을 시뮬레이션하고, 감춰진 정보를 얻어내는 등의 용도로까지 쓰이고 있다.목적에 따라 비슷한 듯하면서도 다른 객체를 사용하는.. 2019. 2. 28.
[Effective Unit Testing] Chap2. 좋은 테스트란? [Effective Unit Testing] Chap2. 좋은 테스트란? -좋은 테스트의 고려 사항은 아래와 같다. 테스트 코드의 가독성과 유지보수성 프로젝트 안에서, 그리고 소스 파일 안에서 코드는 적절히 구조화되어 있는가? 테스트가 무엇을 검사하는가? 테스트는 안정적이고 반복 가능한가? 테스트가 테스트 더블을 잘 활용하는가? ... 2.1. 읽기 쉬운 코드가 유지보수도 쉽다.-자동화된 테스트는 결함을 효과적으로 막아주지만, 테스트 역시 코드인지라 가독성 문제에서 벗어날 수는 없다.읽기 어려운 코드는 검증하기도 어렵고, 결과적으로 테스트를 조금만 작성하는 사태로까지 이어진다.또 그렇게 작성된 테스트는 우리가 생각하는 좋은 테스트와는 거리가 멀다.제품의 구조와 API 가 테스트를 고려하지 않고 만들어졌다.. 2019. 2. 27.
반응형