간단하게 정리해뒀던 BDD와 TDD

🐳ㅇㅡㄴㄱㅓ·2022년 4월 19일
0
post-thumbnail

BDD, TDD

TDD

  • 소프트웨어 개발 방법
  • TDD : Test Driven Development 테스트 주도 개발
    - 테스트를 먼저 작성하고 그 뒤에 테스트케이스를 통과하는 코드를 작성하는 방식

BDD

  • Behavior Driven Development
  • TDD를 근간으로 파생된 개발 방법
  • 테스트케이스 자체가 요구사항이 되도록 하는 개발방법
  • BDD를 통해 개발을 하면 "이 클래스가 어떤 행위를 해야한다" 는 식의 문장으로 작성하여 행위에 대한 테스트를 집중가능

BDD의 기본 패턴

시나리오 기반으로 테스트케이스를 작성하며 함수 단위 테스트 권장 x.
하나의 시나리오는 Given, When, Then 구조를 가지는 기본패턴을 권장

Feature : 테스트에 대상의 기능/책임을 명시
Scenario: 테스트 목적에 대한 상황을 설명합니다.
Given : 시나리오 진행에 필요한 값을 설정
When : 시나리오를 진행하는데 필요한 조건을 명시
Then : 시나리오를 완료했을 때 보장해야 하는 결과를 명시

EX) 테스트 대상은 A상태에서 출발하며(Given) 어떤 상태 변화를 가했을 때 (When) 기대하는 상태로 완료되어야 합니다.(Then)

정리를 했던 이유는 지금은 잘린 전 회사에서 오픈소스를 기반으로 개발을 진행중이었는데 그 오픈소스중에 PHP의 BDD툴이라고 알려진 Behat을 이용한 테스트케이스가 있었기 때문에 알고만 있었다가 어느 회사의 기술블로그를 보고 아 이게 BDD구나 깨닫게 되어 정리한 것. 한참 알아볼때도 느꼈지만 PHP쪽의 테스트툴이나 도구에 대한 레퍼런스 찾기가 어려웠던것 같다.

profile
재활훈련 중

0개의 댓글