More Related Content
Similar to xUnitTestPattern/chapter6
Similar to xUnitTestPattern/chapter6 (6)
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
- 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