TDD 테스트 주도 개발
Test Driven Development
- 반복 테스트를 이용한 소프트웨어 방법론
- 작은 단위의 테스트 케이스를 작성하고 이를 통과하는 코드를 추가하는 단계를 반복하여 구현
- 짧은 개발 주기의 반복에 의존하는 개발 프로세스
보통 개발 방식은 ‘요구사항 분석 → 설계 → 개발 → 테스트 → 배포이다.
테스트 코드를 작성한 뒤에 실제 코드를 작성한다. 디자인(설계) 단계에서 프로그래밍 목적을 반드시 미리 정의해야만 하고, 무엇보다 테스트해야 할지 미리 정의(테스트 케이스 작성)해야만 한다. 테스트 코드를 작성하는 도중 발생하는 예외 사항(버그 및 수정사항)은 테스트 케이스에 추가하고 설계를 개선한다.
TDD 개발 장점
- TDD는 코드의 재사용 보장을 명시하므로 TDD를 통한 소프트웨어 개발 시 기능 별 철저한 모듈화가 이루어지고 종속성과 의존성이 낮은 모듈로 조합된 소프트웨어 개발을 가능하게 한다. 모듈을 추가하거나 제거해도 소프트웨어 전체 구조에 영향을 미치치 않게 된다.
- 재설계 시간 단축
- 디버깅 시간 단축
- 테스트 문서 대체 가능
- 추가 구현 용이
TDD 개발 단점
- 생산성 저하 (개발시간이 늘어난다.)
pytest-django
python에서 TDD를 할 수 있는 라이브러리 : pytest
django에서 TDD 할 수 있는 플러그인 : pytest-django
- pip install pytest-django
- pytest 설정
- Configuring Django settings — pytest-django documentation
- django helper
- mark
- fixture
'Computer Science > CS' 카테고리의 다른 글
사용중인 port 검색 및 지우기 kill (0) | 2023.09.06 |
---|---|
Web, http, Server/Client, IP, DTO/VO (0) | 2022.09.02 |
컴파일 / 컴파일러, 인터프리터 비교 (0) | 2022.06.12 |