본문 바로가기
공부/TDD

[OKKYCON: 2018] 이규원 - 당신들의 TDD가 실패하는 이유

by Moonsc 2020. 9. 26.
728x90
엔지니어링은 사이언스가 아니다.
프로그래머는 사이언스보단 엔지니어링에 훨씬 가깝다.
과학적 이론, 과학적 방법론을 가지고 정해진 시간, 정해진 인력, 정해진 자금 안에서 해결해야 한다.

 

TDD 실패하는 사람들의 테스트

  • 구현 테스트를 한다.
  • 테스트들이 내부 코드들을 알고 있다.
  • Mock을 많이 사용한다. Mock은 대부분 스텁이나 스파이를 위해 쓰는데 간접적이다.

 

우리가 제어할 수 없는 것

  • 현실 세계
  • 인프라
  • 외부 서비스
  • 레거시

 

우리가 보호해야 하는 것

  • AWS
  • Spring 
  • Domain

 

 

TDD 성공을 위한 방법

 

목적

소프트웨어 사용자에게 어떤 가치를 전달할 것인가? 명확한 정의가 중요하다.

 

분석

목적을 달성하기 위해 소프트웨어에 어떤 변경이 필요한가?

 

설계 

  • 낮은 결합
  • 높은 응집
  • 도메인 모델 보호

 

프로세스 : 점진 > 반복 > Fail - Fast

 

반복 주기 : 계획 > 실행 > 평가

 

개발 문화 : 공유 > 목표 > 지식

 

방법1. 정보 숨김(Information Hiding)

  • 어려운 설계 결정과 변경될 가능성이 높은 설계 결정들을 다른 모듈(외부)로부터 숨기는 것 

 

방법2. 도메인 모델과 플랫폼

  • 도메인과 플랫폼을 독립적으로 운용한다.

 

방법3. 초기 분석

  • 유저 스토리를 분석하고 그려본다

 

 

Q1. 코찔찔이들의 TDD 성공 방법은 ? 

A1. 페어링을 통한 전파. 

 

Q2. 요구사항을 명확히 하는 방법은 ?

A2. 초기 분석 및 페어링

 

Q3. 통합 테스트를 성공하는 방법은 ?

A3. Funtional 테스트, 메뉴얼 테스트, 외부 연동 테스트는 페이크 서비스를 통해서 한다.

 

 

 

 

'공부 > TDD' 카테고리의 다른 글

볼링게임 TDD [2]  (0) 2020.10.02
볼링게임 TDD [1]  (0) 2020.09.30
[OKKYCON: 2018] 자바지기(박재성)- TDD 의식적으로 연습하기  (0) 2020.09.20
테스트 주도 개발 [10 - 17장]  (0) 2020.09.12
테스트 주도 개발 [1 - 9장]  (0) 2020.09.05

댓글