Hayden's Archive
_hayden
Hayden's Archive
2021.03.16 [3월 우아한테크세미나] 우아한 ATDD 본문
Seminar
2021.03.16 [3월 우아한테크세미나] 우아한 ATDD
_hayden
2021. 3. 16. 19:06
- 페어 프로그래밍
- 즉각적인 피드백을 받을 수 있음
- 네비게이터와 드라이버
- 테스트
- 테스트 코드로부터 받는 피드백
- 인수 테스트
- 시나리오(사용자 스토리) 기반으로 기능 테스트
- 인수(= 물건을 받는다)
- 배포 없이 받는 빠른 피드백 -> 배포없이 테스트로 대부분 검증 가능
- 기존 기능을 망가뜨리지 않고 새 기능을 추가할 수 있음
- 인수 테스트 하나하나를 실행시키면서 도메인 정보와 비즈니스 관련 플로우를 쌓아갈 수 있음
- 빠른 피드백
- 피드백을 받는 방법
- 페어 프로그래밍
- 테스트 / 인수 테스트
- 코드 리뷰
- 배포
- 출시
- 테스트 주도 개발(TDD)
- 빠른 피드백을 받기 좋은 개발 방법론
- 테스트를 설계 활동으로 바꾸는 효과
- 설계 품질에 관한 피드백을 빠르게 받을 수 있음
- 관련 책 : 테스트 주도 개발로 배우는 객체 지향 설계와 실천
- TDD 수행시 아쉬운 부분
- 시작해보기 막막한 부분
- 나도 모르게 테스트 케이스를 짜기 전에 프로덕트 코드를 먼저 짜는 일이 생김
- 불필요한 코드와 정리 안 된 코드가 있는 레거시 코드들을 어떻게 적용할 것인가
- 그러므로 인수 테스트를 기반으로 개발하기
- 인수 테스트 장점을 포함
- 어디서부터 어디까지 작업해야 할지 뚜렷한 부분들이 생김
- ATDD 관련 기본 개념
- 테스트
- 내가 구현한 코드를 검증하는 용도로 테스트를 사용
- 하루를 끝내고 정리하는 일기와 같음
- TDD
- 내가 구현할 내용을 명세화하기 위해서 테스트를 사용
- 하루를 시작할 때 작성하는 to-do 리스트와 같음
- BDD
- ATDD
- 요구사항을 명세화하는 방법으로 인수 테스트를 활용함
- TDD처럼 개발이랑만 관련된 것은 아니고, 기획 개발 QA 등 공통적으로 관련된 개발 방법
- 여러 직군이 다 같이 인수 조건을 정의한다(커뮤니케이션 비용 절약을 위함)
- ATDD 개발 프로세스
- 인수 조건 정의
- 인수 조건
- 인수 테스트가 충족해야 하는 조건
- 인수 조건을 표현하는 여러가지 포맷이 있음
- Given(사전 조건)/When(검증 대상)/Then(기대 결과)
- 인수 테스트 작성
- 인수 조건을 검증하는 테스트
- 실제 요청/응답하는 환경과 유사하게 테스트 환경 구성
- 기능 구현
- 인수테스트를 충족하기 위한 코드 구현
- 기능 구현은 TDD로 진행