44
GUITAR : UI테스트 자동화 어디까지 해봤니? 손민혁 차장 / 지도서비스개발2팀 NAVER

116 deview2013-guitar

Embed Size (px)

Citation preview

Page 1: 116 deview2013-guitar

GUITAR����������� ������������������  :����������� ������������������  ����������� ������������������  UI테스트����������� ������������������  자동화����������� ������������������  어디까지����������� ������������������  해봤니?����������� ������������������  

손민혁����������� ������������������  차장����������� ������������������  /����������� ������������������  지도서비스개발2팀����������� ������������������  ����������� ������������������  

NAVER����������� ������������������  

Page 2: 116 deview2013-guitar

CONTENTS����������� ������������������  

1.����������� ������������������  Prologue����������� ������������������  

2.����������� ������������������  서술����������� ������������������  

3.����������� ������������������  그림����������� ������������������  

4.����������� ������������������  GUITAR����������� ������������������  

5.����������� ������������������  적용����������� ������������������  

����������� ������������������  ����������� ������������������  

����������� ������������������  

Page 3: 116 deview2013-guitar

1.����������� ������������������  Prologue����������� ������������������  

Page 4: 116 deview2013-guitar

자동화����������� ������������������  적용보고����������� ������������������  시간에…⋯����������� ������������������  

����������� ������������������  음…⋯,����������� ������������������  역시����������� ������������������  플래시는����������� ������������������  

그렇죠?����������� ������������������  ㅎㅎ����������� ������������������   잘����������� ������������������  하셨네요.����������� ������������������  근데����������� ������������������  플래시도����������� ������������������  ����������� ������������������  ����������� ������������������  자동화����������� ������������������  되나요?����������� ������������������  ����������� ������������������  

…⋯해서����������� ������������������  자동화����������� ������������������  적용����������� ������������������  ����������� ������������������  완료했습니다.����������� ������������������  ����������� ������������������  관련����������� ������������������  질문����������� ������������������  있나요?����������� ������������������  

팀원2����������� ������������������  

팀원1����������� ������������������  

팀원3����������� ������������������  

찾아봤는데.����������� ������������������  플래시는����������� ������������������  방법이����������� ������������������  없더라구요����������� ������������������  .ㅠ����������� ������������������  넹����������� ������������������  ^^;

1.1����������� ������������������  QA에게����������� ������������������  테스트����������� ������������������  자동화란?����������� ������������������  

Page 5: 116 deview2013-guitar

1.2����������� ������������������  개발자에게����������� ������������������  테스트����������� ������������������  자동화란?����������� ������������������  

자동화����������� ������������������  파일럿����������� ������������������  적용����������� ������������������  보고서����������� ������������������  중에…⋯����������� ������������������  

����������� ������������������  Selenium����������� ������������������  으로����������� ������������������  자동화����������� ������������������  가능한����������� ������������������  부분����������� ������������������  

����������� ������������������  

29%����������� ������������������  ����������� ������������������  ����������� ������������������  

Page 6: 116 deview2013-guitar

1.3����������� ������������������  자동화의����������� ������������������  현실����������� ������������������  

ü  담당����������� ������������������  QA/TE가����������� ������������������  바뀌면����������� ������������������  자동화는����������� ������������������  중단되거나����������� ������������������  새롭게����������� ������������������  다시����������� ������������������  시작한다.����������� ������������������  

ü  사용자����������� ������������������  98%가����������� ������������������  IE를����������� ������������������  쓰지만,����������� ������������������  자동화는����������� ������������������  Firefox에서����������� ������������������  한다.����������� ������������������  ����������� ������������������  

ü  도구에서����������� ������������������  지원되지����������� ������������������  않는����������� ������������������  영역(Flash,����������� ������������������  시스템����������� ������������������  창)은����������� ������������������  테스트에서����������� ������������������  제외한다.����������� ������������������  ����������� ������������������  

ü  자동화����������� ������������������  테스트����������� ������������������  코드의����������� ������������������  평균����������� ������������������  유통기한은����������� ������������������  3개월이다.����������� ������������������  

자동화����������� ������������������  ����������� ������������������  스크립트����������� ������������������  

Page 7: 116 deview2013-guitar

그래서…⋯����������� ������������������  

����������� ������������������  

“유지����������� ������������������  보수����������� ������������������  가능한����������� ������������������  테스트����������� ������������������  자동화”를����������� ������������������  위해����������� ������������������  ����������� ������������������  

����������� ������������������  

직접����������� ������������������  “GUITAR”를����������� ������������������  만들었습니다.����������� ������������������  

1.5����������� ������������������  목����������� ������������������  마른����������� ������������������  사람이����������� ������������������  우물판다����������� ������������������  

Page 8: 116 deview2013-guitar

2.����������� ������������������  서술����������� ������������������  

Page 9: 116 deview2013-guitar

����������� ������������������  

[명사]����������� ������������������  사건이나����������� ������������������  생각����������� ������������������  따위를����������� ������������������  차례대로����������� ������������������  말하거나����������� ������������������  적음.����������� ������������������  ����������� ������������������  

2.1����������� ������������������  서술����������� ������������������  

Page 10: 116 deview2013-guitar

public����������� ������������������  void����������� ������������������  naversearchtest()����������� ������������������  throws����������� ������������������  Exception����������� ������������������  {����������� ������������������  ����������� ������������������  selenium.open("/");����������� ������������������  ����������� ������������������  selenium.click("query");����������� ������������������  ����������� ������������������  selenium.type("query",����������� ������������������  "GUI����������� ������������������  테스트����������� ������������������  자동화");����������� ������������������  ����������� ������������������  selenium.click("//input[@type='image']");����������� ������������������  ����������� ������������������  selenium.waitForPageToLoad("30000");����������� ������������������  ����������� ������������������  assertEquals("GUI����������� ������������������  테스트����������� ������������������  자동화",����������� ������������������   ����������� ������������������  selenium.getText("//div[@id='cont

ent']/div[1]/ul/li[1]/dl/dt/"));����������� ������������������  ����������� ������������������  }����������� ������������������  

네이버����������� ������������������  메인����������� ������������������  http://www.naver.com으로����������� ������������������  접속한다.����������� ������������������  화면에서����������� ������������������  검색어입력창����������� ������������������  클릭한다.����������� ������������������  검색어“GUI테스트자동화”를����������� ������������������  입력하고����������� ������������������  검색버튼을����������� ������������������  클릭한다.����������� ������������������  검색결과����������� ������������������  화면에서����������� ������������������  "GUI테스트자동화”를����������� ������������������  확인한다.����������� ������������������  ����������� ������������������  

=����������� ������������������  Test����������� ������������������  Case����������� ������������������  

=����������� ������������������  자동화����������� ������������������  스크립트����������� ������������������  

2.1����������� ������������������  Script?,����������� ������������������  Test����������� ������������������  Case?����������� ������������������  

Page 11: 116 deview2013-guitar

명령����������� ������������������  대상����������� ������������������  

2.2����������� ������������������  “명령”����������� ������������������  과����������� ������������������  “대상”����������� ������������������  

Page 12: 116 deview2013-guitar

성공����������� ������������������  

생성����������� ������������������  

종료����������� ������������������  

접속����������� ������������������  

클릭����������� ������������������  

입력����������� ������������������  

확인����������� ������������������  

선택����������� ������������������  

있으면����������� ������������������   없으면����������� ������������������  

실행����������� ������������������  

설정����������� ������������������  

대기����������� ������������������  

누른����������� ������������������  

내용확인����������� ������������������  

같으면����������� ������������������  더블클릭����������� ������������������  마우스휠업����������� ������������������  

우클릭����������� ������������������  이동����������� ������������������  

내용이없으면����������� ������������������  

실패����������� ������������������  

마우스숨김����������� ������������������  캡쳐����������� ������������������  

마우스휠다운����������� ������������������  

같지않으면����������� ������������������  

내용이있으면����������� ������������������  

계산����������� ������������������  

드롭����������� ������������������  

드래그����������� ������������������  

홈으로가기����������� ������������������  

쓸어넘기기����������� ������������������  

2.3����������� ������������������  “명령”����������� ������������������  

Page 13: 116 deview2013-guitar

0.5초����������� ������������������  

“http://www.naver.com”����������� ������������������  ����������� ������������������  ����������� ������������������  

“GUI����������� ������������������  테스트����������� ������������������  자동화”����������� ������������������  

$메인URL����������� ������������������  

2.4����������� ������������������  “대상”����������� ������������������  

[input:id=query]����������� ������������������  

Page 14: 116 deview2013-guitar

3.����������� ������������������  그림����������� ������������������  

Page 15: 116 deview2013-guitar

3.1����������� ������������������  그림����������� ������������������  

Page 16: 116 deview2013-guitar

3.2����������� ������������������  윌리를����������� ������������������  찾아서…⋯����������� ������������������  

Page 17: 116 deview2013-guitar

3.2����������� ������������������  윌리를����������� ������������������  찾아서…⋯����������� ������������������  (Cont.)����������� ������������������  

Page 18: 116 deview2013-guitar

• ����������� ������������������  Tolerance����������� ������������������  :����������� ������������������   =����������� ������������������  

X=����������� ������������������  

O

O

0����������� ������������������  5����������� ������������������  

32bit����������� ������������������  Color����������� ������������������  

16Bit����������� ������������������  Color����������� ������������������  

3.3����������� ������������������  Tolerance����������� ������������������  

Page 19: 116 deview2013-guitar

원본����������� ������������������  이미지����������� ������������������  

=����������� ������������������   XTolerance����������� ������������������  통과����������� ������������������  이미지����������� ������������������  

O

X

=����������� ������������������  

=����������� ������������������  Pixel����������� ������������������  CRC����������� ������������������  비교����������� ������������������  

Pixel����������� ������������������  CRC����������� ������������������  (0x77)����������� ������������������  

Pixel����������� ������������������  CRC����������� ������������������  (0x00)����������� ������������������  

Pixel����������� ������������������  CRC����������� ������������������  (0xAA)����������� ������������������  

Pixel����������� ������������������  CRC����������� ������������������  (0x77)����������� ������������������  

3.4����������� ������������������  CRC����������� ������������������  

Page 20: 116 deview2013-guitar

3.5����������� ������������������  Smart����������� ������������������  Search����������� ������������������  

Page 21: 116 deview2013-guitar

3.6����������� ������������������  다중����������� ������������������  이미지����������� ������������������  

Page 22: 116 deview2013-guitar

Firefox����������� ������������������  

Chrome����������� ������������������  

3.7����������� ������������������  인접����������� ������������������  이미지����������� ������������������  

Page 23: 116 deview2013-guitar

3.8����������� ������������������  투명����������� ������������������  이미지����������� ������������������  

Page 24: 116 deview2013-guitar

4.����������� ������������������  GUITAR����������� ������������������  

Page 25: 116 deview2013-guitar

ü  IDE����������� ������������������  환경����������� ������������������  

ü  Cross����������� ������������������  browser/platform����������� ������������������  (IE,����������� ������������������  FIREFOX,����������� ������������������  SAFARI,����������� ������������������  CHROME,����������� ������������������  O

PERA����������� ������������������  /����������� ������������������  XP,����������� ������������������  VISTA,����������� ������������������  WIN7)����������� ������������������  

ü  모바일����������� ������������������  (iOS,����������� ������������������  Android)����������� ������������������  

ü  서술����������� ������������������  형태의����������� ������������������  스크립트����������� ������������������  

ü  자바스크립트����������� ������������������  오류����������� ������������������  자동검출����������� ������������������  (IE����������� ������������������  8이하,����������� ������������������  Firefox,����������� ������������������  Chrome)����������� ������������������  

ü  변수����������� ������������������  /����������� ������������������  Include����������� ������������������  /����������� ������������������  조건����������� ������������������  문����������� ������������������  /����������� ������������������  반복����������� ������������������  문����������� ������������������  

ü  AUTOIT����������� ������������������  내부����������� ������������������  명령어����������� ������������������  및����������� ������������������  함수����������� ������������������  ����������� ������������������  

ü  원격����������� ������������������  관리����������� ������������������  /����������� ������������������  CI����������� ������������������  연동����������� ������������������  /����������� ������������������  리포트����������� ������������������  Dashboard����������� ������������������  

ü  공짜!����������� ������������������  

4.1����������� ������������������  특징����������� ������������������  

Page 26: 116 deview2013-guitar

문맥����������� ������������������  자동����������� ������������������  점검����������� ������������������  

4.2����������� ������������������  스크립트����������� ������������������  작성����������� ������������������  

Page 27: 116 deview2013-guitar

4.2����������� ������������������  스크립트����������� ������������������  작성����������� ������������������  (Cont.)����������� ������������������  

Page 28: 116 deview2013-guitar

����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  

결과확인����������� ������������������  

GUITAR����������� ������������������  ����������� ������������������  

Script����������� ������������������  유지����������� ������������������  보수����������� ������������������  ����������� ������������������  Script����������� ������������������  실행/결과����������� ������������������  관리����������� ������������������  

사용자����������� ������������������  

실행����������� ������������������  

����������� ������������������  GUITAR����������� ������������������  Agent����������� ������������������  

(원격����������� ������������������  관리)����������� ������������������  ����������� ������������������  

Tomcat����������� ������������������  

Test����������� ������������������  Script����������� ������������������  

Script����������� ������������������  

Image����������� ������������������  

Test����������� ������������������  Result����������� ������������������  

TC유지보수����������� ������������������  테스트실행����������� ������������������  

원격����������� ������������������  

Email����������� ������������������  

SMS����������� ������������������  

Web����������� ������������������  

HTML����������� ������������������  

4.3����������� ������������������  시스템����������� ������������������  구성����������� ������������������  

XML����������� ������������������  

CI����������� ������������������  ����������� ������������������  

Page 29: 116 deview2013-guitar

테스트����������� ������������������  ����������� ������������������  스크립트����������� ������������������  

지도����������� ������������������  

지도����������� ������������������  SUS����������� ������������������   보행자����������� ������������������  PJT����������� ������������������  

지도SUS_02����������� ������������������  

이미지����������� ������������������  

지도SUS_01����������� ������������������  

이미지����������� ������������������  

가계부����������� ������������������  

공용����������� ������������������  ����������� ������������������  스크립트����������� ������������������  

서비스����������� ������������������  공통����������� ������������������  

로그인����������� ������������������  

이미지����������� ������������������  

지도����������� ������������������  

보행자����������� ������������������  공통����������� ������������������  

이미지����������� ������������������  

공용����������� ������������������  ����������� ������������������  이미지����������� ������������������  

지도����������� ������������������  

이미지����������� ������������������  

가계부����������� ������������������  

이미지����������� ������������������  

4.4����������� ������������������  스크립트����������� ������������������  구조����������� ������������������  

Page 30: 116 deview2013-guitar

4.5����������� ������������������  Cross����������� ������������������  Platform����������� ������������������  &����������� ������������������  Browser����������� ������������������  

Page 31: 116 deview2013-guitar

����������� ������������������  

PC����������� ������������������  

Emulator����������� ������������������  (AVD)����������� ������������������  

����������� ������������������  

Mobile����������� ������������������  Device����������� ������������������  

VNC����������� ������������������  Server����������� ������������������  

VNC����������� ������������������  Server����������� ������������������  

VNC����������� ������������������  Server����������� ������������������  

GUITAR����������� ������������������  

VNC����������� ������������������  ����������� ������������������  Client����������� ������������������  

4.6����������� ������������������  Mobile����������� ������������������  

Page 32: 116 deview2013-guitar

4.6����������� ������������������  Mobile����������� ������������������  (Cont.)����������� ������������������  

Page 33: 116 deview2013-guitar

4.6����������� ������������������  Mobile����������� ������������������  (Cont.)����������� ������������������  

Page 34: 116 deview2013-guitar

4.7����������� ������������������  CI����������� ������������������  연동����������� ������������������  

CI����������� ������������������  Server����������� ������������������  (Hudson,����������� ������������������  Jenkins)����������� ������������������  

Test����������� ������������������  Script����������� ������������������  (SVN)����������� ������������������  

GUITAR����������� ������������������  ����������� ������������������  TEST����������� ������������������  Server����������� ������������������  

개발����������� ������������������  

REAL����������� ������������������  

BETA����������� ������������������  

ALPHA����������� ������������������  

개인����������� ������������������  TEST����������� ������������������  PC����������� ������������������  (GUITAR)����������� ������������������  

Script����������� ������������������  유지����������� ������������������  보수����������� ������������������  

테스트����������� ������������������  서버����������� ������������������  

Page 35: 116 deview2013-guitar

4.7����������� ������������������  CI����������� ������������������  연동����������� ������������������  (Cont.)����������� ������������������  

Page 36: 116 deview2013-guitar

4.8����������� ������������������  리포트����������� ������������������  

Page 37: 116 deview2013-guitar

5.����������� ������������������  적용����������� ������������������  

Page 38: 116 deview2013-guitar

123 29.9%

288 70.1% 396

96.4%

15 3.6%

5.1����������� ������������������  테스트����������� ������������������  커버리지����������� ������������������  

Selenium����������� ������������������   GUITAR����������� ������������������  

v  네이버����������� ������������������  지도����������� ������������������  서비스����������� ������������������  자동화����������� ������������������  적용����������� ������������������  ����������� ������������������  (Test����������� ������������������  Case����������� ������������������  411건)����������� ������������������  

Page 39: 116 deview2013-guitar

내용����������� ������������������  

스크립트����������� ������������������  작성����������� ������������������  리소스����������� ������������������  ����������� ������������������  6����������� ������������������  주����������� ������������������  ����������� ������������������  

(1명,����������� ������������������  타����������� ������������������  업무와����������� ������������������  병행,����������� ������������������  3개����������� ������������������  브라우저,����������� ������������������  ����������� ������������������  4주����������� ������������������  완료,����������� ������������������  2주����������� ������������������  안정화)����������� ������������������  

자동화����������� ������������������  Test����������� ������������������  Case����������� ������������������  ����������� ������������������   396����������� ������������������  개����������� ������������������  TC����������� ������������������  (96%)����������� ������������������  

스크립트����������� ������������������  정보����������� ������������������  스크립트����������� ������������������  파일����������� ������������������  :����������� ������������������  106개����������� ������������������  이미지����������� ������������������  파일����������� ������������������  :����������� ������������������  ����������� ������������������  536개����������� ������������������  전체����������� ������������������  용량����������� ������������������  :����������� ������������������  408KB����������� ������������������  

테스트����������� ������������������  소요시간����������� ������������������  ����������� ������������������   IE����������� ������������������  8����������� ������������������  기준����������� ������������������  :����������� ������������������  60분����������� ������������������  

v 적용����������� ������������������  현황����������� ������������������  

5.2����������� ������������������  자동화����������� ������������������  상세����������� ������������������  

Page 40: 116 deview2013-guitar

5.3����������� ������������������  ����������� ������������������  Iteration����������� ������������������  개발����������� ������������������  &����������� ������������������  테스트����������� ������������������  자동화����������� ������������������  

0

50

100

자동화 TC 작성 기능 구현

Page 41: 116 deview2013-guitar

ü  24시간����������� ������������������  모니터링����������� ������������������  

ü  다량의����������� ������������������  데이터����������� ������������������  검증����������� ������������������  

ü  Client����������� ������������������  성능����������� ������������������  테스트����������� ������������������  ����������� ������������������  

ü  간헐적����������� ������������������  오류����������� ������������������  재현����������� ������������������  

ü  정성적����������� ������������������  테스트����������� ������������������  

ü  캠핑장����������� ������������������  예약����������� ������������������  

5.4����������� ������������������  ����������� ������������������  다양한����������� ������������������  활용����������� ������������������  

Page 42: 116 deview2013-guitar

5.5����������� ������������������  ����������� ������������������  Try����������� ������������������  It!����������� ������������������  

http://dev.naver.com/projects/guitar����������� ������������������  

Page 43: 116 deview2013-guitar

Q&A����������� ������������������  

Page 44: 116 deview2013-guitar

THANK����������� ������������������  YOU����������� ������������������