728x90
엔지니어링은 사이언스가 아니다.
프로그래머는 사이언스보단 엔지니어링에 훨씬 가깝다.
과학적 이론, 과학적 방법론을 가지고 정해진 시간, 정해진 인력, 정해진 자금 안에서 해결해야 한다.
TDD 실패하는 사람들의 테스트
- 구현 테스트를 한다.
- 테스트들이 내부 코드들을 알고 있다.
- Mock을 많이 사용한다. Mock은 대부분 스텁이나 스파이를 위해 쓰는데 간접적이다.
우리가 제어할 수 없는 것
- 현실 세계
- 인프라
- 외부 서비스
- 레거시
우리가 보호해야 하는 것
AWSSpring- 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 |
댓글