테스트 주도 개발(TDD)과 행동 주도 개발(BDD)

Lee·2023년 6월 15일
0

테스트 주도 개발(TDD)

TDD는 개발자가 새로운 기능이나 함수에 대한 테스트 케이스를 먼저 작성하고, 그 테스트를 통과하기 위한 최소한의 코드를 작성하는 개발 기법입니다. 이 방법론은 코드의 기능에 초점을 맞추며, 개발자의 관점에서 테스트 케이스를 작성합니다.

// 테스트 케이스 작성
@Test
public void testAdd() {
    Calculator calculator = new Calculator();
    int result = calculator.add(2, 3);
    assertEquals(5, result);
}

// 테스트를 통과하는 코드 작성
public class Calculator {
    public int add(int a, int b) {
        return a + b;
    }
}

행동 주도 개발(BDD)

BDD는 사용자의 관점에서 시스템의 행동에 초점을 맞추어 테스트 케이스를 작성합니다. 이는 비개발자들도 이해할 수 있는 언어로 테스트 케이스를 작성하여, 비개발자들도 테스트 과정에 참여하고 요구 사항을 명확하게 이해할 수 있게 해줍니다.Given-When-Then 패턴을 가지고 작성합니다.

Feature: Calculator
  Scenario: Addition
    Given I have a calculator
    When I add 2 and 3
    Then I expect the result to be 5

TDD와 BDD의 차이점

TDD와 BDD의 주요 차이점은 다음과 같습니다:

  1. 테스트 케이스 작성: TDD는 개발자의 관점에서 테스트 케이스를 작성하며, 코드의 기능에 초점을 맞춥니다. 반면, BDD는 사용자의 관점에서 테스트 케이스를 작성하며, 시스템의 행동에 초점을 맞춥니다.

  2. 언어: TDD는 개발자들이 이해할 수 있는 프로그래밍 언어로 테스트 케이스를 작성합니다. 반면, BDD는 비개발자들도 이해할 수 있는 일반적인 언어로 테스트 케이스를 작성합니다. 하지만, 실제 코드를 작성하고 테스트를 실행하는 부분은 여전히 프로그래밍 언어를 사용합니다.

  3. 테스트의 목표: TDD는 코드의 정확성을 검증하는 것이 목표입니다. 반면, BDD는 사용자의 요구 사항을 만족하는지 검증하는 것이 목표입니다.

profile
잡다한 개발자

0개의 댓글