기술 개발

TDD(Test Driven Development) 고찰

겨울꿈개발자 2021. 3. 23. 19:07

실제로 해당 방법을 사용해본적은 없지만, 앞으로 사용해보기 위해서 틈틈히 검색하면서 찾아봤습니다.

 

제가 이해한 내용들은 다음과 같습니다.

1. Test code 작성

2. 해당 Test code를 실패하는 경우가 발생할 경우에, 이를 해결하는 간단한 Product code 작성

3. Test code, Product code 리팩토링 진행 후 다시 1번 과정으로 진행

 

특징은 실제 프로그램 코드(=Product code) 뿐만 아니라 테스트 코드(=Test code)도 같이 작성한다는 점입니다.

그리고 프로그램 코드는 무조건 테스트 코드가 실패하는 경우에 대해서만 이를 보완하도록 간단하게 보완을 하는 방식입니다.

 

이를 통해서 과도하게 기능을 추가하는 것을 방지할 수 있고, 테스트 코드를 통해 다른 사람이 해당 프로그램의 기능을 이해할 수 있다고 합니다. 또한 코드 변경을 해도 기존에 작성한 테스트 코드를 통해 버그를 잡을 수 있고, 어느 정도 신뢰도를 얻을 수 있기 때문에 유연한 프로그래밍이 가능해 보입니다.

 

리팩토링에 대해서는... 중복되는 코드 및 상수 제거, else 구문 사용을 최소화하기, 하나의 메소드에는 2개 이상의 탭을 허용하지 않는다, 하나의 메소드는 하나의 기능만 정의하도록 한다... 등등 많이 연습해봐야 할 거 같습니다.

 

TDD를 위해 Java 같은 경우에는 Juint 모듈을 사용한다고 하던데, 실제로 사용은 안해봐서 어떤 것인지는 모르겠습니다. 그 외에 C, Python, React 등등에 대해 TDD와 같이 검색하면 여러 글들이 있는 것으로 보이니, 추후 프로젝트부터는 TDD를 진행해봐야겠습니다.