TDD
Test-deriven development (테스트 주도 개발)
1. 개념
개발(코드 작성)전 테스트 코드를 먼저 작성하는 개발 방식 또는 개발 방법론중 하나
2. TDD하는 방법
- 코드를 작성하기 전에 특정한 기능에 한해서 기능을 조금 더 세분화 해서 딱 하나의 케이스의 대해서 테스트를 코드를 먼저 작성한다.
- 테스트 수행하는데 당연히 실패함 왜냐 ? 아직 기능을 구현하지 않았기 때문이다.
- 따라서 이 실패한 테스트가 성공할 정도의 조금의 양만 하는 코드를 작성해서 테스트를 다시 수행해서 성공하도록 만든다.
- 이렇게 하나의 테스트가 완성이되면 다음 기능으로넘어가서 그 기능에 해당하는 테스트를 작성하고 테스트를 수행해서 실패하면 이 실패한 코드가 성공할 수 있을 만큼의 코드를 작성해서 다시 테스트를 수행해서 성공하면 다시 그 다음 테스트를 작성하고 이렇게 테스트 조금 작성하고 기능 조금 구현하고 다시 테스트 작성하고 기능 조금 작성하고 조금 더 구현하고 이런식으로 개발해 나가는 것을 TDD라고 한다. 이렇게 TDD 방법을 이용해서 모든 기능이 구현이 되었다면 그동안 작성해왔던 모든 테스트들이 성공적으로 통과가 된다.
- 그럼 여기까지는 기능을 구현하는 데 집중해서 빠르게 코드를 작성했다면 이제 우리가 작성해둔 테스트들을 기반으로 조금 더 자신감 있게 우리 코드의 퀄리티를 향상시키고 아키텍처를 개선하고 리팩토링을 해나갈 수 있다.
이게 바로 TDD이다.
3. 왜 많은 사람들이 TDD / TDD 하는 것일까?
바로 요구 사항에 대한 철저한 분석과 분명한 이해가 필요하기 때문이다. 이러한 것이 있는 상태에서 설계자의 관점에서 코드를 작성해나갈 수 있기 때문이다.
그래서 TDD를 이용하면 우리가 원하는 모든 요구사항 목표에 대해서 점검할 수 있고 사용자 입장에서 코드를 작성할 수 있다.
테스트 코드에서 "이런식으로 우리 코드를 사용하면 되겠구나"라고 생각할 수 있는 데 조금 더 개발자스럽게 이야기 해보자면 구현보다는 인터페이스에 조금 더 집중해서 코드를 작성해 나갈 수 있다.
이렇게 작성하면 당연히 코드의 퀄리티가 향상이 되고 시스템전반적인 설계 향상할 수 있다.
우리가 Repository에 merge하기 전에 내가 작성한 코드에 버그는 없는지 기존에 존재하는 기능들이 내 코드에 의해서 영향을 받지는 않았는지 이런 것들을 검증하는 테스트를 꼭 포함해야한다.
테스트가 없는 코드를 mian Repository에 merge하거나 사용자에게 배포했을 때 그 때 발생할 수 있는 위험부담은 결국내가 짊어지고 가야된다.
source : 테스트 코드와 TDD
728x90
'정보 > The 공부' 카테고리의 다른 글
도메인 로직은 무엇일까? (0) | 2022.11.11 |
---|---|
클린코드 연습하기 ( 함수 분리 / 클래스[객체]분리) (0) | 2022.11.11 |
[JS - 심화] Differences whith Throw and Return (0) | 2022.11.05 |
[고찰] 상처 받지 않으면서 피드백 주고 받기 (1) | 2022.11.04 |
[클린코드] 어떻게 의미 있는 이름을 지을 수 있을까? (0) | 2022.10.31 |