SlideShare una empresa de Scribd logo
1 de 70
Descargar para leer sin conexión
ATDD
with

Cucumber
최윤상	

oddpoet@gmail.com
What is ATDD ?
Acceptance Test Driven Development
What is ATDD ?
Acceptance Test Driven Development
BDD(Behavior Driven Development)
What is ATDD ?
Acceptance Test Driven Development
BDD(Behavior Driven Development)
Specification by Example
TDD Cycle
Test in TDD
Test in TDD
test가 먼저 작성되니깐

specification
Test in TDD
test가 먼저 작성되니깐

specification

개발자들간의 의사소통 수단이 되는

example code
Test in TDD
test가 먼저 작성되니깐

specification

개발자들간의 의사소통 수단이 되는

example code

항상 최신 상태로 유지되는

living documentation
개발자들끼리는
“(테스트) 코드”를 까보면
서로 이해할 수 있다
하지만 다른 사람은
우리를 그런식으로 이해하지 않아요
우리도 그들을 그렇게 이해하지 않죠
어떻게 하면
프로젝트의 모든 사람이

같은 언어로
얘기할 수 있을까?
어떻게 하면
프로젝트의 모든 사람이

같은 언어로
얘기할 수 있을까?
de를
Co

보는
못

까지도
사람들
개발자와 비개발자가
같은 언어로 소통할 수 있는 지점?
ATDD의 사이클
기획자/개발자/QA/디자이너
모두 함께 얘기하는 곳

“acceptance criteria”

TDD의 사이클
개발자들끼리 노는 곳
“acceptance criteria”
사용자 스토리에 대한 시나리오
작업의 완료 기준
테스트(예제)
기능에 대한 명세(문서)
“acceptance criteria”
모든 사람이 이해할 수 있는
사용자 스토리에 대한 시나리오
작업의 완료 기준
테스트(예제)
기능에 대한 명세(문서)
Cucumber-JVM
Cucumber is
Cucumber is
Cucumber is
Cucumber-JVM ?!
Cucumber-JVM ?!

?

?
original

Cucumber is for
original

Cucumber is for

java 개발자는...
JAVA 개발자를 위한 Cucumber는?
JAVA 개발자를 위한 Cucumber는?
둥~!
두
JAVA 개발자를 위한 Cucumber는?
둥~!
두

그런데!!!
Aslak Hellesøy, Dan North 가
Cucumber 만들기전에 만들었다가
더이상 손 안대고 있는....
또다른 Cucumber for Java
또다른 Cucumber for Java

+
또다른 Cucumber for Java

+

Cuke4Duke
또다른 Cucumber for Java

+

Cuke4Duke
이 역시 Aslak Hellesøy의 실패작!
실행도 잘 안되고, 2년 전쯤 완전히 버림
결국
Cucumber를 Java로 재개발하기로 결정!
(by Aslak Hellesøy)
결국
Cucumber를 Java로 재개발하기로 결정!
(by Aslak Hellesøy)

Cucumber-JVM
결국
Cucumber를 Java로 재개발하기로 결정!
(by Aslak Hellesøy)

Cucumber-JVM
JVM 상의 언어는 죄다 지원해주마!
Cucumber-JVM

이제
cucumber
ruby를
버리는
중?
cucumber-jvm 설정하기
pom.xml
에
dependency
추가

junit과
연동
java를
쓸
경우
필수
spring
F/W과
연동
주의
1:
junit은
4.11
이상을
쓸것
(junit
4.8에서
오류
있음)
주의
2:

Más contenido relacionado

Destacado

Posquit0 - Fabric을 이용한 ssh streamlining
Posquit0 - Fabric을 이용한 ssh streamliningPosquit0 - Fabric을 이용한 ssh streamlining
Posquit0 - Fabric을 이용한 ssh streamlining
Byungjin Park
 
SPDY : 더 빠른 웹을 위한 프로토콜
SPDY : 더 빠른 웹을 위한 프로토콜SPDY : 더 빠른 웹을 위한 프로토콜
SPDY : 더 빠른 웹을 위한 프로토콜
Yunsang Choi
 
2.네이버 프론트엔드 김지태
2.네이버 프론트엔드 김지태2.네이버 프론트엔드 김지태
2.네이버 프론트엔드 김지태
NAVER D2
 

Destacado (18)

PoApper Introduction
PoApper IntroductionPoApper Introduction
PoApper Introduction
 
Monkey D. Luffy - 리더의 격을 배우다 by Posquit0
Monkey D. Luffy - 리더의 격을 배우다 by Posquit0Monkey D. Luffy - 리더의 격을 배우다 by Posquit0
Monkey D. Luffy - 리더의 격을 배우다 by Posquit0
 
Posquit0 - Fabric을 이용한 ssh streamlining
Posquit0 - Fabric을 이용한 ssh streamliningPosquit0 - Fabric을 이용한 ssh streamlining
Posquit0 - Fabric을 이용한 ssh streamlining
 
배포
배포배포
배포
 
Cucumber jvm
Cucumber jvmCucumber jvm
Cucumber jvm
 
2013 PoApper Introduction
2013 PoApper Introduction2013 PoApper Introduction
2013 PoApper Introduction
 
SPDY : 더 빠른 웹을 위한 프로토콜
SPDY : 더 빠른 웹을 위한 프로토콜SPDY : 더 빠른 웹을 위한 프로토콜
SPDY : 더 빠른 웹을 위한 프로토콜
 
SOSCON2015 Robot Framework
SOSCON2015 Robot FrameworkSOSCON2015 Robot Framework
SOSCON2015 Robot Framework
 
최전방 생존법 - 프론트엔드 개발자로 살아가기
최전방 생존법 - 프론트엔드 개발자로 살아가기최전방 생존법 - 프론트엔드 개발자로 살아가기
최전방 생존법 - 프론트엔드 개발자로 살아가기
 
프론트엔드로 시작하는 웹 개발 방법과 지식들
프론트엔드로 시작하는 웹 개발 방법과 지식들프론트엔드로 시작하는 웹 개발 방법과 지식들
프론트엔드로 시작하는 웹 개발 방법과 지식들
 
[D2]java 성능에 대한 오해와 편견
[D2]java 성능에 대한 오해와 편견[D2]java 성능에 대한 오해와 편견
[D2]java 성능에 대한 오해와 편견
 
초보 개발자를 위한 웹 프론트엔드 개발 101
초보 개발자를 위한 웹 프론트엔드 개발 101초보 개발자를 위한 웹 프론트엔드 개발 101
초보 개발자를 위한 웹 프론트엔드 개발 101
 
Front-end Development Process - 어디까지 개선할 수 있나
Front-end Development Process - 어디까지 개선할 수 있나Front-end Development Process - 어디까지 개선할 수 있나
Front-end Development Process - 어디까지 개선할 수 있나
 
2.네이버 프론트엔드 김지태
2.네이버 프론트엔드 김지태2.네이버 프론트엔드 김지태
2.네이버 프론트엔드 김지태
 
웹 Front-End 실무 이야기
웹 Front-End 실무 이야기웹 Front-End 실무 이야기
웹 Front-End 실무 이야기
 
DEVOPS 에 대한 전반적인 소개 및 자동화툴 소개
DEVOPS 에 대한 전반적인 소개 및 자동화툴 소개DEVOPS 에 대한 전반적인 소개 및 자동화툴 소개
DEVOPS 에 대한 전반적인 소개 및 자동화툴 소개
 
Building GUI App with Electron and Lisp
Building GUI App with Electron and LispBuilding GUI App with Electron and Lisp
Building GUI App with Electron and Lisp
 
[Infographic] How will Internet of Things (IoT) change the world as we know it?
[Infographic] How will Internet of Things (IoT) change the world as we know it?[Infographic] How will Internet of Things (IoT) change the world as we know it?
[Infographic] How will Internet of Things (IoT) change the world as we know it?
 

Similar a Atdd with Cucumber

131 deview 2013 yobi-채수원
131 deview 2013 yobi-채수원131 deview 2013 yobi-채수원
131 deview 2013 yobi-채수원
NAVER D2
 
코딩테트2205-kucc-220508145530-8015b5d7.pdf
코딩테트2205-kucc-220508145530-8015b5d7.pdf코딩테트2205-kucc-220508145530-8015b5d7.pdf
코딩테트2205-kucc-220508145530-8015b5d7.pdf
ssuser597fbd
 
최우성 구별하여 사용하면 좋은 프로젝트 관련용어
최우성 구별하여 사용하면 좋은 프로젝트 관련용어최우성 구별하여 사용하면 좋은 프로젝트 관련용어
최우성 구별하여 사용하면 좋은 프로젝트 관련용어
drandom
 
『이펙티브 디버깅』 - 디버깅 지옥에서 탈출하는 66가지 전략과 기법
『이펙티브 디버깅』 - 디버깅 지옥에서 탈출하는 66가지 전략과 기법『이펙티브 디버깅』 - 디버깅 지옥에서 탈출하는 66가지 전략과 기법
『이펙티브 디버깅』 - 디버깅 지옥에서 탈출하는 66가지 전략과 기법
복연 이
 
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
devCAT Studio, NEXON
 

Similar a Atdd with Cucumber (20)

[TECHCON 2019: MOBILE - iOS]2.들숨에 협업 날숨에 클린코드
[TECHCON 2019: MOBILE - iOS]2.들숨에 협업 날숨에 클린코드[TECHCON 2019: MOBILE - iOS]2.들숨에 협업 날숨에 클린코드
[TECHCON 2019: MOBILE - iOS]2.들숨에 협업 날숨에 클린코드
 
공사꾼 개발부장 김종찬_페어코딩으로 테스팅 배우기_ausg_20170824
공사꾼 개발부장 김종찬_페어코딩으로 테스팅 배우기_ausg_20170824공사꾼 개발부장 김종찬_페어코딩으로 테스팅 배우기_ausg_20170824
공사꾼 개발부장 김종찬_페어코딩으로 테스팅 배우기_ausg_20170824
 
Learning Unit Testing with Pair Programming
Learning Unit Testing with Pair ProgrammingLearning Unit Testing with Pair Programming
Learning Unit Testing with Pair Programming
 
200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기
200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기
200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기
 
Golang+on+analytics+and+blockchain
Golang+on+analytics+and+blockchainGolang+on+analytics+and+blockchain
Golang+on+analytics+and+blockchain
 
31기 고지웅 "구글오픈소스"
31기 고지웅 "구글오픈소스"31기 고지웅 "구글오픈소스"
31기 고지웅 "구글오픈소스"
 
[AUG]개발자와 QA가 상생하는 테스트 프로세스
[AUG]개발자와 QA가 상생하는 테스트 프로세스[AUG]개발자와 QA가 상생하는 테스트 프로세스
[AUG]개발자와 QA가 상생하는 테스트 프로세스
 
[FEConf 2018] Front-End 프로젝트의 Test code 작성경험기
[FEConf 2018] Front-End 프로젝트의 Test code 작성경험기[FEConf 2018] Front-End 프로젝트의 Test code 작성경험기
[FEConf 2018] Front-End 프로젝트의 Test code 작성경험기
 
131 deview 2013 yobi-채수원
131 deview 2013 yobi-채수원131 deview 2013 yobi-채수원
131 deview 2013 yobi-채수원
 
(책 소개) Tucker의 Go 언어 프로그래밍
(책 소개) Tucker의 Go 언어 프로그래밍(책 소개) Tucker의 Go 언어 프로그래밍
(책 소개) Tucker의 Go 언어 프로그래밍
 
좋은 개발자 되기
좋은 개발자 되기좋은 개발자 되기
좋은 개발자 되기
 
Tdd ver.2
Tdd ver.2Tdd ver.2
Tdd ver.2
 
코딩테트2205-kucc-220508145530-8015b5d7.pdf
코딩테트2205-kucc-220508145530-8015b5d7.pdf코딩테트2205-kucc-220508145530-8015b5d7.pdf
코딩테트2205-kucc-220508145530-8015b5d7.pdf
 
코딩 테스트 및 알고리즘 문제해결 공부 방법 (고려대학교 KUCC, 2022년 4월)
코딩 테스트 및 알고리즘 문제해결 공부 방법 (고려대학교 KUCC, 2022년 4월)코딩 테스트 및 알고리즘 문제해결 공부 방법 (고려대학교 KUCC, 2022년 4월)
코딩 테스트 및 알고리즘 문제해결 공부 방법 (고려대학교 KUCC, 2022년 4월)
 
Software engineer가 되기 위한 여정
Software engineer가 되기 위한 여정Software engineer가 되기 위한 여정
Software engineer가 되기 위한 여정
 
About Programmer 2021
About Programmer 2021About Programmer 2021
About Programmer 2021
 
소프트웨어 중심 시대를 준비하자
소프트웨어 중심 시대를 준비하자소프트웨어 중심 시대를 준비하자
소프트웨어 중심 시대를 준비하자
 
최우성 구별하여 사용하면 좋은 프로젝트 관련용어
최우성 구별하여 사용하면 좋은 프로젝트 관련용어최우성 구별하여 사용하면 좋은 프로젝트 관련용어
최우성 구별하여 사용하면 좋은 프로젝트 관련용어
 
『이펙티브 디버깅』 - 디버깅 지옥에서 탈출하는 66가지 전략과 기법
『이펙티브 디버깅』 - 디버깅 지옥에서 탈출하는 66가지 전략과 기법『이펙티브 디버깅』 - 디버깅 지옥에서 탈출하는 66가지 전략과 기법
『이펙티브 디버깅』 - 디버깅 지옥에서 탈출하는 66가지 전략과 기법
 
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
 

Atdd with Cucumber