본문 바로가기

개발

[테스트] TDD 와 BDD

  • TDD [Test-Driven Development

- 테스트 주도 개발을 의미.

- 구현 코드를 작성하기 전에 테스트 부터 작성 (테스트 케이스 선작성, 그 다음 코드 구현)

 

1. 요구사항을 검증하는 테스트 케이스를 작성

2. 그 테스트 케이스를 통과하기 위한 최소한의 코드를 생성

3. 마지막으로 작성한 코드를 표준에 맞게 리팩토링

 

 

코드를 단순화 하고, 유지보수와 확장이 용이하다는 장점이 있으나,

지속적인 testecase가 필요하기 때문에 일정관리, 유지보수 측면에서 부담이 클 수도 있고 리소스가 들 수도 있다는 단점이 있다. 

 

 

  • BDD [Behaviour-Driven Development]

- TDD에서 파생된 개발 방법론

- 행위 주도 개발. 테스트 케이스 자체가 요구 사항이 되도록 하는 개발방식

- 시나리오 기반의 테스트 케이스를 작성하여, 비개발자와 개발자간의 협업 과정을 녹여낼 수 있는 방법

 

1. Feature : 테스트에 대상의 기능/책임을 명시한다.

2. Scenario : 테스트 목적에 대한 상황을 설명한다.

3. Given : 시나리오 진행에 필요한 값을 설정한다.

4. When : 시나리오를 진행하는데 필요한 조건을 명시한다.

5. Then : 시나리오를 완료했을 때 보장해야 하는 결과를 명시한다.

 

비개발자와 개발자간의 협업이 가능하여 함께 참여할 수 있다는 장점을 가졌으며, 비즈니스에서 요구하는 가치를 제공한다.

 

 

 


맨 위로