SlideShare a Scribd company logo
테스트 자동화와 TDD 
박경훈
진행순서 
 자동화 된 테스트가 없다면? 
 자동화 된 테스트의 정의 
 TDD의 소개
자동화 된 테스트가 없다면?
Fact1. 소프트웨어의 소스는 복잡하게 연결 
되어 있다.
작은 한 부분이 수정된다면?
모든 기능을 다시 테스트 해야 한다.
Fact2. 소스코드는 시간이 흐르면 녹이 슨다.
테스트 자동화와 TDD(테스트 주도 개발방법론)
끊임없이 OOD(Object Oriented 
Design)와 패턴 구문들을 
적용해가며 리펙토링 해야 한다.
하지만 리펙토링이 어려운 이유
모든 기능을 다시 테스트 해야 한다.
자동화 된 테스트가 없다면? 
 자체 버그 검출 능력 저하 
- 모든 기능을 테스트 하기 어려움 
 소스 코드의 품질 저하 
- 어디서 버그가 생길지 모르기 때문에 잘못 
된 코드도 고치지 않으려 하는 현상 
 자체 테스트 비용의 증가 
- 작은 수정에도 모든 기능을 다시 테스트 해 
야 되는 문제
자동화 된 테스트란?
자동화 된 테스트란? 
 모든 테스트 케이스를 코드 스크립트로 변환 
한 집합체
테스트 자동화와 TDD(테스트 주도 개발방법론)
통합 테스팅의 예
3rd party testing tools 
 http://www.youtube.com/watch?v=qsh4zWa 
6bE8 
 http://www.youtube.com/watch?v=4TGkGQo 
nmy4#t=64
누가 테스트 스크립트를 만드는가? 
Software Engineers 
QA Engineers 
Software Architect
개발 프로세스 
요구사항 
Software & QA Engineer 
테스트 케이스 
수립 
- 공백입력 하면 오류 메시지 띄우기 
- 사용자가 여러 개의 비디오를 옮길 수 
있게 
개발 
통합 테스트 
코드 작성 
QA Engineer Software Engineer
TDD
TDD란 무엇인가? 
 Test-Driven Development 
- 요구사항의 테스트 요건을 먼저 고려 
 Test-First Development 
- 개발 전 테스트 코드를 먼저 작성하여 개발 
 1999년 XP라는 애자일 기반의 개발 방법론과 
함께 소개 됨
TDD란 무엇인가? 
기존 개발방식 
TDD의 개발방식
TDD의 장점 
 높은 소스코드 품질 
- MS와 IBM사의 조사 결과 
TDD 약 15~35% 정도의 개발시간 증가 결 
함율(버그)은 약 40~90% 정도 줄어듬 
- http://research.microsoft.com/en-us/ 
groups/ese/nagappan_tdd.pdf 
 재설계 시간의 절감 
 손쉬운 테스트 근거 산출 및 문서화 (test 
coverage, performance) 
 디버깅 시간의 절감
TDD의 단점 
 all about 개발 생산성!
1부터 10까지의 수를 출력하는 프로그램 만들기! 
- 단, 3의 배수에서는 숫자대신 “HOONS”를 출력 
- 5의 배수에서는 “JAEDAM”을 출력
통합테스트와 유닛테스트 
Dependency Injection 
= AOP
편의점 카운터에서 물건을 스캔한 뒤에 고객에게 
최종 가격을 알려주는 프로그램이 필요합니다. 
물건들의 가격은 데이터 베이스에 있으며, 한가지 
특별한 것은 현재 모든 물건을 2개 사면 하나 더 주 
는 이벤트를 하고 있기 때문에 이 로직을 반영해주 
세요.
비지니스 레이어 => 할인점검 유닛테스트 
데이터 레이어 => 가격정보 
유닛테스트 
통합테스트
패턴 문화 
Test Automation /TDD 
AOP 
Repository Pattern 
MVC, MVP, MVVM 
Dependency Injection 
SOLID, DRY, KISS 
ORM - Entity 
Agile – XP/Scrum 
CI 
Pair programing 
Git – code review 
BDD/DDD 
Daily Standup 
User Story & Estimation
결과 중심적 개발 프로세스 
Project Manager 
Software Engineer 
Tester 
요구사항 
결과물 
개발
품질 중심적 개발 프로세스 
① 요구사항 
Project Manager 
② 분석/설계 전달 
Architect / 
Lead developer 
개발 
Software Engineers 
결과물 
③ 코드리뷰 요청 
(pull request) 
Architect / 
Lead developer 
Tester 
테스트 요청 
결과물 
피드백 
코드 리뷰
Q&A
테스트 자동화와 TDD(테스트 주도 개발방법론)

More Related Content

PDF
테스트자동화 성공전략
PDF
Istqb 5-테스트관리-2015-배포
PPTX
Software Testing Basics
PPTX
Istqb 1-소프트웨어테스팅기초
PDF
소프트웨어 테스팅
PPTX
Intro to Manual Testing
PDF
Exploratory test
PDF
Types of software testing
테스트자동화 성공전략
Istqb 5-테스트관리-2015-배포
Software Testing Basics
Istqb 1-소프트웨어테스팅기초
소프트웨어 테스팅
Intro to Manual Testing
Exploratory test
Types of software testing

What's hot (20)

PPTX
Software testing
PDF
Test automation - What? Why? How?
PPT
Automatisation des tests
PPTX
Unit Testing
DOC
Top 5 product support engineer interview questions with answers
PPTX
Software testing
PPTX
Software Testing
PPTX
테스트자동화와 TDD
PDF
Software Testing
PPT
Software Testing Life Cycle
PPTX
Types of testing
PDF
Istqb 2-소프트웨어수명주기와테스팅-2015
PDF
Bug reporting
PPT
Software Verification & Validation
PDF
Smoke Testing
ODP
Defects in software testing
PDF
Istqb 4-테스트설계기법-2015-2-1-배포
PPTX
Automatisation des tests - objectifs et concepts - partie 1
PPT
Testing fundamentals
PPT
Types of Software Testing
Software testing
Test automation - What? Why? How?
Automatisation des tests
Unit Testing
Top 5 product support engineer interview questions with answers
Software testing
Software Testing
테스트자동화와 TDD
Software Testing
Software Testing Life Cycle
Types of testing
Istqb 2-소프트웨어수명주기와테스팅-2015
Bug reporting
Software Verification & Validation
Smoke Testing
Defects in software testing
Istqb 4-테스트설계기법-2015-2-1-배포
Automatisation des tests - objectifs et concepts - partie 1
Testing fundamentals
Types of Software Testing

Viewers also liked (6)

PDF
테스트 가능한 소프트웨어 설계와 TDD작성 패턴 (Testable design and TDD)
PDF
[2014널리세미나] 접근성과 사용성, 기획자가 챙겨야 하는 이유
PPTX
IoT 개발자를 위한 Embedded C에서 TDD를 해보자
PDF
애자일의 모든것
PDF
[2014널리세미나] 시맨틱한 HTML5 마크업 구조 설계, 어떻게 할까?
PDF
Tdd 왜 배우기 어려운가
테스트 가능한 소프트웨어 설계와 TDD작성 패턴 (Testable design and TDD)
[2014널리세미나] 접근성과 사용성, 기획자가 챙겨야 하는 이유
IoT 개발자를 위한 Embedded C에서 TDD를 해보자
애자일의 모든것
[2014널리세미나] 시맨틱한 HTML5 마크업 구조 설계, 어떻게 할까?
Tdd 왜 배우기 어려운가

Similar to 테스트 자동화와 TDD(테스트 주도 개발방법론) (20)

PDF
애자일과 애자일 테스트 소개 (테스트기본교육 3장 2절)
PPTX
PDF
발표자료 1인qa로살아남는6가지방법
PDF
엔지니어의 학습, 그리고 테스트 코드
PDF
KGC 2014, 'Software Enginner in Test' in Game Development (Bluehole Studio)
PPTX
TDD: Test Driven Development 첫번째 이야기
PDF
[오픈소스컨설팅]소프트웨어 개발 준비 과정
PDF
개발이 테스트를 만났을 때(Shift left testing)
PPTX
C++과 TDD
PDF
2024.09.24 발표 자료 : 테스트를 해야 하는 이유
PPTX
애자일 하라
PPTX
Tdd ver.2
PPTX
Tr#3 5) 임성현 책임
PPTX
단위테스트자동화지원도구 임성현 최종
PDF
더 나은 SW프로젝트를 위해
PDF
Testing & refactoring
PDF
투비웨어 AgitarOne Junit 단위테스트자동화 솔루션소개_201608_v1.2
PDF
오픈 스펙을 대상으로 한 테스트설계사례
PDF
엔지니어링관점에서 테스트 개선방안 질의 응답
PPT
개발 생산성 향상 기법 V1.2
애자일과 애자일 테스트 소개 (테스트기본교육 3장 2절)
발표자료 1인qa로살아남는6가지방법
엔지니어의 학습, 그리고 테스트 코드
KGC 2014, 'Software Enginner in Test' in Game Development (Bluehole Studio)
TDD: Test Driven Development 첫번째 이야기
[오픈소스컨설팅]소프트웨어 개발 준비 과정
개발이 테스트를 만났을 때(Shift left testing)
C++과 TDD
2024.09.24 발표 자료 : 테스트를 해야 하는 이유
애자일 하라
Tdd ver.2
Tr#3 5) 임성현 책임
단위테스트자동화지원도구 임성현 최종
더 나은 SW프로젝트를 위해
Testing & refactoring
투비웨어 AgitarOne Junit 단위테스트자동화 솔루션소개_201608_v1.2
오픈 스펙을 대상으로 한 테스트설계사례
엔지니어링관점에서 테스트 개선방안 질의 응답
개발 생산성 향상 기법 V1.2

More from KH Park (박경훈) (8)

PDF
Xp anti-practice
PDF
Approximate Indexing: Gapped Suffix Array
PDF
Hoons닷넷 좌충우돌 10년, 그리고 새로운 패러다임
PDF
윈도우 8의 새로운 컨트롤과 개발시 알아야 할 점들
PDF
Windows8 매트로스타일 앱개발 개요
PPTX
3일차-닷넷 분산 기술의 이해 (인피니트 강의자료)
PPTX
창업, 그놈 (T아카데미 강의자료)
PPTX
스마트앱 글로벌 진출전략
Xp anti-practice
Approximate Indexing: Gapped Suffix Array
Hoons닷넷 좌충우돌 10년, 그리고 새로운 패러다임
윈도우 8의 새로운 컨트롤과 개발시 알아야 할 점들
Windows8 매트로스타일 앱개발 개요
3일차-닷넷 분산 기술의 이해 (인피니트 강의자료)
창업, 그놈 (T아카데미 강의자료)
스마트앱 글로벌 진출전략

테스트 자동화와 TDD(테스트 주도 개발방법론)