TDD, BDD, DDD 개발방법

sunny·2022년 12월 6일
0

개발방법론

목록 보기
1/2

Test-Driven Development (TDD) 테스트 주도 개발방법

애자일 방법론 중 하나인 XP(eXtream Programming)의 Test-First 개념에 기반을 둔 설계방법

XP

미래예측을 최대한 하지 않고 지속적으로 프로토타입을 완성하는 애자일 방법론 중 하나
추가 요구사항이 생기더라도 실시간으로 반영할 수 있다.

  1. 단위 테스트작성(실패하는) -> 레드
  2. 테스트 코드를 성공시키기 위한 실제 운영코드 작성 -> 그린
  3. 코드 리팩토링, 설계 개선 -> 블루

단위테스트 작성 -> 단위테스트 실행 (성공) -> 단위테스트 재작성
단위테스트 작성 -> 단위테스트 실행 (실패) -> 운영코드 작성 -> 단위테스트 실행 (성공) -> 설계개선 -> 단위테스트 실행 …
단위테스트 작성 -> 단위테스트 실행 (실패) -> 운영코드 작성 -> 단위테스트 실행 (실패) -> 운영코드 작성 -> 단위테스트 실행 …

전통적인 개발 프로세스 => 결과 중심적

디자인 -> 코드개발 -> 테스트

TDD개발 방법 => 품질중심적

디자인 -> 테스트코드작성 -> 코드개발 -> 리팩토링 -> 테스트코드작성 -> 디자인….
큰 차이점 : 테스트코드를 먼저 작성한다

TDD 관련 프레임워크

CUnit / CppUnit (C/C++)
JUnit (Java)
PyUnit (Python)
DBUnit (DB)
NUnit (.net)
PHPUnit (PHP)

Behaviour-driven Development (BDD) 행동 주도 개발방법

TDD 근간으로 파생된 개발 프로세스
TDD는 테스트에 집중, BDD는 비즈니스 요구사항에 집중
테스트케이스가 비즈니스 요구사항이됨
TDD를 결합해 시나리오 테스트까지 포함한다.

DDD (Domain-Driven-Development) 도메인 주도 개발방법

데이터 중심x
순수한 도메인의 모델과 로직에 집중하여 개발함

생각
처음 대학교를 졸업하고 IT업계에서 종사한지 10년이 넘었다. 그동안 끊임없이 변화하고 있고 품질에 대한 생각이 많이 변화되었음을 느끼고 있다.
기획자, 디자이너, 개발자, QA 각자의 역할이 나눠져있고 목표가 달랐지만 요즘에는 모두가 하나의 제품을 같이 만들고 발전시켜 나가는 한팀이라는 생각을 공유하고 있다. 의식이 많이 변화되었다.
QA는 비용만 발생되는 팀이라고 생각하는 경우가 많았는데, 이제는 대부분이 품질의 중요성을 깨닫고 있다는 것이 신기하다.

profile
Believe in yourself :)

0개의 댓글