-
테스트 주도 개발테스팅 관련/Q&A 2020. 5. 23. 03:57
테스트 주도 개발 방법론(TDD)은 좋은 아이디어일까?
이 접근법은 어떠한 이익을 가져다줄까?
단점은 무엇일까?
더보기Test-Driven Development
"테스팅 → 개발", 짧은 사이클을 반복하며 진행 (실패 - 성공 - 리팩토링)
- 실패: 실패 예상 테스트 케이스 작성
- 성공: 작성된 테스트에 통과하기 위한 최소한의 코드 작성
- 리팩토링: 통과한 코드 수정 및 개선
장점
1. 객체지향적 개발: 좀 더 명확한 구조 및 기능 설계 가능. 재사용성 기반으로 테스트를 철저히 구조화시켜 작성되므로 기본적으로 객체지향성을 띄게 됨.
2. 품질 보장: 먼저 테스팅을 함으로서, 버그 방지 및 시간 축소. 기본적으로 단위 테스트를 작성하기에 문제의 지점을 쉽게 찾아낼 수 있음.
3. 방향성 유지: 요구사항에서 벗어나지 않도록 개발, 구현 기능이 요구 사항에 충족하는지 확인 가능(하나씩 테스트를 작성하며 진행하므로 어떤 기능을 개발하였고 어디까지 완료하였는지 쉽게 파악 가능)
4. 설계 수정 시간의 단축: 테스트를 작성하며 결과를 예상할 수 있기에 설계의 구조적 문제로 인한 오류 개선 속도가 한층 빨라질 것. 일찍 발견할 수록 고치는 비용이 적게 듬.
5. 유지보수의 용이성: 테스트 요소들이 사용자의 관점에서 정의되고 진행되기 때문에, 입력과 출력의 흐름이 명확해지고 추후 구조의 변경 및 소스 수정 시 구조를 쉽게 파악하고 빠른 수정이 가능해집니다. 더불어 재사용 테스트도 쉽게 가능.
6. 테스트 문서 대체: 유닛 테스팅을 자동화 시킴과 동시에 보다 정확한 테스트 근거를 산출.
단점
1. 테스트 고려하여 코드 작성시 시간이 오래 소요될 수 있음.
2. 빠른 개발 환경에서는 쉽게 도입이 어려움.
3. 기능 하나를 구현하는데 테스트 코드를 작성하여 검증 및 구현, 개선시키는 작업을 해야하므로 생산성이 떨어질 수 있음.
'테스팅 관련 > Q&A' 카테고리의 다른 글
자동화: 테스팅 프레임워크 사용 (0) 2020.05.25 테스트는 무엇일까? (0) 2020.05.24 커버리지 테스팅 (0) 2020.05.23 sw 테스팅의 어려움 (0) 2020.05.23 소프트웨어 테스팅 개념 (0) 2020.05.22