개발관련 도서/테스트 주도 개발 시작하기

2. TDD(TestDrivenDevelopment) 시작

prden 2021. 7. 14. 20:00

1. 암호 검사기능 구현하기

TDD는 처음에 테스트 코드를 작성하테스트 코드를 통과시키기 위한 메인 클래스를 작성하고 그 클래스를 중간중간에 리팩터링 한 뒤 다시 한번 테스트하는 과정을 거친다. 리팩터링을 하는 모습을 보면서 왜 코딩 테스트를 기업에서 필수적으로 채용과정에 포함시키는지 조금은 알 것 같다. 인터넷 상에서 누군가 코딩 테스트는 단순 문제풀이에 불과하다고 비판하는 모습을 본 적이 있다.  그런데 계속 코딩을 하고 리팩터링을 하면서 알고리즘 문제 푸는 것이 코딩의 근본 바탕인 것 같다는 생각이 들었다. 

 

2. 테스트 코드 작성 순서

 1) 초반에 쉬운 경우에서 어려운 경우로 진행

 초반부터 다양한 조합을 검사하는 복잡한 상황을 테스트로 추가하면 해당 테스트를 통과시키기 위해 한 번에 구현해야 할 코드가 많아진다.  버그 없이 한 번에 완벽한 코드를 개발할 정도로 너의 머리가 좋은지 생각해봐라! 그러면 쉬운 것부터 차근차근 넓혀가며 구현해야 하는 필연적 이유를 알게 될 것이다. 

 

2) 초반에 예외적인 경우에서 정상인 경우로 진행 

초반에 예외 상황을 많이 테스트하면 많은 코드를 완성한 후에 예외 상황을 반영할 때보다 코드 구조가 덜 바뀐다. 

 

3) 구현시

 a. 정해진 값을 리턴 -> 값 비교를 이용해 정해진 값 리턴 -> 다양한 테스트를 추가하면서 구현을 일반화