Computer Science 호기심

테스트 주도 개발 - TDD(Test Driven Development)이란?

ash silver 2023. 4. 16. 00:44

http://www.incodom.kr/%ED%85%8C%EC%8A%A4%ED%8A%B8_%EC%A3%BC%EB%8F%84_%EA%B0%9C%EB%B0%9C

 

생물정보 전문위키, 인코덤

Wikipedia for Bioinformatics

www.incodom.kr

테스트 주도 개발 : 선 테스트 후 개발 방식 프로그래밍 방법

TDD 개발 방법

1. 테스트 케이스 작성

2. 테스트 케이스 통과 코드 작성

3. 리팩토링

 

TDD 장점

1. 객체 지향 코드 개발 -> 객체 지향 프로그래밍의 특징 발생!

(객체지향프로그래밍 특징 -> 추상화, 캡슐화, 상속성, 다형성)

2. 수정 시간 단축

-> 테스트 케이스 관련 코드로 어디서 오류가 발생했는지, 어떤 오류가 발생했는지 알 수 있기 때문

3. 리팩토링/유지보수 용이

 

TDD 단점

1. 사전 준비 기간 ↑

-> 수정 시간이 단축되는 만큼 사전 준비 기간이 오래 걸림

2. 생산성 저하

-> 눈으로 보이는 케이스도 코드로 작성해야 함

 

TDD가 필요할 때

1. 나에 대한 불확실성

-> 내가 해당 코드에 대한 경험을 처음 해보는 경우!

2. 고객 요구 조건 바뀔 가능성 ↑

-> 변경사항이 많을 것 같을 때

3. 내가 퇴사할 때!

-> 내가 작성한 코드를 누가 유지보수할지 모를 때