스터디/테스트 주도 개발 시작하기

4장 TDD-기능 명세-설계

yjzini 2024. 9. 26. 00:52

기능 명세

  • 기능 구현을 위해서 기능을 크게 입력과 출력으로 나눠서 생각할 수 있음
    • 입력
      • : 기능을 실행하는데 필요한 값
      • 메서드와 파라미터로 전달
    • 결과
      • : 여러 형식으로 정의할 수 있음
        • 리턴 값, Exception
        • 변경 ex. DB에 데이터를 추가하는 등의 시스템 상태의 변경
  • 설계는 기능 명세로부터 시작
  • 요구 사항 문서를 이용해서 기능 명세를 구체화하는 동시에 입력과 결과를 도출 → 도출한 기능 명세를 코드에 반영

 

설계 과정을 지원하는 TDD

  • 테스트 코드를 만들기 위해 무엇이 필요?
    • 테스트할 기능을 실행
      • 클래스, 메서드, 함수 이름 결정
      • 파라미터 (이름 & 인자의 타입과 개수) 결정
    • 실행 결과를 검증
      • 리턴 값
  • 이름은 설계에서 매우 중요! 이름을 고민하는 시간을 아까워하지 말자!

 

필요한 만큼만 설계하기

  • 필요할 것으로 예측해서 미리 설계를 유연하게 만들지 않고 필요한 만큼만! 설계 변경
    • ex. 미리 앞서서 필요해 보이는 익셉션 타입을 만들지 않는다
  • 유연한 설계는 필요한 시점에 추가하여 설계가 불필요하게 복잡해지는 것을 방지할 수 있음

 

기능 명세 구체화

  • 기능 명세를 정리
  • 요구사항의 명세에서 입력과 결과를 도출
  • 애매한 부분을 발견하면 실무 담당자나 기획자와 얘기를 통해 구체적으로 정리해야 함
  • 개발자는 최대한 예외적인 상황이나 구체적인 예를 끌어내야 함.

 

⌈테스트 주도 개발 시작하기⌋ 책 스터디를 진행하며 작성한 글입니다.

책 출처: 최범균, ⌈테스트 주도 개발 시작하기⌋, 가메출판사