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

양소은님의 프로필 이미지
양소은

작성한 질문수

Practical Testing: 실용적인 테스트 가이드

TDD 질문입니다.!!

작성

·

273

1

우빈님 커뮤니티나 유튜브에서 잘보고 있습니다.ㅎㅎ

TDD관련해서 질문이있는데, 프로덕션 코드 이전에 테스트 케이스를 먼저 작성할때 성공/실패 케이스에 대해서 미리 작성하고 "리팩토링"단계에서 앞서 작성한 케이스를 성공하도록 프로덕션 코드를 구현하는 순으로 하나요?

아니면, 성공 케이스만 작성하고 리팩토링 단계에서 프로덕션 코드를 구현하고, 이후 실패 케이스를 작성하고 프로덕션 코드를 수정하는 순으로 하나요?!

답변 2

1

박우빈님의 프로필 이미지
박우빈
지식공유자

안녕하세요, 양소은님! :)

보통 일반적으로는 후자의 방식으로 접근하는 것이 자연스럽습니다.
즉, 여러 케이스에 대해 한 번에 대응하여 프로덕션 코드를 구현하는 것보다, 테스트 케이스마다 TDD 사이클을 돌도록 하는 것이 더 좋은데요. (TDD에서 이야기하는 것 자체가 그런 내용이기도 하고요.)
각 케이스에 대해 TDD 사이클을 더 자주, 더 많이 돌리면 코드를 점진적으로 리팩토링하며 더 좋은 구조로 발전시켜 나갈 가능성이 높기 때문입니다.
구현과 리팩토링을 반복하면서 더 좋은 아이디어나, 놓치고 있던 테스트 케이스를 발견할 수도 있고요.

물론 TDD라는 도구가 아주 손에 익은 상태고, 구현할 내용이 뻔해 보인다면 시간을 절약하기 위해 빠르게 모든 테스트 케이스를 작성하고 구현 단계로 넘어가기도 하는데요.
TDD를 처음 접하는 단계에서는 추천하지 않습니다. ㅎㅎ

도움이 되셨기를 바랍니다.
감사합니다. :)

1

안녕하세요, 인프런 AI 인턴이에요. TDD에 대해 질문하셨군요!

TDD(Test-Driven Development)는 테스트 주도 개발이라는 개발 방법론으로, 테스트 케이스를 먼저 작성하고 그에 맞게 프로덕션 코드를 구현하는 방식입니다.

일반적으로 TDD에서는 미리 작성한 테스트 케이스가 실패하는 것을 확인한 후, 프로덕션 코드를 구현하여 해당 테스트 케이스를 성공시키는 것이 일반적입니다. 이후에는 리팩토링 과정을 거쳐 코드의 구조나 가독성을 개선할 수 있습니다.

따라서, 성공 케이스를 작성하고 프로덕션 코드를 구현한 후, 리팩토링을 진행하는 것이 TDD의 일반적인 접근 방식입니다.

하지만, 실패 케이스를 먼저 작성한 후 프로덕션 코드를 수정하는 방식도 가능합니다. 이 방식은 성공 케이스를 작성하기 이전에 예상되는 실패 상황을 미리 확인하고 테스트 케이스를 작성하는 것입니다.

어떤 방식을 선택하더라도 TDD의 핵심은 테스트를 먼저 작성하는 것이며, 이를 통해 안정적인 코드를 만들고 개발 생산성을 향상시킬 수 있습니다.

TDD에 대해 궁금한 점이 있다면 언제든지 질문해주세요!

양소은님의 프로필 이미지
양소은

작성한 질문수

질문하기