Recommended
PPTX
IoT 개발자를 위한 Embedded C에서 TDD를 해보자
PPTX
테스트 자동화와 TDD(테스트 주도 개발방법론)
PPTX
PPTX
PPTX
PDF
TDD&Refactoring Day 02: TDD
PPTX
PDF
PPTX
Test Driven Development (TDD) basic
PPTX
PDF
PPTX
PDF
PPTX
TDD: Test Driven Development 첫번째 이야기
PDF
Robot framework 을 이용한 기능 테스트 자동화
PPTX
PDF
PDF
GKAC 2015 Apr. - 테스트 코드에서 코드 커버리지까지
PDF
Ui test 자동화하기 - Selenium + Jenkins
PDF
Tdd live spring camp 2013
PDF
코드의 품질 (Code Quality)
PPTX
PDF
PDF
KGC2010 - 낡은 코드에 단위테스트 넣기
PDF
PPTX
PDF
테스트 가능한 소프트웨어 설계와 TDD작성 패턴 (Testable design and TDD)
PPTX
PDF
Functional Reactive Programming With RxSwift
PDF
More Related Content
PPTX
IoT 개발자를 위한 Embedded C에서 TDD를 해보자
PPTX
테스트 자동화와 TDD(테스트 주도 개발방법론)
PPTX
PPTX
PPTX
PDF
TDD&Refactoring Day 02: TDD
PPTX
PDF
What's hot
PPTX
Test Driven Development (TDD) basic
PPTX
PDF
PPTX
PDF
PPTX
TDD: Test Driven Development 첫번째 이야기
PDF
Robot framework 을 이용한 기능 테스트 자동화
PPTX
PDF
PDF
GKAC 2015 Apr. - 테스트 코드에서 코드 커버리지까지
PDF
Ui test 자동화하기 - Selenium + Jenkins
PDF
Tdd live spring camp 2013
PDF
코드의 품질 (Code Quality)
Viewers also liked
PPTX
PDF
PDF
KGC2010 - 낡은 코드에 단위테스트 넣기
PDF
PPTX
PDF
테스트 가능한 소프트웨어 설계와 TDD작성 패턴 (Testable design and TDD)
PPTX
PDF
Functional Reactive Programming With RxSwift
PDF
PDF
PDF
PPT
PPT
Agile Test Driven Development For Games What, Why, And How
PPTX
테스트 주도 개발 By googletest 1장 다중 통화를 지원하는 money 객체
PPTX
PPTX
빠른 프로토타이핑을 위한 웹앱 자동화 툴 - YEOMAN
PDF
Devon 2011-b-5 효과적인 레거시 코드 다루기
PDF
전자양털폭탄연구 - interface
PDF
2015.03.25 테크니컬 세미나 - SonarQube를 활용한 코드 품질 시각화(김모세)
PPTX
SonarQube 로 Unity 프로젝트 관리
Similar to C++과 TDD
PDF
PDF
아꿈사.C++ api 디자인.20140315 a
PPTX
TDD - Test Driven Development
PPTX
PDF
PPT
PDF
PDF
PDF
Growing object oriented software guided by test
PPTX
PDF
공사꾼 개발부장 김종찬_페어코딩으로 테스팅 배우기_ausg_20170824
PDF
Learning Unit Testing with Pair Programming
PPT
PPTX
PPT
Agd Test Driven Development For Games What, Why, And How)(Game Connect 2006...
PPT
Working Effectively With Legacy Code - xp2005
PPTX
PPTX
PDF
테스트 기발 개발, TBD(Test based developement)
PDF
TDD&Refactoring Day 03: TDD
More from 선협 이
PDF
웹 개발을 위해 꼭 알아야하는 보안 공격
PDF
PDF
PDF
오픈소스를 여행하는 히치하이커를 위한 안내서 - 자막
PDF
Metal 기반 특별한 UI/UX 제공하기 - Let'Swift 2017
PDF
Vue.js와 Reactive Programming 자막 :: Vuetiful Korea 2nd
PDF
Reactive Programming With Swift
PDF
파크히어 Realm 사용 사례
PDF
PPTX
C++과 TDD 1. 2. 3. 4. 5. 6. 7. TDD의 목표를 이루기 위해서는?
1. 자동화된 테스트가 실패할 경우에만 새로운 코드를 작성한다.
2. 중복을 제거한다.
8. TDD의 목표를 이루기 위해서는?
1. 자동화된 테스트가 실패할 경우에만 새로운 코드를 작성한다.
2. 중복을 제거한다.
3. 즉 불필요한 기능 구현을 하지 않는다.
9. TDD의 목표를 이루기 위해서는?
1. 자동화된 테스트가 실패할 경우에만 새로운 코드를 작성한다.
2. 중복을 제거한다.
3. 즉 불필요한 기능 구현을 하지 않는다.
Clean code that works!!!
11. TDD 개발법
1. 빨강 - 실패하는 작은 테스트 케이스를 작성한다.
2. 초록 - 테스트를 통과하는 코드를 작성한다.
3. 리팩토링 - 테스트를 통과하기 위해 만든 코드의 모든 중복을 제거하고,
불명확한 것을 명확히 한다.
12. TDD 개발법
1. 빨강 - 실패하는 작은 테스트 케이스를 작성한다.
2. 초록 - 테스트를 통과하는 코드를 작성한다.
3. 리팩토링 - 테스트를 통과하기 위해 만든 코드의 모든 중복을 제거하고,
불명확한 것을 명확히 한다.
코딩
/
리팩토링
테스트 실패
성공
13. 14. 15. TDD란 xUnit과 같은 프레임워크를 사용하지 않아도 상관없다!
로직의 완성상태를 검증할 수 있는
코드가 존재하면 충분하다
True
True
False
True
16. TDD란 xUnit과 같은 프레임워크를 사용하지 않아도 상관없다!
로직의 완성상태를 검증할 수 있는
코드가 존재하면 충분하다
True
True
False
True
17. 18. 19. 20. CppUnit – 예제 1
간단한 클래스를 작성한다.
오른쪽의 클래스는 잡다한 기능을 가지고 있는 정체성이 없는
클래스이다.
이 클래스가 잘 동작하는지 테스트 해보도록 한다.
21. 22. 23. 24. CppUnit – 결과
위 메뉴에서 `테스트 -> 창 -> 테스트 탐색기`를 선택하여 테스트 항목을 볼 수 있다.
테스트를 실행하면 실패, 성공 여부를 확인 할 수 있다.
25. CppUnit – 마치며
예제에서는 미리 Class를 설계한 후 테스트 코드를 실행하였지만
미리 테스트를 만들어 둔 후 클래스를 만드는 것이 좋다.
테스트 `주도` 개발이기 때문이다.
26. 27. 28. 왜 사용하지?
테스트 코드와 로직 부분을 분리하기 편하다.
클릭 한 번으로 테스트 실행이 가능하다.
단위 테스트와 인수 테스트로 나누어서 테스트가 가능하다.
29. 30. 31. 32. A 클래스 B 클래스 C 클래스 D 클래스
테스트 성공 테스트 성공 테스트 성공 테스트 성공
33. A 클래스 B 클래스 C 클래스 D 클래스
테스트 성공 테스트 성공 테스트 성공 테스트 성공
이것이 단위 테스트 (Unit Test)
34. A 클래스 B 클래스 C 클래스 D 클래스
테스트 성공 테스트 성공 테스트 성공 테스트 성공
하지만 정작 프로세스를 진행하면?
35. A 클래스 B 클래스 C 클래스 D 클래스
프로세스 1
/
A, B 클래스
프로세스 2
/
A, B, C
클래스
프로세스 3
/
A, D 클래스
36. A 클래스 B 클래스 C 클래스 D 클래스
프로세스 1
/
A, B 클래스
프로세스 2
/
A, B, C
클래스
프로세스 3
/
A, D 클래스
동작 에러
37. A 클래스 B 클래스 C 클래스 D 클래스
프로세스 1
/
A, B 클래스
프로세스 2
/
A, B, C
클래스
프로세스 3
/
A, D 클래스
동작 에러 유닛 테스트 만으로는 동작을 안하네?
38. A 클래스 B 클래스 C 클래스 D 클래스
프로세스 1
/
A, B 클래스
프로세스 2
/
A, B, C
클래스
프로세스 3
/
A, D 클래스
테스트 테스트
39. A 클래스 B 클래스 C 클래스 D 클래스
프로세스 1
/
A, B 클래스
프로세스 2
/
A, B, C
클래스
프로세스 3
/
A, D 클래스
테스트 성공 테스트 성공
40. A 클래스 B 클래스 C 클래스 D 클래스
프로세스 1
/
A, B 클래스
프로세스 2
/
A, B, C
클래스
프로세스 3
/
A, D 클래스
테스트 성공 테스트 성공
이것을 인수 테스트(Acceptance Test)라 한다.
41. 42. 단위 테스트 + 인수 테스트
품질 높고 테스트한 항목에 대해서
버그 없는 제품 완성
43. 단위 테스트 + 인수 테스트
품질 높고 테스트한 항목에 대해서
버그 없는 제품 완성
테스트한 항목은
개발자들에게 좋은 문서가됨
44. 단위 테스트 + 인수 테스트
품질 높고 테스트한 항목에 대해서
버그 없는 제품 완성
테스트한 항목은
개발자들에게 좋은 문서가됨
테스트 코드를 성공하면
자신감이 상승한다
45. TDD의 단점
코드를 변경할 때마다 유닛 테스트를 변경해줘야한다.
데이터가 많고, 크고, 다양하면 테스트를 작성하기 힘들다.
유닛 테스트가 실패했는데도 동작할 경우가 있다.
하나의 유닛을 수정하면 다른 메소드에 문제가 생길 수 있다.
테스트 코드가 추가 되기 때문에 관리해야 하는 코드가 많아진다.
46. TDD의 단점
코드를 변경할 때마다 유닛 테스트를 변경해줘야한다.
데이터가 많고, 크고, 다양하면 테스트를 작성하기 힘들다.
유닛 테스트가 실패했는데도 동작할 경우가 있다.
하나의 유닛을 수정하면 다른 메소드에 문제가 생길 수 있다.
결국 귀찮고 시간이 오래걸린다...
47. TDD의 단점
코드를 변경할 때마다 유닛 테스트를 변경해줘야한다.
데이터가 많고, 크고, 다양하면 테스트를 작성하기 힘들다.
유닛 테스트가 실패했는데도 동작할 경우가 있다.
하나의 유닛을 수정하면 다른 메소드에 문제가 생길 수 있다.
결국 귀찮고 시간이 오래걸린다...
즉 비용이 많이듬!!!!
48. TDD의 단점
코드를 변경할 때마다 유닛 테스트를 변경해줘야한다.
데이터가 많고, 크고, 다양하면 테스트를 작성하기 힘들다.
유닛 테스트가 실패했는데도 동작할 경우가 있다.
하나의 유닛을 수정하면 다른 메소드에 문제가 생길 수 있다.
결국 귀찮고 시간이 오래걸린다...
즉 비용이 많이듬!!!!
하지만 이것은 일반적인 단점이고
단점이 느껴지지 않는 개발자가 있을 수도 있다
결국 자신에게 맞는 개발 방법이 최고다
49. 50. 참고 자료
http://soulpark.wordpress.com/2012/09/12/test-driven-development/
http://www.slideshare.net/doortts/tdd-testable-design-and-tdd
http://ko.wikipedia.org/wiki/%ED%85%8C%EC%8A%A4%ED%8A%B8_%EC%A3%BC%EB%8F%
84_%EA%B0%9C%EB%B0%9C
http://ko.wikipedia.org/wiki/XUnit
http://nyolong.egloos.com/viewer/2250020
http://gusspia.egloos.com/509710
http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/SoftWare_engineering/TDD