SlideShare a Scribd company logo
1 of 15
Download to read offline
Flask	
  Tes)ng	
  
2013-­‐07-­‐16	
  
성대현(DaeHyun	
  Sung)	
  
시작하기 전에	
  
•  Something	
  that	
  is	
  untested	
  is	
  broken	
  
•  테스트하지 않은 것은 고장난다.	
  
TDD	
  
•  테스트주도 개발 Test-­‐Driven	
  Development	
  
•  프로그램을 작성하기 전에 테스트 먼저 하라	
  
Test	
  the	
  program	
  before	
  you	
  write	
  it	
  
•  잘동작하는 깔끔한 코드	
  
Clean	
  code	
  that	
  works	
  
•  질문è응답è정제è반복	
  
AskèRespondèRefineèRepeat	
  
xUnit	
  
•  단위 테스트를 하는데 도움을 주는 프레임워크	
  
xUnit 이름	
   관련언어	
   홈페이지	
  
JUnit	
   Java	
   hOp://www.junit.org/	
  
CUnit	
   C	
   hOp://cunit.sourceforge.net/	
  	
  
CppUnit	
   C++	
   hOp:/sourceforge.net/projects/cppunit	
  
csUnit	
   C#	
   hOp://csunit.org/	
  	
  
Test::Unit	
   Ruby	
   hOp://ruby-­‐doc.org/stdlib/libdoc/test/unit/rdoc/
classes/Test/Unit.html	
  	
  
uniOest	
   Python	
   hOp://docs.python.org/2/library/uniOest.html	
  	
  
Unit	
  TestCase	
  수행 순서	
  
setUp()	
   testXXX()	
   teardown()	
  
테스트 시작	
   테스트 종료	
  
Implemented	
  Code(구현된 코드)	
  
Unit	
  Test(단위 테스트) 코드	
  
Unit	
  Test(단위 테스트) 실행결과	
  
•  OK	
  
– 테스트 성공!	
  
•  FAILED	
  
– Failures	
  
•  예상한 값이 나오지 않아 테스트가 실패.	
  	
  
– Errors	
  
•  테스트를 하다 에러발생	
  
Unit	
  Test(단위 테스트)	
  실행결과	
  
OK	
  
Failures	
  
Unit	
  Test(단위 테스트) 실행결과	
  
Errors	
  
Flask	
  applica)on	
  test	
  
•  Python에서 기본 제공하는 uniOest	
  module	
  사
용	
  
•  Source	
  code	
  
hOps://github.com/mitsuhiko/flask/blob/
master/examples/flaskr/flaskr_tests.py	
  	
  
•  Example	
  code	
  실행	
  
•  테스트코드처럼 작동되는지 확인	
  
Run	
  Flask	
  applica)on	
  	
  
다른 테스팅 기법	
  
•  Flask	
  API에서 제공되는 Applica)on	
  Object	
  API
와 Test	
  Client	
  API 확인 	
  
–  hOp://flask.pocoo.org/docs/api/#applica)on-­‐object	
  
–  예제)	
  test_request_context()함수를 사용	
  
Flask-­‐Tes)ng	
  
•  hOp://pythonhosted.org/Flask-­‐Tes)ng/	
  	
  
•  Python의 uniOest 모듈에서 부족한 부분을 확장
하여 제공함.	
  
•  설치방법(2가지)	
  
1.  $	
  pip	
  install	
  Flask-­‐Tes)ng	
  
2.  $	
  git	
  clone	
  hOps://github.com/jarus/flask-­‐
tes)ng.git	
  
$	
  cd	
  flask-­‐tes)ng	
  
$	
  python	
  setup.py	
  develop	
  
관련 링크	
  
•  테스트 가능한 소프트웨어 설계와 TDD작성 패턴
(Testable	
  design	
  and	
  TDD)	
  
hOp://www.slideshare.net/doorOs/tdd-­‐testable-­‐
design-­‐and-­‐tdd	
  	
  
•  Flask	
  어플리케이션 테스트하기
hOp://kswa.codingstar.net:14705/html/tes)ng.html	
  	
  
•  Python	
  Unit	
  tes)ng	
  framework
hOp://docs.python.org/2/library/uniOest.html	
  	
  
•  Flask-­‐Tes)ng	
  hOp://pythonhosted.org/Flask-­‐Tes)ng/	
  	
  	
  

More Related Content

What's hot

2017 새싹교실 1교시
2017 새싹교실 1교시2017 새싹교실 1교시
2017 새싹교실 1교시Han Sung Kim
 
Django개발은 PyCharm에서
Django개발은 PyCharm에서Django개발은 PyCharm에서
Django개발은 PyCharm에서Kyoung Up Jung
 
Go로 새 프로젝트 시작하기
Go로 새 프로젝트 시작하기Go로 새 프로젝트 시작하기
Go로 새 프로젝트 시작하기Joonsung Lee
 
나의 오픈소스 사용기
나의 오픈소스 사용기나의 오픈소스 사용기
나의 오픈소스 사용기주호 강
 
[H3 2012] 오픈소스로 개발 실력 쌓기
[H3 2012] 오픈소스로 개발 실력 쌓기[H3 2012] 오픈소스로 개발 실력 쌓기
[H3 2012] 오픈소스로 개발 실력 쌓기KTH, 케이티하이텔
 
쉽게 쓰여진 Django
쉽게 쓰여진 Django쉽게 쓰여진 Django
쉽게 쓰여진 DjangoTaehoon Kim
 
알파희 - PyPy/RPython으로 20배 빨라지는 아희 JIT 인터프리터
알파희 - PyPy/RPython으로 20배 빨라지는 아희 JIT 인터프리터알파희 - PyPy/RPython으로 20배 빨라지는 아희 JIT 인터프리터
알파희 - PyPy/RPython으로 20배 빨라지는 아희 JIT 인터프리터YunWon Jeong
 
[NEXT] Android 개발 경험 프로젝트 4일차 (Networking)
[NEXT] Android 개발 경험 프로젝트 4일차 (Networking)[NEXT] Android 개발 경험 프로젝트 4일차 (Networking)
[NEXT] Android 개발 경험 프로젝트 4일차 (Networking)YoungSu Son
 
파이썬(Python) 소개
파이썬(Python) 소개파이썬(Python) 소개
파이썬(Python) 소개Jin wook
 
파이썬을 만난지 100일♥ 째
파이썬을 만난지 100일♥ 째파이썬을 만난지 100일♥ 째
파이썬을 만난지 100일♥ 째혜선 최
 
[HYSS 2016] 쉽고 빠르게 시작하는 Volatility Plugin 개발
[HYSS 2016] 쉽고 빠르게 시작하는 Volatility Plugin 개발[HYSS 2016] 쉽고 빠르게 시작하는 Volatility Plugin 개발
[HYSS 2016] 쉽고 빠르게 시작하는 Volatility Plugin 개발동현 김
 
Open Source 그리고 git과 github, code review
Open Source 그리고 git과 github, code reviewOpen Source 그리고 git과 github, code review
Open Source 그리고 git과 github, code reviewMinsuk Lee
 
Sublime Text 3 for python and django
Sublime Text 3 for python and djangoSublime Text 3 for python and django
Sublime Text 3 for python and djangoraccoony
 
오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)
오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)
오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)Jaewon Choi
 
XECon2015 :: [3-2] 오승훈 - XE3 플러그인 제작 소개
XECon2015 :: [3-2] 오승훈 - XE3 플러그인 제작 소개XECon2015 :: [3-2] 오승훈 - XE3 플러그인 제작 소개
XECon2015 :: [3-2] 오승훈 - XE3 플러그인 제작 소개XpressEngine
 
대표적인 오픈소스 프로젝트
대표적인 오픈소스 프로젝트대표적인 오픈소스 프로젝트
대표적인 오픈소스 프로젝트licubeclub
 
Ui test 자동화하기 - Selenium + Jenkins
Ui test 자동화하기 - Selenium + JenkinsUi test 자동화하기 - Selenium + Jenkins
Ui test 자동화하기 - Selenium + JenkinsChang Hak Yeon
 
휴봇-슬랙 OSX 설치
휴봇-슬랙 OSX 설치휴봇-슬랙 OSX 설치
휴봇-슬랙 OSX 설치Juneyoung Oh
 

What's hot (19)

2017 새싹교실 1교시
2017 새싹교실 1교시2017 새싹교실 1교시
2017 새싹교실 1교시
 
Django개발은 PyCharm에서
Django개발은 PyCharm에서Django개발은 PyCharm에서
Django개발은 PyCharm에서
 
Go로 새 프로젝트 시작하기
Go로 새 프로젝트 시작하기Go로 새 프로젝트 시작하기
Go로 새 프로젝트 시작하기
 
나의 오픈소스 사용기
나의 오픈소스 사용기나의 오픈소스 사용기
나의 오픈소스 사용기
 
[H3 2012] 오픈소스로 개발 실력 쌓기
[H3 2012] 오픈소스로 개발 실력 쌓기[H3 2012] 오픈소스로 개발 실력 쌓기
[H3 2012] 오픈소스로 개발 실력 쌓기
 
Why use git
Why use gitWhy use git
Why use git
 
쉽게 쓰여진 Django
쉽게 쓰여진 Django쉽게 쓰여진 Django
쉽게 쓰여진 Django
 
알파희 - PyPy/RPython으로 20배 빨라지는 아희 JIT 인터프리터
알파희 - PyPy/RPython으로 20배 빨라지는 아희 JIT 인터프리터알파희 - PyPy/RPython으로 20배 빨라지는 아희 JIT 인터프리터
알파희 - PyPy/RPython으로 20배 빨라지는 아희 JIT 인터프리터
 
[NEXT] Android 개발 경험 프로젝트 4일차 (Networking)
[NEXT] Android 개발 경험 프로젝트 4일차 (Networking)[NEXT] Android 개발 경험 프로젝트 4일차 (Networking)
[NEXT] Android 개발 경험 프로젝트 4일차 (Networking)
 
파이썬(Python) 소개
파이썬(Python) 소개파이썬(Python) 소개
파이썬(Python) 소개
 
파이썬을 만난지 100일♥ 째
파이썬을 만난지 100일♥ 째파이썬을 만난지 100일♥ 째
파이썬을 만난지 100일♥ 째
 
[HYSS 2016] 쉽고 빠르게 시작하는 Volatility Plugin 개발
[HYSS 2016] 쉽고 빠르게 시작하는 Volatility Plugin 개발[HYSS 2016] 쉽고 빠르게 시작하는 Volatility Plugin 개발
[HYSS 2016] 쉽고 빠르게 시작하는 Volatility Plugin 개발
 
Open Source 그리고 git과 github, code review
Open Source 그리고 git과 github, code reviewOpen Source 그리고 git과 github, code review
Open Source 그리고 git과 github, code review
 
Sublime Text 3 for python and django
Sublime Text 3 for python and djangoSublime Text 3 for python and django
Sublime Text 3 for python and django
 
오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)
오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)
오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)
 
XECon2015 :: [3-2] 오승훈 - XE3 플러그인 제작 소개
XECon2015 :: [3-2] 오승훈 - XE3 플러그인 제작 소개XECon2015 :: [3-2] 오승훈 - XE3 플러그인 제작 소개
XECon2015 :: [3-2] 오승훈 - XE3 플러그인 제작 소개
 
대표적인 오픈소스 프로젝트
대표적인 오픈소스 프로젝트대표적인 오픈소스 프로젝트
대표적인 오픈소스 프로젝트
 
Ui test 자동화하기 - Selenium + Jenkins
Ui test 자동화하기 - Selenium + JenkinsUi test 자동화하기 - Selenium + Jenkins
Ui test 자동화하기 - Selenium + Jenkins
 
휴봇-슬랙 OSX 설치
휴봇-슬랙 OSX 설치휴봇-슬랙 OSX 설치
휴봇-슬랙 OSX 설치
 

Viewers also liked

Event Driven Architecture & Complex Event Processing
Event Driven Architecture & Complex Event ProcessingEvent Driven Architecture & Complex Event Processing
Event Driven Architecture & Complex Event Processinglogus2k
 
TDD em C++
TDD em C++TDD em C++
TDD em C++thiagodp
 
Belajar koding c#
Belajar koding c#Belajar koding c#
Belajar koding c#Ali Ikhsan
 
Generative and Meta-Programming - Modern C++ Design for Parallel Computing
Generative and Meta-Programming - Modern C++ Design for Parallel ComputingGenerative and Meta-Programming - Modern C++ Design for Parallel Computing
Generative and Meta-Programming - Modern C++ Design for Parallel ComputingJoel Falcou
 
Unit testing, UI testing and Test Driven Development in Visual Studio 2012
Unit testing, UI testing and Test Driven Development in Visual Studio 2012Unit testing, UI testing and Test Driven Development in Visual Studio 2012
Unit testing, UI testing and Test Driven Development in Visual Studio 2012Jacinto Limjap
 
Seri Belajar Mandiri - Pemrograman C# Untuk Pemula
Seri Belajar Mandiri - Pemrograman C# Untuk PemulaSeri Belajar Mandiri - Pemrograman C# Untuk Pemula
Seri Belajar Mandiri - Pemrograman C# Untuk PemulaAgus Kurniawan
 

Viewers also liked (7)

Event Driven Architecture & Complex Event Processing
Event Driven Architecture & Complex Event ProcessingEvent Driven Architecture & Complex Event Processing
Event Driven Architecture & Complex Event Processing
 
TDD em C++
TDD em C++TDD em C++
TDD em C++
 
Belajar koding c#
Belajar koding c#Belajar koding c#
Belajar koding c#
 
Generative and Meta-Programming - Modern C++ Design for Parallel Computing
Generative and Meta-Programming - Modern C++ Design for Parallel ComputingGenerative and Meta-Programming - Modern C++ Design for Parallel Computing
Generative and Meta-Programming - Modern C++ Design for Parallel Computing
 
Unit testing, UI testing and Test Driven Development in Visual Studio 2012
Unit testing, UI testing and Test Driven Development in Visual Studio 2012Unit testing, UI testing and Test Driven Development in Visual Studio 2012
Unit testing, UI testing and Test Driven Development in Visual Studio 2012
 
Seri Belajar Mandiri - Pemrograman C# Untuk Pemula
Seri Belajar Mandiri - Pemrograman C# Untuk PemulaSeri Belajar Mandiri - Pemrograman C# Untuk Pemula
Seri Belajar Mandiri - Pemrograman C# Untuk Pemula
 
Ace tutorial c
Ace tutorial cAce tutorial c
Ace tutorial c
 

Similar to [2013.07.16] PythonKorea강남스터디 발표 - flask testing

Backend Master | 3.2.1 Test - JUnit
Backend Master | 3.2.1 Test - JUnitBackend Master | 3.2.1 Test - JUnit
Backend Master | 3.2.1 Test - JUnitKyunghun Jeon
 
Sonarqube 20160509
Sonarqube 20160509Sonarqube 20160509
Sonarqube 20160509영석 조
 
AngularJS In Production
AngularJS In ProductionAngularJS In Production
AngularJS In ProductionMooYeol Lee
 
KGC 2014, 'Software Enginner in Test' in Game Development (Bluehole Studio)
KGC 2014, 'Software Enginner in Test' in Game Development (Bluehole Studio)KGC 2014, 'Software Enginner in Test' in Game Development (Bluehole Studio)
KGC 2014, 'Software Enginner in Test' in Game Development (Bluehole Studio)Sungmin Kim
 
Robot framework 을 이용한 기능 테스트 자동화
Robot framework 을 이용한 기능 테스트 자동화Robot framework 을 이용한 기능 테스트 자동화
Robot framework 을 이용한 기능 테스트 자동화Jaehoon Oh
 
practical perf testing - d2startup
practical perf testing - d2startuppractical perf testing - d2startup
practical perf testing - d2startupJunHo Yoon
 
청강대 특강 - 프로젝트 제대로 해보기
청강대 특강 - 프로젝트 제대로 해보기청강대 특강 - 프로젝트 제대로 해보기
청강대 특강 - 프로젝트 제대로 해보기Chris Ohk
 
C 언어 스터디 01 - 기초
C 언어 스터디 01 - 기초C 언어 스터디 01 - 기초
C 언어 스터디 01 - 기초Yu Yongwoo
 
2020년 5월 16일 개발 이야기 정리
2020년 5월 16일 개발 이야기 정리2020년 5월 16일 개발 이야기 정리
2020년 5월 16일 개발 이야기 정리Jay Park
 
GDB와 strace로 Hang 걸린 Python Process 원격 디버깅
GDB와 strace로 Hang 걸린 Python Process 원격 디버깅GDB와 strace로 Hang 걸린 Python Process 원격 디버깅
GDB와 strace로 Hang 걸린 Python Process 원격 디버깅Youngmin Koo
 
Eclipse RAP - Single Source
Eclipse RAP - Single SourceEclipse RAP - Single Source
Eclipse RAP - Single Sourcecho hyun jong
 
오픈 소스 사용 매뉴얼
오픈 소스 사용 매뉴얼오픈 소스 사용 매뉴얼
오픈 소스 사용 매뉴얼Kenu, GwangNam Heo
 
JUnit 지원 라이브러리 소개
JUnit 지원 라이브러리 소개JUnit 지원 라이브러리 소개
JUnit 지원 라이브러리 소개Hyunil Shin
 
20170813 django api server unit test and remote debugging
20170813 django api server unit test and remote debugging20170813 django api server unit test and remote debugging
20170813 django api server unit test and remote debuggingJongwon Han
 
[232] 성능어디까지쥐어짜봤니 송태웅
[232] 성능어디까지쥐어짜봤니 송태웅[232] 성능어디까지쥐어짜봤니 송태웅
[232] 성능어디까지쥐어짜봤니 송태웅NAVER D2
 
공간정보아카데미 - Day1 오픈소스개발 일반
공간정보아카데미 - Day1 오픈소스개발 일반공간정보아카데미 - Day1 오픈소스개발 일반
공간정보아카데미 - Day1 오픈소스개발 일반BJ Jang
 
구글테스트
구글테스트구글테스트
구글테스트진화 손
 
Python study 1강 (오픈소스컨설팅 내부 강의)
Python study 1강 (오픈소스컨설팅 내부 강의)Python study 1강 (오픈소스컨설팅 내부 강의)
Python study 1강 (오픈소스컨설팅 내부 강의)정명훈 Jerry Jeong
 

Similar to [2013.07.16] PythonKorea강남스터디 발표 - flask testing (20)

Backend Master | 3.2.1 Test - JUnit
Backend Master | 3.2.1 Test - JUnitBackend Master | 3.2.1 Test - JUnit
Backend Master | 3.2.1 Test - JUnit
 
Sonarqube 20160509
Sonarqube 20160509Sonarqube 20160509
Sonarqube 20160509
 
AngularJS In Production
AngularJS In ProductionAngularJS In Production
AngularJS In Production
 
KGC 2014, 'Software Enginner in Test' in Game Development (Bluehole Studio)
KGC 2014, 'Software Enginner in Test' in Game Development (Bluehole Studio)KGC 2014, 'Software Enginner in Test' in Game Development (Bluehole Studio)
KGC 2014, 'Software Enginner in Test' in Game Development (Bluehole Studio)
 
Robot framework 을 이용한 기능 테스트 자동화
Robot framework 을 이용한 기능 테스트 자동화Robot framework 을 이용한 기능 테스트 자동화
Robot framework 을 이용한 기능 테스트 자동화
 
practical perf testing - d2startup
practical perf testing - d2startuppractical perf testing - d2startup
practical perf testing - d2startup
 
청강대 특강 - 프로젝트 제대로 해보기
청강대 특강 - 프로젝트 제대로 해보기청강대 특강 - 프로젝트 제대로 해보기
청강대 특강 - 프로젝트 제대로 해보기
 
C 언어 스터디 01 - 기초
C 언어 스터디 01 - 기초C 언어 스터디 01 - 기초
C 언어 스터디 01 - 기초
 
2020년 5월 16일 개발 이야기 정리
2020년 5월 16일 개발 이야기 정리2020년 5월 16일 개발 이야기 정리
2020년 5월 16일 개발 이야기 정리
 
GDB와 strace로 Hang 걸린 Python Process 원격 디버깅
GDB와 strace로 Hang 걸린 Python Process 원격 디버깅GDB와 strace로 Hang 걸린 Python Process 원격 디버깅
GDB와 strace로 Hang 걸린 Python Process 원격 디버깅
 
Eclipse RAP - Single Source
Eclipse RAP - Single SourceEclipse RAP - Single Source
Eclipse RAP - Single Source
 
오픈 소스 사용 매뉴얼
오픈 소스 사용 매뉴얼오픈 소스 사용 매뉴얼
오픈 소스 사용 매뉴얼
 
JUnit 지원 라이브러리 소개
JUnit 지원 라이브러리 소개JUnit 지원 라이브러리 소개
JUnit 지원 라이브러리 소개
 
Node.js intro
Node.js introNode.js intro
Node.js intro
 
20170813 django api server unit test and remote debugging
20170813 django api server unit test and remote debugging20170813 django api server unit test and remote debugging
20170813 django api server unit test and remote debugging
 
[232] 성능어디까지쥐어짜봤니 송태웅
[232] 성능어디까지쥐어짜봤니 송태웅[232] 성능어디까지쥐어짜봤니 송태웅
[232] 성능어디까지쥐어짜봤니 송태웅
 
Node.js 기본
Node.js 기본Node.js 기본
Node.js 기본
 
공간정보아카데미 - Day1 오픈소스개발 일반
공간정보아카데미 - Day1 오픈소스개발 일반공간정보아카데미 - Day1 오픈소스개발 일반
공간정보아카데미 - Day1 오픈소스개발 일반
 
구글테스트
구글테스트구글테스트
구글테스트
 
Python study 1강 (오픈소스컨설팅 내부 강의)
Python study 1강 (오픈소스컨설팅 내부 강의)Python study 1강 (오픈소스컨설팅 내부 강의)
Python study 1강 (오픈소스컨설팅 내부 강의)
 

More from DaeHyun Sung

[LiboCon 2023] LibreOffice's current status and community in South Korea
[LiboCon 2023] LibreOffice's current status and community in South Korea[LiboCon 2023] LibreOffice's current status and community in South Korea
[LiboCon 2023] LibreOffice's current status and community in South KoreaDaeHyun Sung
 
LibreOffice Kaigi 2023 Keynote: my FLOSS contribution activities in Korean
LibreOffice Kaigi 2023 Keynote: my FLOSS contribution activities in KoreanLibreOffice Kaigi 2023 Keynote: my FLOSS contribution activities in Korean
LibreOffice Kaigi 2023 Keynote: my FLOSS contribution activities in KoreanDaeHyun Sung
 
[UbuCon Korea 2023] 한국의 문서 표준과 LibreOffice 한국어 커뮤니티 활동 소개
[UbuCon Korea 2023] 한국의 문서 표준과 LibreOffice 한국어 커뮤니티 활동 소개[UbuCon Korea 2023] 한국의 문서 표준과 LibreOffice 한국어 커뮤니티 활동 소개
[UbuCon Korea 2023] 한국의 문서 표준과 LibreOffice 한국어 커뮤니티 활동 소개DaeHyun Sung
 
[Ubucon Asia 2022] 리브레오피스의 현재와 앞으로 나아갈길
[Ubucon Asia 2022] 리브레오피스의 현재와 앞으로 나아갈길[Ubucon Asia 2022] 리브레오피스의 현재와 앞으로 나아갈길
[Ubucon Asia 2022] 리브레오피스의 현재와 앞으로 나아갈길DaeHyun Sung
 
[LibreOffice Conference 2022] State of Korea in Libreoffice and promote futu...
[LibreOffice Conference 2022]  State of Korea in Libreoffice and promote futu...[LibreOffice Conference 2022]  State of Korea in Libreoffice and promote futu...
[LibreOffice Conference 2022] State of Korea in Libreoffice and promote futu...DaeHyun Sung
 
[2021 오픈소스 컨트리뷰션 아카데미] #9 리브레오피스(LibreOffice) 컨트리뷰션 정리
[2021 오픈소스 컨트리뷰션 아카데미] #9 리브레오피스(LibreOffice) 컨트리뷰션 정리[2021 오픈소스 컨트리뷰션 아카데미] #9 리브레오피스(LibreOffice) 컨트리뷰션 정리
[2021 오픈소스 컨트리뷰션 아카데미] #9 리브레오피스(LibreOffice) 컨트리뷰션 정리DaeHyun Sung
 
[2021 오픈소스 컨트리뷰션 아카데미] #8 Hacktoberfest 소개 및 리브레오피스(LibreOffice) 소스코드 제출해보기
[2021 오픈소스 컨트리뷰션 아카데미] #8 Hacktoberfest 소개 및 리브레오피스(LibreOffice) 소스코드 제출해보기[2021 오픈소스 컨트리뷰션 아카데미] #8 Hacktoberfest 소개 및 리브레오피스(LibreOffice) 소스코드 제출해보기
[2021 오픈소스 컨트리뷰션 아카데미] #8 Hacktoberfest 소개 및 리브레오피스(LibreOffice) 소스코드 제출해보기DaeHyun Sung
 
[Ubucon Asia 2021] The challenge of Using LibreOffice & Building Local Commun...
[Ubucon Asia 2021] The challenge of Using LibreOffice & Building Local Commun...[Ubucon Asia 2021] The challenge of Using LibreOffice & Building Local Commun...
[Ubucon Asia 2021] The challenge of Using LibreOffice & Building Local Commun...DaeHyun Sung
 
[LibreOffice conference 2021] The challenge of Using LibreOffice & Building L...
[LibreOffice conference 2021] The challenge of Using LibreOffice & Building L...[LibreOffice conference 2021] The challenge of Using LibreOffice & Building L...
[LibreOffice conference 2021] The challenge of Using LibreOffice & Building L...DaeHyun Sung
 
[2021 오픈소스 컨트리뷰션 아카데미] #7 자동교정 XML파일 수정 및 수정한 내용 gerrit으로 제출해보기
[2021 오픈소스 컨트리뷰션 아카데미] #7 자동교정 XML파일 수정 및 수정한 내용 gerrit으로 제출해보기[2021 오픈소스 컨트리뷰션 아카데미] #7 자동교정 XML파일 수정 및 수정한 내용 gerrit으로 제출해보기
[2021 오픈소스 컨트리뷰션 아카데미] #7 자동교정 XML파일 수정 및 수정한 내용 gerrit으로 제출해보기DaeHyun Sung
 
[2021 오픈소스 컨트리뷰션 아카데미] #6 XML파일구조 및 리브레오피스의 자동교정 기능 소개 등
[2021 오픈소스 컨트리뷰션 아카데미] #6 XML파일구조 및 리브레오피스의 자동교정 기능 소개 등[2021 오픈소스 컨트리뷰션 아카데미] #6 XML파일구조 및 리브레오피스의 자동교정 기능 소개 등
[2021 오픈소스 컨트리뷰션 아카데미] #6 XML파일구조 및 리브레오피스의 자동교정 기능 소개 등DaeHyun Sung
 
[2021 오픈소스 컨트리뷰션 아카데미] #5 컨트리뷰션 정리 및 gerrit리뷰시스템 소개 등
[2021 오픈소스 컨트리뷰션 아카데미] #5 컨트리뷰션 정리 및 gerrit리뷰시스템 소개 등[2021 오픈소스 컨트리뷰션 아카데미] #5 컨트리뷰션 정리 및 gerrit리뷰시스템 소개 등
[2021 오픈소스 컨트리뷰션 아카데미] #5 컨트리뷰션 정리 및 gerrit리뷰시스템 소개 등DaeHyun Sung
 
[2021 오픈소스 컨트리뷰션 아카데미] #4 버그질라 사용법, 보그 보고 방법 소개
[2021 오픈소스 컨트리뷰션 아카데미] #4 버그질라 사용법, 보그 보고 방법 소개 [2021 오픈소스 컨트리뷰션 아카데미] #4 버그질라 사용법, 보그 보고 방법 소개
[2021 오픈소스 컨트리뷰션 아카데미] #4 버그질라 사용법, 보그 보고 방법 소개 DaeHyun Sung
 
[2021 오픈소스 컨트리뷰션 아카데미] #3 소프트웨어 번역(Translation)(2021.08.20.)
[2021 오픈소스 컨트리뷰션 아카데미] #3 소프트웨어 번역(Translation)(2021.08.20.) [2021 오픈소스 컨트리뷰션 아카데미] #3 소프트웨어 번역(Translation)(2021.08.20.)
[2021 오픈소스 컨트리뷰션 아카데미] #3 소프트웨어 번역(Translation)(2021.08.20.) DaeHyun Sung
 
[2021 오픈소스 컨트리뷰션 아카데미] #2 위키(Wiki) 등 번역(Translation)과 문서화(Documentation) (20...
[2021 오픈소스 컨트리뷰션 아카데미] #2 위키(Wiki) 등  번역(Translation)과 문서화(Documentation) (20...[2021 오픈소스 컨트리뷰션 아카데미] #2 위키(Wiki) 등  번역(Translation)과 문서화(Documentation) (20...
[2021 오픈소스 컨트리뷰션 아카데미] #2 위키(Wiki) 등 번역(Translation)과 문서화(Documentation) (20...DaeHyun Sung
 
[2021 오픈소스 컨트리뷰션 아카데미] Libreoffice 한국어 번역 및 사용성 기능 향상 프로젝트 킥오프 미팅 (2021.08.07.)
[2021 오픈소스 컨트리뷰션 아카데미]  Libreoffice 한국어 번역 및 사용성 기능 향상 프로젝트 킥오프 미팅 (2021.08.07.)[2021 오픈소스 컨트리뷰션 아카데미]  Libreoffice 한국어 번역 및 사용성 기능 향상 프로젝트 킥오프 미팅 (2021.08.07.)
[2021 오픈소스 컨트리뷰션 아카데미] Libreoffice 한국어 번역 및 사용성 기능 향상 프로젝트 킥오프 미팅 (2021.08.07.)DaeHyun Sung
 
[LibreOffice Korea-Japan online Seminar] Introduce to LibreOffice & Korean Is...
[LibreOffice Korea-Japan online Seminar] Introduce to LibreOffice & Korean Is...[LibreOffice Korea-Japan online Seminar] Introduce to LibreOffice & Korean Is...
[LibreOffice Korea-Japan online Seminar] Introduce to LibreOffice & Korean Is...DaeHyun Sung
 
Building LibreOffice Korean Community and CJK common & different issues
Building LibreOffice Korean Community and CJK common & different issuesBuilding LibreOffice Korean Community and CJK common & different issues
Building LibreOffice Korean Community and CJK common & different issuesDaeHyun Sung
 
[컨트리뷰톤 2020] 리브레오피스(LibreOffice)의 QA 및 소스 코드 리뷰
[컨트리뷰톤 2020] 리브레오피스(LibreOffice)의 QA 및 소스 코드 리뷰[컨트리뷰톤 2020] 리브레오피스(LibreOffice)의 QA 및 소스 코드 리뷰
[컨트리뷰톤 2020] 리브레오피스(LibreOffice)의 QA 및 소스 코드 리뷰DaeHyun Sung
 
[2020 컨트리뷰톤] 리브레오피스 (LibreOffice) 번역, 번역 도구관련 이야기
[2020 컨트리뷰톤] 리브레오피스 (LibreOffice) 번역, 번역 도구관련 이야기 [2020 컨트리뷰톤] 리브레오피스 (LibreOffice) 번역, 번역 도구관련 이야기
[2020 컨트리뷰톤] 리브레오피스 (LibreOffice) 번역, 번역 도구관련 이야기 DaeHyun Sung
 

More from DaeHyun Sung (20)

[LiboCon 2023] LibreOffice's current status and community in South Korea
[LiboCon 2023] LibreOffice's current status and community in South Korea[LiboCon 2023] LibreOffice's current status and community in South Korea
[LiboCon 2023] LibreOffice's current status and community in South Korea
 
LibreOffice Kaigi 2023 Keynote: my FLOSS contribution activities in Korean
LibreOffice Kaigi 2023 Keynote: my FLOSS contribution activities in KoreanLibreOffice Kaigi 2023 Keynote: my FLOSS contribution activities in Korean
LibreOffice Kaigi 2023 Keynote: my FLOSS contribution activities in Korean
 
[UbuCon Korea 2023] 한국의 문서 표준과 LibreOffice 한국어 커뮤니티 활동 소개
[UbuCon Korea 2023] 한국의 문서 표준과 LibreOffice 한국어 커뮤니티 활동 소개[UbuCon Korea 2023] 한국의 문서 표준과 LibreOffice 한국어 커뮤니티 활동 소개
[UbuCon Korea 2023] 한국의 문서 표준과 LibreOffice 한국어 커뮤니티 활동 소개
 
[Ubucon Asia 2022] 리브레오피스의 현재와 앞으로 나아갈길
[Ubucon Asia 2022] 리브레오피스의 현재와 앞으로 나아갈길[Ubucon Asia 2022] 리브레오피스의 현재와 앞으로 나아갈길
[Ubucon Asia 2022] 리브레오피스의 현재와 앞으로 나아갈길
 
[LibreOffice Conference 2022] State of Korea in Libreoffice and promote futu...
[LibreOffice Conference 2022]  State of Korea in Libreoffice and promote futu...[LibreOffice Conference 2022]  State of Korea in Libreoffice and promote futu...
[LibreOffice Conference 2022] State of Korea in Libreoffice and promote futu...
 
[2021 오픈소스 컨트리뷰션 아카데미] #9 리브레오피스(LibreOffice) 컨트리뷰션 정리
[2021 오픈소스 컨트리뷰션 아카데미] #9 리브레오피스(LibreOffice) 컨트리뷰션 정리[2021 오픈소스 컨트리뷰션 아카데미] #9 리브레오피스(LibreOffice) 컨트리뷰션 정리
[2021 오픈소스 컨트리뷰션 아카데미] #9 리브레오피스(LibreOffice) 컨트리뷰션 정리
 
[2021 오픈소스 컨트리뷰션 아카데미] #8 Hacktoberfest 소개 및 리브레오피스(LibreOffice) 소스코드 제출해보기
[2021 오픈소스 컨트리뷰션 아카데미] #8 Hacktoberfest 소개 및 리브레오피스(LibreOffice) 소스코드 제출해보기[2021 오픈소스 컨트리뷰션 아카데미] #8 Hacktoberfest 소개 및 리브레오피스(LibreOffice) 소스코드 제출해보기
[2021 오픈소스 컨트리뷰션 아카데미] #8 Hacktoberfest 소개 및 리브레오피스(LibreOffice) 소스코드 제출해보기
 
[Ubucon Asia 2021] The challenge of Using LibreOffice & Building Local Commun...
[Ubucon Asia 2021] The challenge of Using LibreOffice & Building Local Commun...[Ubucon Asia 2021] The challenge of Using LibreOffice & Building Local Commun...
[Ubucon Asia 2021] The challenge of Using LibreOffice & Building Local Commun...
 
[LibreOffice conference 2021] The challenge of Using LibreOffice & Building L...
[LibreOffice conference 2021] The challenge of Using LibreOffice & Building L...[LibreOffice conference 2021] The challenge of Using LibreOffice & Building L...
[LibreOffice conference 2021] The challenge of Using LibreOffice & Building L...
 
[2021 오픈소스 컨트리뷰션 아카데미] #7 자동교정 XML파일 수정 및 수정한 내용 gerrit으로 제출해보기
[2021 오픈소스 컨트리뷰션 아카데미] #7 자동교정 XML파일 수정 및 수정한 내용 gerrit으로 제출해보기[2021 오픈소스 컨트리뷰션 아카데미] #7 자동교정 XML파일 수정 및 수정한 내용 gerrit으로 제출해보기
[2021 오픈소스 컨트리뷰션 아카데미] #7 자동교정 XML파일 수정 및 수정한 내용 gerrit으로 제출해보기
 
[2021 오픈소스 컨트리뷰션 아카데미] #6 XML파일구조 및 리브레오피스의 자동교정 기능 소개 등
[2021 오픈소스 컨트리뷰션 아카데미] #6 XML파일구조 및 리브레오피스의 자동교정 기능 소개 등[2021 오픈소스 컨트리뷰션 아카데미] #6 XML파일구조 및 리브레오피스의 자동교정 기능 소개 등
[2021 오픈소스 컨트리뷰션 아카데미] #6 XML파일구조 및 리브레오피스의 자동교정 기능 소개 등
 
[2021 오픈소스 컨트리뷰션 아카데미] #5 컨트리뷰션 정리 및 gerrit리뷰시스템 소개 등
[2021 오픈소스 컨트리뷰션 아카데미] #5 컨트리뷰션 정리 및 gerrit리뷰시스템 소개 등[2021 오픈소스 컨트리뷰션 아카데미] #5 컨트리뷰션 정리 및 gerrit리뷰시스템 소개 등
[2021 오픈소스 컨트리뷰션 아카데미] #5 컨트리뷰션 정리 및 gerrit리뷰시스템 소개 등
 
[2021 오픈소스 컨트리뷰션 아카데미] #4 버그질라 사용법, 보그 보고 방법 소개
[2021 오픈소스 컨트리뷰션 아카데미] #4 버그질라 사용법, 보그 보고 방법 소개 [2021 오픈소스 컨트리뷰션 아카데미] #4 버그질라 사용법, 보그 보고 방법 소개
[2021 오픈소스 컨트리뷰션 아카데미] #4 버그질라 사용법, 보그 보고 방법 소개
 
[2021 오픈소스 컨트리뷰션 아카데미] #3 소프트웨어 번역(Translation)(2021.08.20.)
[2021 오픈소스 컨트리뷰션 아카데미] #3 소프트웨어 번역(Translation)(2021.08.20.) [2021 오픈소스 컨트리뷰션 아카데미] #3 소프트웨어 번역(Translation)(2021.08.20.)
[2021 오픈소스 컨트리뷰션 아카데미] #3 소프트웨어 번역(Translation)(2021.08.20.)
 
[2021 오픈소스 컨트리뷰션 아카데미] #2 위키(Wiki) 등 번역(Translation)과 문서화(Documentation) (20...
[2021 오픈소스 컨트리뷰션 아카데미] #2 위키(Wiki) 등  번역(Translation)과 문서화(Documentation) (20...[2021 오픈소스 컨트리뷰션 아카데미] #2 위키(Wiki) 등  번역(Translation)과 문서화(Documentation) (20...
[2021 오픈소스 컨트리뷰션 아카데미] #2 위키(Wiki) 등 번역(Translation)과 문서화(Documentation) (20...
 
[2021 오픈소스 컨트리뷰션 아카데미] Libreoffice 한국어 번역 및 사용성 기능 향상 프로젝트 킥오프 미팅 (2021.08.07.)
[2021 오픈소스 컨트리뷰션 아카데미]  Libreoffice 한국어 번역 및 사용성 기능 향상 프로젝트 킥오프 미팅 (2021.08.07.)[2021 오픈소스 컨트리뷰션 아카데미]  Libreoffice 한국어 번역 및 사용성 기능 향상 프로젝트 킥오프 미팅 (2021.08.07.)
[2021 오픈소스 컨트리뷰션 아카데미] Libreoffice 한국어 번역 및 사용성 기능 향상 프로젝트 킥오프 미팅 (2021.08.07.)
 
[LibreOffice Korea-Japan online Seminar] Introduce to LibreOffice & Korean Is...
[LibreOffice Korea-Japan online Seminar] Introduce to LibreOffice & Korean Is...[LibreOffice Korea-Japan online Seminar] Introduce to LibreOffice & Korean Is...
[LibreOffice Korea-Japan online Seminar] Introduce to LibreOffice & Korean Is...
 
Building LibreOffice Korean Community and CJK common & different issues
Building LibreOffice Korean Community and CJK common & different issuesBuilding LibreOffice Korean Community and CJK common & different issues
Building LibreOffice Korean Community and CJK common & different issues
 
[컨트리뷰톤 2020] 리브레오피스(LibreOffice)의 QA 및 소스 코드 리뷰
[컨트리뷰톤 2020] 리브레오피스(LibreOffice)의 QA 및 소스 코드 리뷰[컨트리뷰톤 2020] 리브레오피스(LibreOffice)의 QA 및 소스 코드 리뷰
[컨트리뷰톤 2020] 리브레오피스(LibreOffice)의 QA 및 소스 코드 리뷰
 
[2020 컨트리뷰톤] 리브레오피스 (LibreOffice) 번역, 번역 도구관련 이야기
[2020 컨트리뷰톤] 리브레오피스 (LibreOffice) 번역, 번역 도구관련 이야기 [2020 컨트리뷰톤] 리브레오피스 (LibreOffice) 번역, 번역 도구관련 이야기
[2020 컨트리뷰톤] 리브레오피스 (LibreOffice) 번역, 번역 도구관련 이야기
 

[2013.07.16] PythonKorea강남스터디 발표 - flask testing

  • 1. Flask  Tes)ng   2013-­‐07-­‐16   성대현(DaeHyun  Sung)  
  • 2. 시작하기 전에   •  Something  that  is  untested  is  broken   •  테스트하지 않은 것은 고장난다.  
  • 3. TDD   •  테스트주도 개발 Test-­‐Driven  Development   •  프로그램을 작성하기 전에 테스트 먼저 하라   Test  the  program  before  you  write  it   •  잘동작하는 깔끔한 코드   Clean  code  that  works   •  질문è응답è정제è반복   AskèRespondèRefineèRepeat  
  • 4. xUnit   •  단위 테스트를 하는데 도움을 주는 프레임워크   xUnit 이름   관련언어   홈페이지   JUnit   Java   hOp://www.junit.org/   CUnit   C   hOp://cunit.sourceforge.net/     CppUnit   C++   hOp:/sourceforge.net/projects/cppunit   csUnit   C#   hOp://csunit.org/     Test::Unit   Ruby   hOp://ruby-­‐doc.org/stdlib/libdoc/test/unit/rdoc/ classes/Test/Unit.html     uniOest   Python   hOp://docs.python.org/2/library/uniOest.html    
  • 5. Unit  TestCase  수행 순서   setUp()   testXXX()   teardown()   테스트 시작   테스트 종료  
  • 8. Unit  Test(단위 테스트) 실행결과   •  OK   – 테스트 성공!   •  FAILED   – Failures   •  예상한 값이 나오지 않아 테스트가 실패.     – Errors   •  테스트를 하다 에러발생  
  • 9. Unit  Test(단위 테스트)  실행결과   OK   Failures  
  • 10. Unit  Test(단위 테스트) 실행결과   Errors  
  • 11. Flask  applica)on  test   •  Python에서 기본 제공하는 uniOest  module  사 용   •  Source  code   hOps://github.com/mitsuhiko/flask/blob/ master/examples/flaskr/flaskr_tests.py     •  Example  code  실행  
  • 12. •  테스트코드처럼 작동되는지 확인   Run  Flask  applica)on    
  • 13. 다른 테스팅 기법   •  Flask  API에서 제공되는 Applica)on  Object  API 와 Test  Client  API 확인   –  hOp://flask.pocoo.org/docs/api/#applica)on-­‐object   –  예제)  test_request_context()함수를 사용  
  • 14. Flask-­‐Tes)ng   •  hOp://pythonhosted.org/Flask-­‐Tes)ng/     •  Python의 uniOest 모듈에서 부족한 부분을 확장 하여 제공함.   •  설치방법(2가지)   1.  $  pip  install  Flask-­‐Tes)ng   2.  $  git  clone  hOps://github.com/jarus/flask-­‐ tes)ng.git   $  cd  flask-­‐tes)ng   $  python  setup.py  develop  
  • 15. 관련 링크   •  테스트 가능한 소프트웨어 설계와 TDD작성 패턴 (Testable  design  and  TDD)   hOp://www.slideshare.net/doorOs/tdd-­‐testable-­‐ design-­‐and-­‐tdd     •  Flask  어플리케이션 테스트하기 hOp://kswa.codingstar.net:14705/html/tes)ng.html     •  Python  Unit  tes)ng  framework hOp://docs.python.org/2/library/uniOest.html     •  Flask-­‐Tes)ng  hOp://pythonhosted.org/Flask-­‐Tes)ng/