리팩토링을 제대로 하려면 실수를 잡아주는 견고한 테스트 스위트가 뒷받침돼야 함.
테스트 작성에 시간이 걸리지만 결국 좋은 테스트를 작성하면 개발 효율을 높여준다.
4.1 자가 테스트 코드의 가치
테스트 케이스 작성을 통해 버그를 찾아낼 수 있음.
버그는 고치는 것보다 찾아내는 것이 어려움.
“테스트 스위츠는 강력한 버그 검출 도구로, 버그를 찾는 데 걸리는 시간을 대폭 줄여준다”
저자는 반복적 개발 방법론을 경험할 당시 테스트를 반복 주기마다 포함시켜 작업했다고 한다. 이때 경험하고 누렸던 것중 버그 검출의 효과를 보았고 버그에 대해서는 테스트 코드로 신경을 덜 쓸수 있다고 자신의 경험을 소개하였다.
또한 저자는 개발하기 전에 테스트 케이스부터 작성한다고 한다. 얼핏 순서가 뒤바뀐듯 들리지만 테스트를 작성하면 기능 추가를 위해 무엇이 필요한지 집중하게 되고 인터페이스에 집중하게 된다는 장점이 있다 말한다.
켄트 벡은 이처럼 테스트부터 작성하는 습관을 바탕으로 테스트 주도 개발(TDD)란 기법을 창시했다. TDD에서는 테스트를 작성하고, 이 테스트를 통과하게끔 코드를 작성한 후, 결과 코드를 최대한 깔끔하게 리팩토링하는 과정을 짧은 주기로 반복한다. 이러한 “테스트-코딩-리팩토링” 과정을 여러차례 진행하기 때문에 코드를 대단히 생산적이면서도 차분하게 작성할 수 있다.
* 이 후의 테스트 예제 코드는 생략
'Refactoring' 카테고리의 다른 글
[ 리팩토링 by 마틴 파울러 ] Chapter08. 기능 이동 (0) | 2021.07.22 |
---|---|
[ 리팩토링 by 마틴 파울러 ] Chapter07. 캡슐화 (0) | 2021.07.21 |
[ 리팩토링 by 마틴 파울러 ] Chapter06. 기본적인 리팩터링 (0) | 2021.07.21 |
[ 리팩토링 by 마틴 파울러 ] Chapter03. 코드에서 나는 악취 (0) | 2021.07.20 |
[ 리팩토링 by 마틴 파울러 ] Chapter02. 리팩터링 원칙 (0) | 2021.07.20 |