SlideShare a Scribd company logo
1 of 20
Download to read offline
xUNIT      테스트패턴




                        테스트자동화전략
                                       김성우:liongo@dragonflygame.com




Friday, July 30, 2010
개요


                        6장은조금은더구체적이긴하지만에베레스트
                        산높이정도의높은수준의내용을다룬다.




                                                          헐?!?
Friday, July 30, 2010
무엇이전략인가?
                        보통전략적인결정에는다음과같은것들이포함된다.



                             어떤테스트를자동화할것인가?
                             테스트를자동화하기위해어떤툴을쓸것인가?
                             테스트픽스처를어떻게관리할것인가?
                             어떻게하면시스템이쉽게테스트되고SUT와상
                             호작용할수있게보장할것인가?




Friday, July 30, 2010
어떤종류의테스트를자동
                             화해야하는가?


                        기능별테스트            Text
                        교차기능테스트




Friday, July 30, 2010
어떤종류의테스트를자동
                             화해야하는가?
                        기능별테스트
                        기능별테스트는직접확인할수있는소프트웨어조각의동작을검증한다.
                           (고객테스트,단위테스트,컴포넌트테스트,실패주입테스트)



                        교차기능테스트
                          특정기능전체에걸쳐시스템동작의다양한측면을검증한다.
                                     (특성테스트,사용성테스트,탐험적테스팅)




Friday, July 30, 2010
어떤테스트자동화에는
                        어떤도구를사용하는가?

                          테스트자동화방식과방법
                          최신xUnit
                          스크립트UI테스트
                          로봇사용자
                          내부기록



Friday, July 30, 2010
어떤테스트자동화에는
                        어떤도구를사용하는가?
                         테스트자동화방식과방법




Friday, July 30, 2010
어떤테스트자동화에는
                        어떤도구를사용하는가?
                         테스트자동화방식과방법




Friday, July 30, 2010
어떤테스트자동화에는
                        어떤도구를사용하는가?
                         xUnit소개
                            +개발자가새로운프로그래밍언어를배우지않고도테스트를작성하기쉬워야한다.


                            +나머지어플리케이션이준비돼있지않아도개별클래스나객체를테스트하기쉬워야한다.
                            xUnit은소프트웨어를내부에서부터테스트할수있게설계됐다.이런특성을잘활용할수
                            있도록테스트하기쉽게설계하기만하면된다.


                            +테스트는한개,또는여러테스트를한번에실행하기쉬워야한다.xUnit은이렇게테스트를
                            실행할수있게테스트스위트와스위트들의스위트개념이추가돼있다.


                            +테스트실행비용을최소화해프로그래머가테스트를맘편하게돌려볼수있어야한다.
                            이런이유로모든테스트는헐리우드원칙에입각한자체검사테스트여야한다.


                            +처음실패하면멈추기는도구에담겨있는철학일뿐이다.


                            +xUnit의이런기본적인동작을필요에따라바꿀수있다.이런유연함은오픈소스의장점이다.


                            +xUnit의기본동작을바꿔야겠다는생각이든다면xUnit보다좀더잘맞는도구를고려해봐야
                            할지도모른다.



Friday, July 30, 2010
어떤테스트픽스처전략을
                              사용하는가?

                        무엇이픽스처인가?
                        주요픽스처전략
                        1회용신선한픽스처
                        지속되는신선한픽스처
                        공유픽스처전략



Friday, July 30, 2010
어떤테스트픽스처전략을
                              사용하는가?
                        무엇이픽스처인가?
                          xUnit에서는SUT를실행하기위해필요한모든것을테스트픽스
                          처라부르고,픽스처를설치하기위해호출하는테스트로직부분을
                          테스트의픽스처설치단계라한다.

                          +일부xUnit은픽스처와픽스처를생성하는테스트케이스클래스를구분한다.
                          +xUnit의다른계열은테스트케이스클래스의객체를‘사실상’픽스처로본다.(NUnit)
                          +3번째부류는픽스처를완전다르게부른다RSpec같은경우테스트메소트가있는
                          테스트관련클래스의테스트선조건이라부른다.
                          +테스트자동화의다른부류에서는‘픽스처’라는용어를전혀달리사용한다.예를들어
                          Fit에서는고급언어정의에사용되는데이터주도테스트인터프리터중에서고객이
                          작성하는부분을픽스처라부른다.




Friday, July 30, 2010
어떤테스트픽스처전략을
                              사용하는가?
                        주요픽스처전략




Friday, July 30, 2010
어떤테스트픽스처전략을
                              사용하는가?
                        1회용신선한픽스처
                             publicclassAcountTest{
                                     privateAccountaccount;


                                     @Before
                                     publicvoidsetUp(){
                                                     account=newAccount(10000);
                                     }
                                     @Test
                                     publicvoidtestDeposiot()throwsException{
                                                     account.deposit(1000);
                                                     assertEquals(11000,account.getBalance());
                                     }
                                     ...............
                                     (테스트주도개발TDD실천법과도구-채수원지음)발췌




Friday, July 30, 2010
테스트용이성을보장하는
                                     방법
                          테스트나중-각오가돼있는가?
                          테스트하기쉬운설계-미리하기
                          테스트주도테스트용이성
                          제어위치와관찰위치
                          상호작용방식과테스트용이성패턴
                          나눈후테스트


Friday, July 30, 2010
테스트용이성을보장하는
                                     방법
                          테스트나중-각오가돼있는가?
                             기존어플리케이션에단위테스트를도입하려고해본사람이라면누구든지엄청고생했을
                             것이다.이것은테스트자동화중가장힘들뿐만아니라생산성도가장낮다.자동테스트
                             의많은장점이소프트웨어의‘디버깅단계’에서가장잘드러난다.이때이런테스트들은
                             디버깅툴과씨름하느라보내는시간을줄여줄수있다.자동단위테스트를처음해본다
                             면레거시소프트웨어에테스트도입은삼가야한다.이것은가장용기있는개발자나프
                             로젝트관리자조차도주저하는작업이다.




Friday, July 30, 2010
테스트용이성을보장하는
                                     방법
                          테스트하기쉬운설계-미리하기
                            어떤제어위치와관찰위치가SUT에필요할지를테스트에서미리알기어렵기때문에
                            BDUF방식으로쉽게설계하긴어렵다.테스트하기힘든소프트웨어를만들거나불충분
                            하고필요하지도않은테스트용이성메커니즘을설계하느라많은시간을버리기쉽다.어
                            떤경우든지뭔가보여줄것도만들지못하면서노력만많이들게될것이다.




Friday, July 30, 2010
테스트용이성을보장하는
                                     방법
                          테스트주도테스트용이성
                            테스트주도로소프트웨어를개발하면따로테스트하기쉽게설계하지않아도된다는점
                            이좋다.그냥테스트를작성하다보면어쩔수없이테스트용이성을감안할수밖에없고
                            SUT가제공해야하는제어위치와관찰위치를정의하게된다.일단테스트를통과하고
                            나면테스트하기쉽게설계했다는걸알수있다.




Friday, July 30, 2010
테스트용이성을보장하는
                                     방법
                          상호작용방식과테스트용이성패턴

                          왕복테스트:
                          +단순한메소드호출
                          +interface만으로접근하기때문에내부를알필요없음,캡술화를


                          레이어횡단테스트:
                          +테스트스파이같은테스트대역을이용하여뒷문으로확인
                          +비기능요구사항검증에효과적인테스트기법
                          +단점:심하게명세된소프트웨어가되기쉬움
                          +다른컴포넌트사용시의존성주입(DI),객체팩토리,서비스탑지기등이있음,(IoC)
                          +최후의수단-테스트훅
                          +비동기테스트-대강만든실행기




Friday, July 30, 2010
테스트용이성을보장하는
                                     방법
                          나눈후테스트
                          +피하테스트를작성하면고객테스트를위해UI를사용하는걸피할수있다.
                          +피하테스트는UI레이어를우회해바로비즈니스로직을실행헤테스트한다.
                          +UI역시같은퍼사드를쓰게하면UI로직에훅을걸기전에도비즈니스로직이제대로
                          돌아간다는걸보장할수있다.




Friday, July 30, 2010
감사합니다.




Friday, July 30, 2010

More Related Content

Viewers also liked

Qwerly GeeknRolla Presentation
Qwerly GeeknRolla PresentationQwerly GeeknRolla Presentation
Qwerly GeeknRolla PresentationMax Niederhofer
 
Curso de Biogeoquímica de Sedimentos Aquáticos - Parte V
Curso de Biogeoquímica de Sedimentos Aquáticos - Parte V Curso de Biogeoquímica de Sedimentos Aquáticos - Parte V
Curso de Biogeoquímica de Sedimentos Aquáticos - Parte V Inct Acqua
 
Money9811(a.h)
Money9811(a.h)Money9811(a.h)
Money9811(a.h)ajhary
 
Np s phere oxodegradables 28.06.11
Np s phere  oxodegradables 28.06.11Np s phere  oxodegradables 28.06.11
Np s phere oxodegradables 28.06.11evercom
 
Proyecto resolución chaco
Proyecto resolución chacoProyecto resolución chaco
Proyecto resolución chacoValeria Esposito
 
Proyecto Resolucion de Problemas Tania Yaulema
Proyecto Resolucion de Problemas Tania YaulemaProyecto Resolucion de Problemas Tania Yaulema
Proyecto Resolucion de Problemas Tania Yaulemataniacecibellyz
 
Trabajopractico8 120608203527-phpapp02
Trabajopractico8 120608203527-phpapp02Trabajopractico8 120608203527-phpapp02
Trabajopractico8 120608203527-phpapp02Marianelaruizdiaz
 
Junction boxes
Junction boxesJunction boxes
Junction boxesrathod811
 
Azenka 2015 - Grande oportunidade de negócio.
Azenka 2015 - Grande oportunidade de negócio.Azenka 2015 - Grande oportunidade de negócio.
Azenka 2015 - Grande oportunidade de negócio.Luis Claudio Trindade
 

Viewers also liked (13)

Qwerly GeeknRolla Presentation
Qwerly GeeknRolla PresentationQwerly GeeknRolla Presentation
Qwerly GeeknRolla Presentation
 
Uwhfihfiudshfiewfhw
UwhfihfiudshfiewfhwUwhfihfiudshfiewfhw
Uwhfihfiudshfiewfhw
 
Frasa2
Frasa2Frasa2
Frasa2
 
Curso de Biogeoquímica de Sedimentos Aquáticos - Parte V
Curso de Biogeoquímica de Sedimentos Aquáticos - Parte V Curso de Biogeoquímica de Sedimentos Aquáticos - Parte V
Curso de Biogeoquímica de Sedimentos Aquáticos - Parte V
 
Money9811(a.h)
Money9811(a.h)Money9811(a.h)
Money9811(a.h)
 
Syllabus auto cad 2d 2012
Syllabus auto cad 2d 2012Syllabus auto cad 2d 2012
Syllabus auto cad 2d 2012
 
Np s phere oxodegradables 28.06.11
Np s phere  oxodegradables 28.06.11Np s phere  oxodegradables 28.06.11
Np s phere oxodegradables 28.06.11
 
Proyecto SM 22
Proyecto SM 22Proyecto SM 22
Proyecto SM 22
 
Proyecto resolución chaco
Proyecto resolución chacoProyecto resolución chaco
Proyecto resolución chaco
 
Proyecto Resolucion de Problemas Tania Yaulema
Proyecto Resolucion de Problemas Tania YaulemaProyecto Resolucion de Problemas Tania Yaulema
Proyecto Resolucion de Problemas Tania Yaulema
 
Trabajopractico8 120608203527-phpapp02
Trabajopractico8 120608203527-phpapp02Trabajopractico8 120608203527-phpapp02
Trabajopractico8 120608203527-phpapp02
 
Junction boxes
Junction boxesJunction boxes
Junction boxes
 
Azenka 2015 - Grande oportunidade de negócio.
Azenka 2015 - Grande oportunidade de negócio.Azenka 2015 - Grande oportunidade de negócio.
Azenka 2015 - Grande oportunidade de negócio.
 

Similar to xUnitTestPattern/chapter6

테스트 계획할 때에 필요한 질문들 (The inquiry method for test planning)
테스트 계획할 때에 필요한 질문들 (The inquiry method for test planning)테스트 계획할 때에 필요한 질문들 (The inquiry method for test planning)
테스트 계획할 때에 필요한 질문들 (The inquiry method for test planning)Joseph Yonggoo Yeo
 
테스트자동화 성공전략
테스트자동화 성공전략테스트자동화 성공전략
테스트자동화 성공전략SangIn Choung
 
테스트 자동화의 원칙
테스트 자동화의 원칙테스트 자동화의 원칙
테스트 자동화의 원칙codevania
 
Io t에서의 소프트웨어단위테스트_접근사례
Io t에서의 소프트웨어단위테스트_접근사례Io t에서의 소프트웨어단위테스트_접근사례
Io t에서의 소프트웨어단위테스트_접근사례SangIn Choung
 
116 deview2013-guitar
116 deview2013-guitar116 deview2013-guitar
116 deview2013-guitarNAVER D2
 
xUnitTestPattern/chapter3
xUnitTestPattern/chapter3xUnitTestPattern/chapter3
xUnitTestPattern/chapter3수윤 장
 

Similar to xUnitTestPattern/chapter6 (6)

테스트 계획할 때에 필요한 질문들 (The inquiry method for test planning)
테스트 계획할 때에 필요한 질문들 (The inquiry method for test planning)테스트 계획할 때에 필요한 질문들 (The inquiry method for test planning)
테스트 계획할 때에 필요한 질문들 (The inquiry method for test planning)
 
테스트자동화 성공전략
테스트자동화 성공전략테스트자동화 성공전략
테스트자동화 성공전략
 
테스트 자동화의 원칙
테스트 자동화의 원칙테스트 자동화의 원칙
테스트 자동화의 원칙
 
Io t에서의 소프트웨어단위테스트_접근사례
Io t에서의 소프트웨어단위테스트_접근사례Io t에서의 소프트웨어단위테스트_접근사례
Io t에서의 소프트웨어단위테스트_접근사례
 
116 deview2013-guitar
116 deview2013-guitar116 deview2013-guitar
116 deview2013-guitar
 
xUnitTestPattern/chapter3
xUnitTestPattern/chapter3xUnitTestPattern/chapter3
xUnitTestPattern/chapter3
 

xUnitTestPattern/chapter6

  • 1. xUNIT 테스트패턴 테스트자동화전략 김성우:liongo@dragonflygame.com Friday, July 30, 2010
  • 2. 개요 6장은조금은더구체적이긴하지만에베레스트 산높이정도의높은수준의내용을다룬다. 헐?!? Friday, July 30, 2010
  • 3. 무엇이전략인가? 보통전략적인결정에는다음과같은것들이포함된다. 어떤테스트를자동화할것인가? 테스트를자동화하기위해어떤툴을쓸것인가? 테스트픽스처를어떻게관리할것인가? 어떻게하면시스템이쉽게테스트되고SUT와상 호작용할수있게보장할것인가? Friday, July 30, 2010
  • 4. 어떤종류의테스트를자동 화해야하는가? 기능별테스트 Text 교차기능테스트 Friday, July 30, 2010
  • 5. 어떤종류의테스트를자동 화해야하는가? 기능별테스트 기능별테스트는직접확인할수있는소프트웨어조각의동작을검증한다. (고객테스트,단위테스트,컴포넌트테스트,실패주입테스트) 교차기능테스트 특정기능전체에걸쳐시스템동작의다양한측면을검증한다. (특성테스트,사용성테스트,탐험적테스팅) Friday, July 30, 2010
  • 6. 어떤테스트자동화에는 어떤도구를사용하는가? 테스트자동화방식과방법 최신xUnit 스크립트UI테스트 로봇사용자 내부기록 Friday, July 30, 2010
  • 7. 어떤테스트자동화에는 어떤도구를사용하는가? 테스트자동화방식과방법 Friday, July 30, 2010
  • 8. 어떤테스트자동화에는 어떤도구를사용하는가? 테스트자동화방식과방법 Friday, July 30, 2010
  • 9. 어떤테스트자동화에는 어떤도구를사용하는가? xUnit소개 +개발자가새로운프로그래밍언어를배우지않고도테스트를작성하기쉬워야한다. +나머지어플리케이션이준비돼있지않아도개별클래스나객체를테스트하기쉬워야한다. xUnit은소프트웨어를내부에서부터테스트할수있게설계됐다.이런특성을잘활용할수 있도록테스트하기쉽게설계하기만하면된다. +테스트는한개,또는여러테스트를한번에실행하기쉬워야한다.xUnit은이렇게테스트를 실행할수있게테스트스위트와스위트들의스위트개념이추가돼있다. +테스트실행비용을최소화해프로그래머가테스트를맘편하게돌려볼수있어야한다. 이런이유로모든테스트는헐리우드원칙에입각한자체검사테스트여야한다. +처음실패하면멈추기는도구에담겨있는철학일뿐이다. +xUnit의이런기본적인동작을필요에따라바꿀수있다.이런유연함은오픈소스의장점이다. +xUnit의기본동작을바꿔야겠다는생각이든다면xUnit보다좀더잘맞는도구를고려해봐야 할지도모른다. Friday, July 30, 2010
  • 10. 어떤테스트픽스처전략을 사용하는가? 무엇이픽스처인가? 주요픽스처전략 1회용신선한픽스처 지속되는신선한픽스처 공유픽스처전략 Friday, July 30, 2010
  • 11. 어떤테스트픽스처전략을 사용하는가? 무엇이픽스처인가? xUnit에서는SUT를실행하기위해필요한모든것을테스트픽스 처라부르고,픽스처를설치하기위해호출하는테스트로직부분을 테스트의픽스처설치단계라한다. +일부xUnit은픽스처와픽스처를생성하는테스트케이스클래스를구분한다. +xUnit의다른계열은테스트케이스클래스의객체를‘사실상’픽스처로본다.(NUnit) +3번째부류는픽스처를완전다르게부른다RSpec같은경우테스트메소트가있는 테스트관련클래스의테스트선조건이라부른다. +테스트자동화의다른부류에서는‘픽스처’라는용어를전혀달리사용한다.예를들어 Fit에서는고급언어정의에사용되는데이터주도테스트인터프리터중에서고객이 작성하는부분을픽스처라부른다. Friday, July 30, 2010
  • 12. 어떤테스트픽스처전략을 사용하는가? 주요픽스처전략 Friday, July 30, 2010
  • 13. 어떤테스트픽스처전략을 사용하는가? 1회용신선한픽스처 publicclassAcountTest{ privateAccountaccount; @Before publicvoidsetUp(){ account=newAccount(10000); } @Test publicvoidtestDeposiot()throwsException{ account.deposit(1000); assertEquals(11000,account.getBalance()); } ............... (테스트주도개발TDD실천법과도구-채수원지음)발췌 Friday, July 30, 2010
  • 14. 테스트용이성을보장하는 방법 테스트나중-각오가돼있는가? 테스트하기쉬운설계-미리하기 테스트주도테스트용이성 제어위치와관찰위치 상호작용방식과테스트용이성패턴 나눈후테스트 Friday, July 30, 2010
  • 15. 테스트용이성을보장하는 방법 테스트나중-각오가돼있는가? 기존어플리케이션에단위테스트를도입하려고해본사람이라면누구든지엄청고생했을 것이다.이것은테스트자동화중가장힘들뿐만아니라생산성도가장낮다.자동테스트 의많은장점이소프트웨어의‘디버깅단계’에서가장잘드러난다.이때이런테스트들은 디버깅툴과씨름하느라보내는시간을줄여줄수있다.자동단위테스트를처음해본다 면레거시소프트웨어에테스트도입은삼가야한다.이것은가장용기있는개발자나프 로젝트관리자조차도주저하는작업이다. Friday, July 30, 2010
  • 16. 테스트용이성을보장하는 방법 테스트하기쉬운설계-미리하기 어떤제어위치와관찰위치가SUT에필요할지를테스트에서미리알기어렵기때문에 BDUF방식으로쉽게설계하긴어렵다.테스트하기힘든소프트웨어를만들거나불충분 하고필요하지도않은테스트용이성메커니즘을설계하느라많은시간을버리기쉽다.어 떤경우든지뭔가보여줄것도만들지못하면서노력만많이들게될것이다. Friday, July 30, 2010
  • 17. 테스트용이성을보장하는 방법 테스트주도테스트용이성 테스트주도로소프트웨어를개발하면따로테스트하기쉽게설계하지않아도된다는점 이좋다.그냥테스트를작성하다보면어쩔수없이테스트용이성을감안할수밖에없고 SUT가제공해야하는제어위치와관찰위치를정의하게된다.일단테스트를통과하고 나면테스트하기쉽게설계했다는걸알수있다. Friday, July 30, 2010
  • 18. 테스트용이성을보장하는 방법 상호작용방식과테스트용이성패턴 왕복테스트: +단순한메소드호출 +interface만으로접근하기때문에내부를알필요없음,캡술화를 레이어횡단테스트: +테스트스파이같은테스트대역을이용하여뒷문으로확인 +비기능요구사항검증에효과적인테스트기법 +단점:심하게명세된소프트웨어가되기쉬움 +다른컴포넌트사용시의존성주입(DI),객체팩토리,서비스탑지기등이있음,(IoC) +최후의수단-테스트훅 +비동기테스트-대강만든실행기 Friday, July 30, 2010
  • 19. 테스트용이성을보장하는 방법 나눈후테스트 +피하테스트를작성하면고객테스트를위해UI를사용하는걸피할수있다. +피하테스트는UI레이어를우회해바로비즈니스로직을실행헤테스트한다. +UI역시같은퍼사드를쓰게하면UI로직에훅을걸기전에도비즈니스로직이제대로 돌아간다는걸보장할수있다. Friday, July 30, 2010