GUITAR����������� ������������������ :����������� ������������������ ����������� ������������������ UI테스트����������� ������������������ 자동화����������� ������������������ 어디까지����������� ������������������ 해봤니?����������� ������������������
손민혁����������� ������������������ 차장����������� ������������������ /����������� ������������������ 지도서비스개발2팀����������� ������������������ ����������� ������������������
NAVER����������� ������������������
CONTENTS����������� ������������������
1.����������� ������������������ Prologue����������� ������������������
2.����������� ������������������ 서술����������� ������������������
3.����������� ������������������ 그림����������� ������������������
4.����������� ������������������ GUITAR����������� ������������������
5.����������� ������������������ 적용����������� ������������������
����������� ������������������ ����������� ������������������
����������� ������������������
1.����������� ������������������ Prologue����������� ������������������
자동화����������� ������������������ 적용보고����������� ������������������ 시간에…⋯����������� ������������������
����������� ������������������ 음…⋯,����������� ������������������ 역시����������� ������������������ 플래시는����������� ������������������
그렇죠?����������� ������������������ ㅎㅎ����������� ������������������ 잘����������� ������������������ 하셨네요.����������� ������������������ 근데����������� ������������������ 플래시도����������� ������������������ ����������� ������������������ ����������� ������������������ 자동화����������� ������������������ 되나요?����������� ������������������ ����������� ������������������
…⋯해서����������� ������������������ 자동화����������� ������������������ 적용����������� ������������������ ����������� ������������������ 완료했습니다.����������� ������������������ ����������� ������������������ 관련����������� ������������������ 질문����������� ������������������ 있나요?����������� ������������������
팀원2����������� ������������������
팀원1����������� ������������������
팀원3����������� ������������������
찾아봤는데.����������� ������������������ 플래시는����������� ������������������ 방법이����������� ������������������ 없더라구요����������� ������������������ .ㅠ����������� ������������������ 넹����������� ������������������ ^^;
1.1����������� ������������������ QA에게����������� ������������������ 테스트����������� ������������������ 자동화란?����������� ������������������
1.2����������� ������������������ 개발자에게����������� ������������������ 테스트����������� ������������������ 자동화란?����������� ������������������
자동화����������� ������������������ 파일럿����������� ������������������ 적용����������� ������������������ 보고서����������� ������������������ 중에…⋯����������� ������������������
����������� ������������������ Selenium����������� ������������������ 으로����������� ������������������ 자동화����������� ������������������ 가능한����������� ������������������ 부분����������� ������������������
����������� ������������������
29%����������� ������������������ ����������� ������������������ ����������� ������������������
1.3����������� ������������������ 자동화의����������� ������������������ 현실����������� ������������������
ü 담당����������� ������������������ QA/TE가����������� ������������������ 바뀌면����������� ������������������ 자동화는����������� ������������������ 중단되거나����������� ������������������ 새롭게����������� ������������������ 다시����������� ������������������ 시작한다.����������� ������������������
ü 사용자����������� ������������������ 98%가����������� ������������������ IE를����������� ������������������ 쓰지만,����������� ������������������ 자동화는����������� ������������������ Firefox에서����������� ������������������ 한다.����������� ������������������ ����������� ������������������
ü 도구에서����������� ������������������ 지원되지����������� ������������������ 않는����������� ������������������ 영역(Flash,����������� ������������������ 시스템����������� ������������������ 창)은����������� ������������������ 테스트에서����������� ������������������ 제외한다.����������� ������������������ ����������� ������������������
ü 자동화����������� ������������������ 테스트����������� ������������������ 코드의����������� ������������������ 평균����������� ������������������ 유통기한은����������� ������������������ 3개월이다.����������� ������������������
자동화����������� ������������������ ����������� ������������������ 스크립트����������� ������������������
그래서…⋯����������� ������������������
����������� ������������������
“유지����������� ������������������ 보수����������� ������������������ 가능한����������� ������������������ 테스트����������� ������������������ 자동화”를����������� ������������������ 위해����������� ������������������ ����������� ������������������
����������� ������������������
직접����������� ������������������ “GUITAR”를����������� ������������������ 만들었습니다.����������� ������������������
1.5����������� ������������������ 목����������� ������������������ 마른����������� ������������������ 사람이����������� ������������������ 우물판다����������� ������������������
2.����������� ������������������ 서술����������� ������������������
����������� ������������������
[명사]����������� ������������������ 사건이나����������� ������������������ 생각����������� ������������������ 따위를����������� ������������������ 차례대로����������� ������������������ 말하거나����������� ������������������ 적음.����������� ������������������ ����������� ������������������
2.1����������� ������������������ 서술����������� ������������������
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?����������� ������������������
명령����������� ������������������ 대상����������� ������������������
2.2����������� ������������������ “명령”����������� ������������������ 과����������� ������������������ “대상”����������� ������������������
성공����������� ������������������
생성����������� ������������������
종료����������� ������������������
접속����������� ������������������
클릭����������� ������������������
입력����������� ������������������
확인����������� ������������������
선택����������� ������������������
있으면����������� ������������������ 없으면����������� ������������������
실행����������� ������������������
설정����������� ������������������
대기����������� ������������������
누른����������� ������������������
내용확인����������� ������������������
같으면����������� ������������������ 더블클릭����������� ������������������ 마우스휠업����������� ������������������
우클릭����������� ������������������ 이동����������� ������������������
내용이없으면����������� ������������������
실패����������� ������������������
마우스숨김����������� ������������������ 캡쳐����������� ������������������
마우스휠다운����������� ������������������
같지않으면����������� ������������������
내용이있으면����������� ������������������
계산����������� ������������������
드롭����������� ������������������
드래그����������� ������������������
홈으로가기����������� ������������������
쓸어넘기기����������� ������������������
2.3����������� ������������������ “명령”����������� ������������������
0.5초����������� ������������������
“http://www.naver.com”����������� ������������������ ����������� ������������������ ����������� ������������������
“GUI����������� ������������������ 테스트����������� ������������������ 자동화”����������� ������������������
$메인URL����������� ������������������
2.4����������� ������������������ “대상”����������� ������������������
[input:id=query]����������� ������������������
3.����������� ������������������ 그림����������� ������������������
3.1����������� ������������������ 그림����������� ������������������
3.2����������� ������������������ 윌리를����������� ������������������ 찾아서…⋯����������� ������������������
3.2����������� ������������������ 윌리를����������� ������������������ 찾아서…⋯����������� ������������������ (Cont.)����������� ������������������
• ����������� ������������������ Tolerance����������� ������������������ :����������� ������������������ =����������� ������������������
X=����������� ������������������
O
O
0����������� ������������������ 5����������� ������������������
32bit����������� ������������������ Color����������� ������������������
16Bit����������� ������������������ Color����������� ������������������
3.3����������� ������������������ Tolerance����������� ������������������
원본����������� ������������������ 이미지����������� ������������������
=����������� ������������������ XTolerance����������� ������������������ 통과����������� ������������������ 이미지����������� ������������������
O
X
=����������� ������������������
=����������� ������������������ Pixel����������� ������������������ CRC����������� ������������������ 비교����������� ������������������
Pixel����������� ������������������ CRC����������� ������������������ (0x77)����������� ������������������
Pixel����������� ������������������ CRC����������� ������������������ (0x00)����������� ������������������
Pixel����������� ������������������ CRC����������� ������������������ (0xAA)����������� ������������������
Pixel����������� ������������������ CRC����������� ������������������ (0x77)����������� ������������������
3.4����������� ������������������ CRC����������� ������������������
3.5����������� ������������������ Smart����������� ������������������ Search����������� ������������������
3.6����������� ������������������ 다중����������� ������������������ 이미지����������� ������������������
Firefox����������� ������������������
Chrome����������� ������������������
3.7����������� ������������������ 인접����������� ������������������ 이미지����������� ������������������
3.8����������� ������������������ 투명����������� ������������������ 이미지����������� ������������������
4.����������� ������������������ 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����������� ������������������ 특징����������� ������������������
문맥����������� ������������������ 자동����������� ������������������ 점검����������� ������������������
4.2����������� ������������������ 스크립트����������� ������������������ 작성����������� ������������������
4.2����������� ������������������ 스크립트����������� ������������������ 작성����������� ������������������ (Cont.)����������� ������������������
����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������
결과확인����������� ������������������
GUITAR����������� ������������������ ����������� ������������������
Script����������� ������������������ 유지����������� ������������������ 보수����������� ������������������ ����������� ������������������ Script����������� ������������������ 실행/결과����������� ������������������ 관리����������� ������������������
사용자����������� ������������������
실행����������� ������������������
����������� ������������������ GUITAR����������� ������������������ Agent����������� ������������������
(원격����������� ������������������ 관리)����������� ������������������ ����������� ������������������
Tomcat����������� ������������������
Test����������� ������������������ Script����������� ������������������
Script����������� ������������������
Image����������� ������������������
Test����������� ������������������ Result����������� ������������������
TC유지보수����������� ������������������ 테스트실행����������� ������������������
원격����������� ������������������
Email����������� ������������������
SMS����������� ������������������
Web����������� ������������������
HTML����������� ������������������
4.3����������� ������������������ 시스템����������� ������������������ 구성����������� ������������������
XML����������� ������������������
CI����������� ������������������ ����������� ������������������
테스트����������� ������������������ ����������� ������������������ 스크립트����������� ������������������
지도����������� ������������������
지도����������� ������������������ SUS����������� ������������������ 보행자����������� ������������������ PJT����������� ������������������
지도SUS_02����������� ������������������
이미지����������� ������������������
지도SUS_01����������� ������������������
이미지����������� ������������������
가계부����������� ������������������
공용����������� ������������������ ����������� ������������������ 스크립트����������� ������������������
서비스����������� ������������������ 공통����������� ������������������
로그인����������� ������������������
이미지����������� ������������������
지도����������� ������������������
보행자����������� ������������������ 공통����������� ������������������
이미지����������� ������������������
공용����������� ������������������ ����������� ������������������ 이미지����������� ������������������
지도����������� ������������������
이미지����������� ������������������
가계부����������� ������������������
이미지����������� ������������������
4.4����������� ������������������ 스크립트����������� ������������������ 구조����������� ������������������
4.5����������� ������������������ Cross����������� ������������������ Platform����������� ������������������ &����������� ������������������ Browser����������� ������������������
����������� ������������������
PC����������� ������������������
Emulator����������� ������������������ (AVD)����������� ������������������
����������� ������������������
Mobile����������� ������������������ Device����������� ������������������
VNC����������� ������������������ Server����������� ������������������
VNC����������� ������������������ Server����������� ������������������
VNC����������� ������������������ Server����������� ������������������
GUITAR����������� ������������������
VNC����������� ������������������ ����������� ������������������ Client����������� ������������������
4.6����������� ������������������ Mobile����������� ������������������
4.6����������� ������������������ Mobile����������� ������������������ (Cont.)����������� ������������������
4.6����������� ������������������ Mobile����������� ������������������ (Cont.)����������� ������������������
4.7����������� ������������������ CI����������� ������������������ 연동����������� ������������������
CI����������� ������������������ Server����������� ������������������ (Hudson,����������� ������������������ Jenkins)����������� ������������������
Test����������� ������������������ Script����������� ������������������ (SVN)����������� ������������������
GUITAR����������� ������������������ ����������� ������������������ TEST����������� ������������������ Server����������� ������������������
개발����������� ������������������
REAL����������� ������������������
BETA����������� ������������������
ALPHA����������� ������������������
개인����������� ������������������ TEST����������� ������������������ PC����������� ������������������ (GUITAR)����������� ������������������
Script����������� ������������������ 유지����������� ������������������ 보수����������� ������������������
테스트����������� ������������������ 서버����������� ������������������
4.7����������� ������������������ CI����������� ������������������ 연동����������� ������������������ (Cont.)����������� ������������������
4.8����������� ������������������ 리포트����������� ������������������
5.����������� ������������������ 적용����������� ������������������
123 29.9%
288 70.1% 396
96.4%
15 3.6%
5.1����������� ������������������ 테스트����������� ������������������ 커버리지����������� ������������������
Selenium����������� ������������������ GUITAR����������� ������������������
v 네이버����������� ������������������ 지도����������� ������������������ 서비스����������� ������������������ 자동화����������� ������������������ 적용����������� ������������������ ����������� ������������������ (Test����������� ������������������ Case����������� ������������������ 411건)����������� ������������������
내용����������� ������������������
스크립트����������� ������������������ 작성����������� ������������������ 리소스����������� ������������������ ����������� ������������������ 6����������� ������������������ 주����������� ������������������ ����������� ������������������
(1명,����������� ������������������ 타����������� ������������������ 업무와����������� ������������������ 병행,����������� ������������������ 3개����������� ������������������ 브라우저,����������� ������������������ ����������� ������������������ 4주����������� ������������������ 완료,����������� ������������������ 2주����������� ������������������ 안정화)����������� ������������������
자동화����������� ������������������ Test����������� ������������������ Case����������� ������������������ ����������� ������������������ 396����������� ������������������ 개����������� ������������������ TC����������� ������������������ (96%)����������� ������������������
스크립트����������� ������������������ 정보����������� ������������������ 스크립트����������� ������������������ 파일����������� ������������������ :����������� ������������������ 106개����������� ������������������ 이미지����������� ������������������ 파일����������� ������������������ :����������� ������������������ ����������� ������������������ 536개����������� ������������������ 전체����������� ������������������ 용량����������� ������������������ :����������� ������������������ 408KB����������� ������������������
테스트����������� ������������������ 소요시간����������� ������������������ ����������� ������������������ IE����������� ������������������ 8����������� ������������������ 기준����������� ������������������ :����������� ������������������ 60분����������� ������������������
v 적용����������� ������������������ 현황����������� ������������������
5.2����������� ������������������ 자동화����������� ������������������ 상세����������� ������������������
5.3����������� ������������������ ����������� ������������������ Iteration����������� ������������������ 개발����������� ������������������ &����������� ������������������ 테스트����������� ������������������ 자동화����������� ������������������
0
50
100
자동화 TC 작성 기능 구현
ü 24시간����������� ������������������ 모니터링����������� ������������������
ü 다량의����������� ������������������ 데이터����������� ������������������ 검증����������� ������������������
ü Client����������� ������������������ 성능����������� ������������������ 테스트����������� ������������������ ����������� ������������������
ü 간헐적����������� ������������������ 오류����������� ������������������ 재현����������� ������������������
ü 정성적����������� ������������������ 테스트����������� ������������������
ü 캠핑장����������� ������������������ 예약����������� ������������������
5.4����������� ������������������ ����������� ������������������ 다양한����������� ������������������ 활용����������� ������������������
5.5����������� ������������������ ����������� ������������������ Try����������� ������������������ It!����������� ������������������
http://dev.naver.com/projects/guitar����������� ������������������
Q&A����������� ������������������
THANK����������� ������������������ YOU����������� ������������������