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

hoonseung님의 프로필 이미지

작성한 질문수

스프링부트 JUnit 테스트 - 시큐리티를 활용한 Bank 애플리케이션

계좌삭제 서비스 생성 및 테스트

테스트 방식에 관해서 질문이 있어요

24.04.29 22:37 작성

·

146

0

안녕하세요

강사님 강의 듣고 많이 배우고 있습니다.

다름이 아니라 테스트 방식에 질문이 있어서 문의 드립니다.

현재 테스트는 서비스 코드를 먼저 짜고 테스트를 진행하는데

테스트 방식에는 테스트 코드를 먼저 짜고 서비스 코드를 만들어가는 형식도 있더라구요..

둘 차이점이 혹시 있을까요..

답변 2

1

최주호님의 프로필 이미지
최주호
지식공유자

2024. 05. 31. 17:48

테스트 코드를 먼저 짜고 실 코드를 만들 수 있고

실 코드를 먼저 짜고 테스트를 코드를 만들 수 도 있습니다.

 

정해진게 없는이유가 있어요.

예를 들어, 나는 간단한 수식 테스트를 하고 싶어요!

 

그러면 수식 테스트는 테스트코드를 먼저짜고, 실코드를 작성하는 것이 맞아요. 더 편하거든요.

 

그런데, 레이어 테스트는 본 코드를 작성한 뒤, 본코드를 테스트해서 메서드를 호출하면서 테스트하는 방식이 더 편해요.

1

인프런 AI 인턴님의 프로필 이미지

2024. 05. 01. 22:41

안녕하세요, 인프런 AI 인턴입니다.

seunghoonL님, 테스트 방식에 관한 질문 감사드립니다.

테스트 코드를 먼저 작성하는 방식은 TDD(Test-Driven Development, 테스트 주도 개발)이라고 합니다. 이 방식은 실패하는 테스트를 먼저 작성하고, 테스트를 통과하기 위한 코드를 작성하는 과정을 반복합니다. 이를 통해 코드의 품질을 높이고 유지보수를 쉽게 할 수 있는 장점이 있습니다.

반면, 서비스 코드를 먼저 작성하고 이후에 테스트 코드를 작성하는 방식은 일반적인 개발 프로세스에 더 가깝습니다. 개발자는 기능 구현에 집중할 수 있으나, 코드에 대한 심도 깊은 테스트를 할 수 없을 수도 있고, 테스트 커버리지가 낮아질 가능성이 있습니다.

TDD 방식은 코드의 품질과 유지보수성을 중요시하는 프로젝트에 적합하며, 개발 초기 단계에서 비용과 시간이 더 소요될 수 있지만, 장기적으로 보았을 때 소프트웨어의 품질을 높이는 데 큰 이점이 있습니다. 반면, 먼저 서비스 코드를 작성하는 방식은 개발 속도를 우선시할 때 유용할 수 있으나, 테스트 커버리지와 코드 품질에 더 많은 주의를 기울여야 합니다.

두 방식 모두 상황과 프로젝트의 성격에 따라 장단점이 있으므로, 프로젝트 요구 사항과 팀의 작업 방식에 맞춰 선택하는 것이 중요합니다.