-
[ 소프트웨어 공학 ] TDD 테스트 주도 개발공부 !/Computer Science 2022. 6. 3. 15:45반응형
TDD
TDD란 Test Driven Development 의 축약으로 테스트 주도 개발이다
짧은 개발 사이클을 반복하는 소프트웨어 개발 프로세스 중 하나로 개발자는 먼저 요구사항을 검증하는
자동화된 테스트 케이스를 작성하고 작성한 테스트를 통과하기 위한 최소한의 코드를 생성한다테스트 코드를 먼저 작성하게 되면 깔끔한 코드를 작성할 수 있고 장기적으로 개발 비용을 절감할 수 있다
TDD 방법
테스트 주도 개발의 순서는
- 실패하는 작은 단위 테스트를 작성한다
- 빨리 테스트를 통과하기 위한 프로덕션 코드를 작성한다
- 그 후 테스트 코드를 작성한다 ( 실패테스트가 없을 경우 성공 테스트를 작성한다 )
- 새로운 테스트를 통과하기 위해 프로덕션 코드를 추가하거나 수정한다
- 1-4 단계를 반복하며 실패 / 성공의 모든 테스트 케이스를 작성한다
- 개발된 코드들에 대해 모든 중복을 제거하며 리팩토링한다
TDD의 장단점
장점
- 객체 지향적인 코드 개발 : 의존성과 종속성이 낮은 모듈로 조합된 소프트웨어 개발이 가능하기 때문에
- 설계 수정시간의 단축 : 최초 설계안을 만족하기 때문에
- 유지보수의 용이성 : 기본 단위 테스트 기반의 코드를 작성하기 때문에 문제 지점 쉽게 발견
- 테스트 문서의 대체 가능 : 테스팅을 통해 정의서 작성
단점
- 사전준비 기간 : 사전 지식 습득이나 개발 환경을 구축해야하기 때문에
- 생산성 저하 : 단발성 개발의 경우 개발 기간이 타이트하게 잡히는 경우가 다수이기 때문에 비효율적
반응형'공부 ! > Computer Science' 카테고리의 다른 글
[ 운영체제 ] 동기화 객체의 종류와 특징 Synchronization Object (0) 2022.06.16 [ 운영체제 ] 동기와 비동기 Synchronous and Asynchronous (0) 2022.06.15 [ 소프트웨어 공학 ] 클린코드와 리팩토링 (0) 2022.06.02 [ 소프트웨어 공학] 개발 단계에 따른 테스트 & 블랙박스테스트 / 화이트박스 테스트 (0) 2022.06.02 [Design Pattern] Factory Method (0) 2022.05.26