SlideShare a Scribd company logo
1 of 25
테스트 자동화의 원칙 김태우  [email_address] 아꿈사  http://café.naver.com/architect1
개요 ,[object Object],[object Object],[object Object],[object Object]
Test Automation Manifesto  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
원칙 ,[object Object],[object Object],[object Object],[object Object]
테스트를 먼저 작성하라  ,[object Object],[object Object],[object Object],[object Object]
테스트하기 쉽게 설계하라  ,[object Object],[object Object],[object Object]
정문을 먼저 사용하라 (1/2) ,[object Object],[object Object]
정문을 먼저 사용하라 (2/2)  ,[object Object],[object Object],[object Object],[object Object]
의도를 드러내라  (1/2)  ( 한 눈에 읽을 수 있는 고급 언어 )  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
의도를 드러내라  (2/2)  ( 한 눈에 읽을 수 있는 고급 언어 )  ,[object Object],[object Object],[object Object]
SUT 를 고치지 마라 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
테스트를 독립적으로 유지하라  ,[object Object],[object Object],[object Object],[object Object],[object Object]
SUT를 격리하라 (1/2)  ,[object Object],[object Object],[object Object],[object Object]
SUT를 격리하라 (2/2)  ,[object Object],[object Object],[object Object],[object Object]
겹치는 테스트를 최소화하라 (1/2)  ,[object Object],[object Object]
겹치는 테스트를 최소화하라 (2/2)  ,[object Object],[object Object],[object Object],[object Object]
테스트할 수 없는 코드를 최소화하라  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
테스트 로직을 제품 코드에 넣지 마라 ( 제품 코드에 테스트 코드 불가 )  ,[object Object]
테스트별로 하나의 조건만 검증하라  (1/2)   ,[object Object],[object Object],[object Object],[object Object],[object Object]
테스트별로 하나의 조건만 검증하라  (1/2)   ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
따로 테스트하라 (1/3) ,[object Object],[object Object]
따로 테스트하라 (2/3) ,[object Object],[object Object],[object Object],[object Object]
따로 테스트하라 (3/3) ,[object Object],[object Object]
효과와 책임을 적당하게 맞춰라  ,[object Object],[object Object],[object Object],[object Object]
정리  ,[object Object],[object Object]

More Related Content

What's hot

X unittestpattern 1장_아꿈사
X unittestpattern 1장_아꿈사X unittestpattern 1장_아꿈사
X unittestpattern 1장_아꿈사
효원 강
 
단위테스트자동화지원도구 임성현 최종
단위테스트자동화지원도구 임성현 최종단위테스트자동화지원도구 임성현 최종
단위테스트자동화지원도구 임성현 최종
guest7178884
 
xUnitTestPattern/chapter16
xUnitTestPattern/chapter16xUnitTestPattern/chapter16
xUnitTestPattern/chapter16
suitzero
 
xUnitTestPattern/chapter17
xUnitTestPattern/chapter17xUnitTestPattern/chapter17
xUnitTestPattern/chapter17
Yoon Hee Hwang
 
Effective unit testing ch3. 테스트더블
Effective unit testing   ch3. 테스트더블Effective unit testing   ch3. 테스트더블
Effective unit testing ch3. 테스트더블
YongEun Choi
 

What's hot (20)

C++과 TDD
C++과 TDDC++과 TDD
C++과 TDD
 
테스트 케이스와 SW 품질
테스트 케이스와 SW 품질테스트 케이스와 SW 품질
테스트 케이스와 SW 품질
 
X unittestpattern 1장_아꿈사
X unittestpattern 1장_아꿈사X unittestpattern 1장_아꿈사
X unittestpattern 1장_아꿈사
 
단위테스트자동화지원도구 임성현 최종
단위테스트자동화지원도구 임성현 최종단위테스트자동화지원도구 임성현 최종
단위테스트자동화지원도구 임성현 최종
 
xUnitTestPattern/chapter16
xUnitTestPattern/chapter16xUnitTestPattern/chapter16
xUnitTestPattern/chapter16
 
xUnitTestPattern/chapter17
xUnitTestPattern/chapter17xUnitTestPattern/chapter17
xUnitTestPattern/chapter17
 
짝 테스트(Pair Testing) 소개와 사례
짝 테스트(Pair Testing) 소개와 사례짝 테스트(Pair Testing) 소개와 사례
짝 테스트(Pair Testing) 소개와 사례
 
테스터가 말하는 테스트코드 작성 팁과 사례
테스터가 말하는 테스트코드 작성 팁과 사례테스터가 말하는 테스트코드 작성 팁과 사례
테스터가 말하는 테스트코드 작성 팁과 사례
 
오버라이딩을 사용한 테스트 시의 설정 처리
오버라이딩을 사용한 테스트 시의 설정 처리오버라이딩을 사용한 테스트 시의 설정 처리
오버라이딩을 사용한 테스트 시의 설정 처리
 
testing for agile?, agile for testing
testing for agile?, agile for testingtesting for agile?, agile for testing
testing for agile?, agile for testing
 
행복한 개발을 위한_테스트_케이스
행복한 개발을 위한_테스트_케이스행복한 개발을 위한_테스트_케이스
행복한 개발을 위한_테스트_케이스
 
클린코드와 테스트코드
클린코드와 테스트코드클린코드와 테스트코드
클린코드와 테스트코드
 
예외처리가이드
예외처리가이드예외처리가이드
예외처리가이드
 
Frontend test-environment 이해하기
Frontend test-environment 이해하기Frontend test-environment 이해하기
Frontend test-environment 이해하기
 
Robot framework 을 이용한 기능 테스트 자동화
Robot framework 을 이용한 기능 테스트 자동화Robot framework 을 이용한 기능 테스트 자동화
Robot framework 을 이용한 기능 테스트 자동화
 
katalon studio 툴을 이용한 GUI 테스트 자동화 가이드
katalon studio 툴을 이용한 GUI 테스트 자동화 가이드katalon studio 툴을 이용한 GUI 테스트 자동화 가이드
katalon studio 툴을 이용한 GUI 테스트 자동화 가이드
 
테스트자동화 성공전략
테스트자동화 성공전략테스트자동화 성공전략
테스트자동화 성공전략
 
Effective unit testing ch3. 테스트더블
Effective unit testing   ch3. 테스트더블Effective unit testing   ch3. 테스트더블
Effective unit testing ch3. 테스트더블
 
Ui test 자동화하기 - Selenium + Jenkins
Ui test 자동화하기 - Selenium + JenkinsUi test 자동화하기 - Selenium + Jenkins
Ui test 자동화하기 - Selenium + Jenkins
 
Istqb 4-테스트설계기법-2015-1
Istqb 4-테스트설계기법-2015-1Istqb 4-테스트설계기법-2015-1
Istqb 4-테스트설계기법-2015-1
 

Viewers also liked

Spin locks 추가 자료
Spin locks 추가 자료Spin locks 추가 자료
Spin locks 추가 자료
codevania
 
Texture bombing
Texture bombingTexture bombing
Texture bombing
codevania
 
Gstar gossip
Gstar gossipGstar gossip
Gstar gossip
codevania
 
14 virtual memory
14 virtual memory14 virtual memory
14 virtual memory
codevania
 
Deferred rendering transparency
Deferred rendering transparencyDeferred rendering transparency
Deferred rendering transparency
codevania
 
3장 자동적으로 움직이는 게임 에이전트 생성법
3장 자동적으로 움직이는 게임 에이전트 생성법3장 자동적으로 움직이는 게임 에이전트 생성법
3장 자동적으로 움직이는 게임 에이전트 생성법
codevania
 

Viewers also liked (9)

Spin locks 추가 자료
Spin locks 추가 자료Spin locks 추가 자료
Spin locks 추가 자료
 
Taocp 2_4
Taocp  2_4Taocp  2_4
Taocp 2_4
 
Taocp 2_3_1
Taocp  2_3_1Taocp  2_3_1
Taocp 2_3_1
 
Texture bombing
Texture bombingTexture bombing
Texture bombing
 
Taocp 1 2-2
Taocp 1 2-2Taocp 1 2-2
Taocp 1 2-2
 
Gstar gossip
Gstar gossipGstar gossip
Gstar gossip
 
14 virtual memory
14 virtual memory14 virtual memory
14 virtual memory
 
Deferred rendering transparency
Deferred rendering transparencyDeferred rendering transparency
Deferred rendering transparency
 
3장 자동적으로 움직이는 게임 에이전트 생성법
3장 자동적으로 움직이는 게임 에이전트 생성법3장 자동적으로 움직이는 게임 에이전트 생성법
3장 자동적으로 움직이는 게임 에이전트 생성법
 

Similar to 테스트 자동화의 원칙

Devon 2011-b-5 효과적인 레거시 코드 다루기
Devon 2011-b-5 효과적인 레거시 코드 다루기Devon 2011-b-5 효과적인 레거시 코드 다루기
Devon 2011-b-5 효과적인 레거시 코드 다루기
Daum DNA
 
xUnitTestPattern/chapter3
xUnitTestPattern/chapter3xUnitTestPattern/chapter3
xUnitTestPattern/chapter3
수윤 장
 

Similar to 테스트 자동화의 원칙 (20)

Clean code chapter9
Clean code chapter9Clean code chapter9
Clean code chapter9
 
Effective Unit Testing
Effective Unit TestingEffective Unit Testing
Effective Unit Testing
 
[H3 2012] 행복한 개발을 위한 테스트 케이스
[H3 2012] 행복한 개발을 위한 테스트 케이스[H3 2012] 행복한 개발을 위한 테스트 케이스
[H3 2012] 행복한 개발을 위한 테스트 케이스
 
Tdd
TddTdd
Tdd
 
Devon 2011-b-5 효과적인 레거시 코드 다루기
Devon 2011-b-5 효과적인 레거시 코드 다루기Devon 2011-b-5 효과적인 레거시 코드 다루기
Devon 2011-b-5 효과적인 레거시 코드 다루기
 
애자일과 애자일 테스트 소개 (테스트기본교육 3장 2절)
애자일과 애자일 테스트 소개 (테스트기본교육 3장 2절)애자일과 애자일 테스트 소개 (테스트기본교육 3장 2절)
애자일과 애자일 테스트 소개 (테스트기본교육 3장 2절)
 
프로젝트 Xxx에 적용하고 싶은 개발방법
프로젝트 Xxx에 적용하고 싶은 개발방법프로젝트 Xxx에 적용하고 싶은 개발방법
프로젝트 Xxx에 적용하고 싶은 개발방법
 
xUnitTestPattern/chapter3
xUnitTestPattern/chapter3xUnitTestPattern/chapter3
xUnitTestPattern/chapter3
 
Istqb 2-소프트웨어수명주기와테스팅-2015
Istqb 2-소프트웨어수명주기와테스팅-2015Istqb 2-소프트웨어수명주기와테스팅-2015
Istqb 2-소프트웨어수명주기와테스팅-2015
 
발표자료 1인qa로살아남는6가지방법
발표자료 1인qa로살아남는6가지방법발표자료 1인qa로살아남는6가지방법
발표자료 1인qa로살아남는6가지방법
 
TDD or TFD
TDD or TFDTDD or TFD
TDD or TFD
 
Android unit testing
Android unit testingAndroid unit testing
Android unit testing
 
SW 테스트 프로세스& 메뉴얼_V 모델
SW 테스트 프로세스& 메뉴얼_V 모델SW 테스트 프로세스& 메뉴얼_V 모델
SW 테스트 프로세스& 메뉴얼_V 모델
 
개발이 테스트를 만났을 때(Shift left testing)
개발이 테스트를 만났을 때(Shift left testing)개발이 테스트를 만났을 때(Shift left testing)
개발이 테스트를 만났을 때(Shift left testing)
 
테스트 계획할 때에 필요한 질문들 (The inquiry method for test planning)
테스트 계획할 때에 필요한 질문들 (The inquiry method for test planning)테스트 계획할 때에 필요한 질문들 (The inquiry method for test planning)
테스트 계획할 때에 필요한 질문들 (The inquiry method for test planning)
 
Web Application Testing Patterns
Web Application Testing PatternsWeb Application Testing Patterns
Web Application Testing Patterns
 
回国去哪买毕业证办迪肯大学毕业证Deakin毕业证书【Q微202-661-4433】 Deakin售澳洲毕业证原版新毕业证书出售各国毕业证买澳洲毕业证的价...
回国去哪买毕业证办迪肯大学毕业证Deakin毕业证书【Q微202-661-4433】 Deakin售澳洲毕业证原版新毕业证书出售各国毕业证买澳洲毕业证的价...回国去哪买毕业证办迪肯大学毕业证Deakin毕业证书【Q微202-661-4433】 Deakin售澳洲毕业证原版新毕业证书出售各国毕业证买澳洲毕业证的价...
回国去哪买毕业证办迪肯大学毕业证Deakin毕业证书【Q微202-661-4433】 Deakin售澳洲毕业证原版新毕业证书出售各国毕业证买澳洲毕业证的价...
 
[기본과정] 코드 테스트와 커버리지 기본 교육(개념)
[기본과정] 코드 테스트와 커버리지 기본 교육(개념)[기본과정] 코드 테스트와 커버리지 기본 교육(개념)
[기본과정] 코드 테스트와 커버리지 기본 교육(개념)
 
Java 유지보수 가능한 개발 원칙
Java 유지보수 가능한 개발 원칙Java 유지보수 가능한 개발 원칙
Java 유지보수 가능한 개발 원칙
 
유지보수 가능한 개발 원칙
유지보수 가능한 개발 원칙유지보수 가능한 개발 원칙
유지보수 가능한 개발 원칙
 

More from codevania (7)

Memory corruption stack
Memory corruption stackMemory corruption stack
Memory corruption stack
 
Mathematical Structures for CS [Chapter3]456
Mathematical Structures for CS [Chapter3]456Mathematical Structures for CS [Chapter3]456
Mathematical Structures for CS [Chapter3]456
 
Optimizing The Content Pipeline
Optimizing The Content PipelineOptimizing The Content Pipeline
Optimizing The Content Pipeline
 
시간 있으면 설계나 합시다
시간 있으면 설계나 합시다시간 있으면 설계나 합시다
시간 있으면 설계나 합시다
 
Memory Corruption Heap
Memory Corruption HeapMemory Corruption Heap
Memory Corruption Heap
 
Generic Refraction Simulation
Generic Refraction SimulationGeneric Refraction Simulation
Generic Refraction Simulation
 
Interactive Refractions And Caustics Using Image Space Techniques
Interactive Refractions And Caustics Using Image Space TechniquesInteractive Refractions And Caustics Using Image Space Techniques
Interactive Refractions And Caustics Using Image Space Techniques
 

테스트 자동화의 원칙

  • 1. 테스트 자동화의 원칙 김태우 [email_address] 아꿈사 http://café.naver.com/architect1
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.

Editor's Notes

  1. Concise   As simple as possible and no simpler. Self Checking Test reports its own results; needs no human interpretation. Repeatable Test can be run many times in a row without human intervention. Robust Test produces same result now and forever. Tests are not affected by changes in the external environment. Sufficient Tests verify all the requirements of the software being tested. Necessary Everything in each test contributes to the specification of desired behavior. Clear Every statement is easy to understand Efficient Tests run in a reasonable amount of time. Specific Each test failure points to a specific piece of broken functionality;  unit test failures provide "defect triangulation" Independent Each test can be run by itself or in a suite with an arbitrary set of other tests in any order. Maintainable Tests should be easy to understand and modify and extend. Traceable To and from the code it tests and to and from the requirements.
  2. 테스트 별로 하나의 조건만 검증하라는 원칙에 있어 반드시 하나의 단언문만 있어야 한다고 주장하고 싶진 않다 .