인프런 커뮤니티 질문&답변

gradler님의 프로필 이미지

작성한 질문수

TDD 개발 방법론을 활용한 React Native 앱 개발

AddToDo Component

테스트 케이스의 작성 범위

작성

·

233

1

안녕하세요 선배님

좀 어리석은 질문일수도 있습니다만,

TDD 방법론으로 코드를 작성하는 경우 모든 코드에 대해 테스트 코드가 작성되는 것이 원칙인것 같습니다.

하지만 한국에서의 전통적인 SI 프로젝트는 기간과 범위가 매우 타이트하게 정해져 있기 때문에 TDD 방법론을 원칙에 따라 적용하기에는 한계가 있는 것도 사실입니다. 

만일 모든 코드에 대한 테스트 작성이 어려운 상황이라면, 어떤 종류의 코드 또는 함수를 작성할 때는 테스트 코드를 작성하는게 좋다 라고 할만한 범위에 대한 가이드라인 같은게 있는지 궁금합니다.

답변 1

1

박동호님의 프로필 이미지
박동호
지식공유자

안녕하세요.

시작하기에 앞서...세상에 어리석은 질문은 없습니다. 아마도 이 강좌를 본 많은 분들이 모두 한번씩은 가졌던 질문일꺼라고 생각합니다.

TDD 방법론을 공부하고 실제 프로젝트에 적용하다보면 저 역시 같은 질문에 도달하게 될때가 많습니다. TDD 를 적용하려면 해당 프로젝트에 참여하는 모든 인원이 해당 내용에 대해 공유된 상태여야 한다는 점 역시 TDD 를 도입할때 많은 걸림돌이 되기도 합니다. 또 많은 프로젝트가 레거시 코드를 기반으로 진행되는 경우가 있는데, 이 경우 어디까지 TDD 를 적용해야 하는지도 역시 논쟁거리가 될 수 있습니다.

사실 이 부분에 대한 가이드라인 이라고 할 만한 내용은 없습니다만, 제 경험을 토대로 말씀을 드리겠습니다. 

프로젝트를 구성하면 여러가지 모듈로 구분이 됩니다. 이때 다른 모듈과 최대한 디커플된 모듈을 골라서 해당 모듈에 TDD 를 적용하는것이 가장 좋았습니다. 단 해당 모듈에 대해서는 전적으로 TDD 를 진행해야 합니다. 일부 함수만 테스트 코드를 작성하는것은 TDD 를 통해서 얻을 수 있는 많은 부분을 잃게 됩니다. 이렇게 모듈별로 TDD 의 적용을 진행하게되면, 차차 그 범위를 늘려갈 수도 있고, TDD 를 적용한 모듈과 그렇지 않은 모듈에 대한 비교도 할 수 있게되어, 다른 개발자들과 토론을 할때도 도움이 됩니다.

부디 제 답변이 도움이 되었기를 바랍니다. 감사합니다.

gradler님의 프로필 이미지

작성한 질문수

질문하기