SlideShare ist ein Scribd-Unternehmen logo
1 von 41
Downloaden Sie, um offline zu lesen
Monkeyrunner를 이용한
모바일 테스트 자동화
런칭 기술지원팀
이병준
테스트 자동화라는 단어를 보고 기대하는 것들,
자동으로 테스트가 되는 것
입력(SW, 게임)을 하면,
SW
GAME
테스트
완료
부분 자동화를 시도해보자
완전 자동화는 힘들지만,
어떤 것을 사용해서 만들 수 있을까?
Monkeyrunner
1. 나는 QA(의 탈을 쓴 개발자) 이면서,
2. (게임)개발자 도움을 받을 수 없고,
3. (게임)소스 코드를 가지고 있지 않고,
4. 타 어플리케이션에 의존적이지 않고,
5. 개발 편의성이 좋은 것이 좋다!
나에게 적합한 것은 뭐지?
(게임)개발자 도움을 받을 수 없고,
(게임)소스 코드를 가지고 있지 않기 때문에
Robotium은 개발된 소스코드에
테스트 코드를 추가하는 형식인데
적합하지 않구나!
독립 솔루션이어야 하기 때문에
Sikuli는 다른 프로그램(ex>
Mobizen)으로 PC와 연결해서
사용하는데,
적합하지 않구나!
1.Monkeyrunner
• 독립 솔루션
• Google 개발
• Jython
• ≒ Python
그래서,
2. Sikuli
• 비독립 솔루션
• Mobizen
등
• 오랜 기간 사용
• Jython
• ≒ Python
3. Robotium
• 비독립 솔루션
• 프로젝트와 연동
• Java
단순 클릭 기계
처음에 한 일,
1. 작업 중 실패를 하더라도
정상 동작
2. 기록도 없고 그냥 단순 반복
안정적인 동작이 마음에 드는구나
1.점수는 마음에 들지만,
2.점수 외 다른 데이터가 없어요
잘 동작 했어요 그런데,…
테스트 계정이,
1등을 했어요!
점수만 높았어요 ^^*
잘 동작하는데 기록을 남겨 볼까?
이제부터 사서 고생하기,
나도 성격이 특이하지만 사실 팀장님이 시켰어요, 뿌우~
• 단순 텍스트 기반으로 각종 사건 기록,
• 시간, 내역 등을 남기자,
• 어떻게 기록을 남길까?
기록은 어떻게 남기지?
• Python Logger 모듈은 매우 좋다!
이렇게 남겼습니다!
로그 열람은
GamautLogView를 사용!
이왕 하는 거 통계를 내볼까?
사람의 욕심은 끝이 없구나,
• Logger에서 기록한 로그에서 의미
있는 데이터를 추출할까?
• 처음부터 DB에 기록을 넣어서 통계를
낼까?
갈등…
엄마가 좋아?
아빠가 좋아?
뭘 해야 하지?
• 개발 해야 하는 양은 비슷하다!
• Sqlite3를 격하게 사랑하니까,
• JDBC를 이용해서 Sqlite3를 붙이자!
에라 모르겠다~
• 쿼리를 이용하여 각종 데이터 추출
• Sqlite Expert Personal 이용
• 승패, 게임 시각, 게임 수 기록
Sqlite3 에서 통계 데이터를 추출!
• 전체 게임 수,
• 승리,
• 패배,
데이터 추출 예
Sqlite3 에서 통계 데이터를 추출!
이젠 웹 어플리케이션까지?
허허허허허…
사람의 욕심은 정말 끝이 없구나,…
• 보다 쉽게 통계 자료를 보고 싶은 욕구
• 차트도 나오고,
• 표도 보여주고
• 그런 웹 어플리케이션을 개발하자는
의지
데이터베이스가 생기니까,
1.ASP .NET MVC
• 늘 하던 것
• (나는) 재미 없다
• 빨리 할 수 있지만,
• (나는) 재미 없다
어떤 플랫폼에서 개발할까?
2. Node.js
• 처음 하는 것
• (나는) 재미 있다
• 시간은 걸리지만,
• (나는) 재미 있다
• 독립 솔루션
• Node.js 만 설치하면 구동 ok!
• 웹 서버니 뭐니 복잡한 설치 없다!
• 일반 사용자가 쓴다면?
• 설치와 사용이 간편한 Node.js가 절대로 유리!
Node.js Express 선택
나만 재미 있으면 그걸로 하는 겁니다…
1.ASP .NET MVC
• 늘 하던 것
• (나는) 재미 없다
• 빨리 할 수 있지만,
• (나는) 재미 없다
그래서,
2. Node.js
• 처음 하는 것
• (나는) 재미 있다
• 시간은 걸리지만,
• (나는) 재미 있다
• 모든 기록 열람 화면
Node.js로 만든 웹 어플리케이션
• 경기 기록 열람 화면 • 승률 열람 화면
대격변,…!
쉽고, 간편하게 쓸 수 있다!
또 다른 개발은 없었나요?
이게 다야?
• 시작할 때마다 내 모듈을 추가해야 한다
• import sys -> sys.append(‘경로 추가’) ->
from 내 모듈 경로 import 내 모듈
• 너무 지겹다!
• 3번 이상 반복 되는 것은 자동화가 필수!
• 그래서 개발 했습니다
Winform C#을 이용한 런처 개발
Monkeyrunner 런처
실행도 자동으로 하고,
자동으로 문자 입력도 합니다!
너무 거창한 것 아닌가?
• 블랙박스(Blackbox) 테스트와
• 화이트박스(Whitebox) 테스트가 있다
• 이 방법은 블랙박스 테스트를 자동화 한다
• 추가로 통계 데이터까지 얻을 수 있다
• 그래서 개발 했습니다
테스팅은,
나만 재미 있으면 하는 겁니다…
• 급변하는 모바일
• PC 게임 (또는 솔루션)보다 수명 주기가
비교적 짧고,
• 개발 기간도 비교적 짧고,
• 그래서 빠른 출시와 테스트가 필요!
그리고 이제는 모바일이 대세!
• 블랙박스 테스트 자동화는 큰 의미가
있다
• 통합된 테스트 솔루션 구축을 위한 사전
포석
• 나 자신의 기술력 과시…
• Jython, C# Winform, Node.js, Java 등 다 잘하는데?
그래서,
요약,
반복 테스트
+ 텍스트 로그
지속적인 고도화를 통해 “의미 있는 데이터”를
가진 테스트 시스템으로 진화
반복 테스트
테스트
+ 텍스트 로그
+ DB (통계)
+ Web App.
+ 런처
시연
4x 재생
실제 동작 시연
• Jython, Python
• Python logger, JDBC Sqlite3
• C#
• .net framework, winform
• Node.js
• Express, node-sqlite3
• Sqlite3
• Sqlite Expert Personal
사용한 프레임워크와 기술
• Jython
• http://www.jython.org/
• Python
• http://www.python.org/
• C#
• http://msdn.microsoft.com/ko-kr/library/kx37x362.aspx
• Node.js
• Express
• http://expressjs.com/
• node-sqlite3
• https://github.com/developmentseed/node-sqlite3
• Sqlite3
• http://www.sqlite.org/
• Sqlite Expert Personal
• http://www.sqliteexpert.com/
Reference
NDC 2013 Monkeyrunner를 이용한 모바일 테스트 자동화

Weitere ähnliche Inhalte

Andere mochten auch

글로벌 게임 런칭과 Cdn의 활용.pdf
글로벌 게임 런칭과 Cdn의 활용.pdf글로벌 게임 런칭과 Cdn의 활용.pdf
글로벌 게임 런칭과 Cdn의 활용.pdfHana Lee
 
[GAMENEXT] 일본 모바일 시장과 주요 성공 요인(Metaps)
[GAMENEXT] 일본 모바일 시장과 주요 성공 요인(Metaps)[GAMENEXT] 일본 모바일 시장과 주요 성공 요인(Metaps)
[GAMENEXT] 일본 모바일 시장과 주요 성공 요인(Metaps)GAMENEXT Works
 
[IGC 2016] 에피드게임즈 한정현 - 런칭 후 이틀만에 전액환불 그리고 재시작
[IGC 2016] 에피드게임즈 한정현 - 런칭 후 이틀만에 전액환불 그리고 재시작[IGC 2016] 에피드게임즈 한정현 - 런칭 후 이틀만에 전액환불 그리고 재시작
[IGC 2016] 에피드게임즈 한정현 - 런칭 후 이틀만에 전액환불 그리고 재시작강 민우
 
[GAMENEXT] 성공적인 모바일 게임 런칭을 위한 전략 (Tapjoy)
[GAMENEXT] 성공적인 모바일 게임 런칭을 위한 전략 (Tapjoy)[GAMENEXT] 성공적인 모바일 게임 런칭을 위한 전략 (Tapjoy)
[GAMENEXT] 성공적인 모바일 게임 런칭을 위한 전략 (Tapjoy)GAMENEXT Works
 
모바일 게임 테스트 자동화 Igc 2016
모바일 게임 테스트 자동화 Igc 2016모바일 게임 테스트 자동화 Igc 2016
모바일 게임 테스트 자동화 Igc 2016Jongwon Kim
 
소셜카지노 초기런칭 및 실험결과 공유
소셜카지노 초기런칭 및 실험결과 공유소셜카지노 초기런칭 및 실험결과 공유
소셜카지노 초기런칭 및 실험결과 공유Keunhyuck Kim
 
Gaming on AWS - 1. AWS로 글로벌 게임 런칭하기 - 장르별 아키텍처 중심
Gaming on AWS - 1. AWS로 글로벌 게임 런칭하기 - 장르별 아키텍처 중심Gaming on AWS - 1. AWS로 글로벌 게임 런칭하기 - 장르별 아키텍처 중심
Gaming on AWS - 1. AWS로 글로벌 게임 런칭하기 - 장르별 아키텍처 중심Amazon Web Services Korea
 
20160427 ndc16 글로벌 원빌드 모바일 게임 런칭과 라이브 개발
20160427 ndc16 글로벌 원빌드 모바일 게임 런칭과 라이브 개발20160427 ndc16 글로벌 원빌드 모바일 게임 런칭과 라이브 개발
20160427 ndc16 글로벌 원빌드 모바일 게임 런칭과 라이브 개발Heeyoung Lee
 
모바일 게임 테스트 자동화 (Appium 확장)
모바일 게임 테스트 자동화 (Appium 확장)모바일 게임 테스트 자동화 (Appium 확장)
모바일 게임 테스트 자동화 (Appium 확장)Jongwon Kim
 
怖くないGradle設定とBazel
怖くないGradle設定とBazel怖くないGradle設定とBazel
怖くないGradle設定とBazelshimada tatsuya
 
Mobile issue report - 한국 모바일게임 시장 분석
Mobile issue report - 한국 모바일게임 시장 분석Mobile issue report - 한국 모바일게임 시장 분석
Mobile issue report - 한국 모바일게임 시장 분석Nasmedia
 

Andere mochten auch (12)

글로벌 게임 런칭과 Cdn의 활용.pdf
글로벌 게임 런칭과 Cdn의 활용.pdf글로벌 게임 런칭과 Cdn의 활용.pdf
글로벌 게임 런칭과 Cdn의 활용.pdf
 
[GAMENEXT] 일본 모바일 시장과 주요 성공 요인(Metaps)
[GAMENEXT] 일본 모바일 시장과 주요 성공 요인(Metaps)[GAMENEXT] 일본 모바일 시장과 주요 성공 요인(Metaps)
[GAMENEXT] 일본 모바일 시장과 주요 성공 요인(Metaps)
 
Untitled document
Untitled documentUntitled document
Untitled document
 
[IGC 2016] 에피드게임즈 한정현 - 런칭 후 이틀만에 전액환불 그리고 재시작
[IGC 2016] 에피드게임즈 한정현 - 런칭 후 이틀만에 전액환불 그리고 재시작[IGC 2016] 에피드게임즈 한정현 - 런칭 후 이틀만에 전액환불 그리고 재시작
[IGC 2016] 에피드게임즈 한정현 - 런칭 후 이틀만에 전액환불 그리고 재시작
 
[GAMENEXT] 성공적인 모바일 게임 런칭을 위한 전략 (Tapjoy)
[GAMENEXT] 성공적인 모바일 게임 런칭을 위한 전략 (Tapjoy)[GAMENEXT] 성공적인 모바일 게임 런칭을 위한 전략 (Tapjoy)
[GAMENEXT] 성공적인 모바일 게임 런칭을 위한 전략 (Tapjoy)
 
모바일 게임 테스트 자동화 Igc 2016
모바일 게임 테스트 자동화 Igc 2016모바일 게임 테스트 자동화 Igc 2016
모바일 게임 테스트 자동화 Igc 2016
 
소셜카지노 초기런칭 및 실험결과 공유
소셜카지노 초기런칭 및 실험결과 공유소셜카지노 초기런칭 및 실험결과 공유
소셜카지노 초기런칭 및 실험결과 공유
 
Gaming on AWS - 1. AWS로 글로벌 게임 런칭하기 - 장르별 아키텍처 중심
Gaming on AWS - 1. AWS로 글로벌 게임 런칭하기 - 장르별 아키텍처 중심Gaming on AWS - 1. AWS로 글로벌 게임 런칭하기 - 장르별 아키텍처 중심
Gaming on AWS - 1. AWS로 글로벌 게임 런칭하기 - 장르별 아키텍처 중심
 
20160427 ndc16 글로벌 원빌드 모바일 게임 런칭과 라이브 개발
20160427 ndc16 글로벌 원빌드 모바일 게임 런칭과 라이브 개발20160427 ndc16 글로벌 원빌드 모바일 게임 런칭과 라이브 개발
20160427 ndc16 글로벌 원빌드 모바일 게임 런칭과 라이브 개발
 
모바일 게임 테스트 자동화 (Appium 확장)
모바일 게임 테스트 자동화 (Appium 확장)모바일 게임 테스트 자동화 (Appium 확장)
모바일 게임 테스트 자동화 (Appium 확장)
 
怖くないGradle設定とBazel
怖くないGradle設定とBazel怖くないGradle設定とBazel
怖くないGradle設定とBazel
 
Mobile issue report - 한국 모바일게임 시장 분석
Mobile issue report - 한국 모바일게임 시장 분석Mobile issue report - 한국 모바일게임 시장 분석
Mobile issue report - 한국 모바일게임 시장 분석
 

Ähnlich wie NDC 2013 Monkeyrunner를 이용한 모바일 테스트 자동화

NDC17 장창완(최종)
NDC17 장창완(최종)NDC17 장창완(최종)
NDC17 장창완(최종)창완 장
 
에어헌터 for kakao 포스트모템(공개용)
에어헌터 for kakao 포스트모템(공개용)에어헌터 for kakao 포스트모템(공개용)
에어헌터 for kakao 포스트모템(공개용)Woo Yeong Choi
 
NDC17. "솔리테어: 덱다웃" 유니티 모바일 테스팅 기법들
NDC17. "솔리테어: 덱다웃" 유니티 모바일 테스팅 기법들NDC17. "솔리테어: 덱다웃" 유니티 모바일 테스팅 기법들
NDC17. "솔리테어: 덱다웃" 유니티 모바일 테스팅 기법들대원 김
 
16 학술제 마무리 자료
16 학술제 마무리 자료16 학술제 마무리 자료
16 학술제 마무리 자료Junyoung Jung
 
커뮤니티와 함께한 예비개발자 성장기- 조성수님
커뮤니티와 함께한 예비개발자 성장기- 조성수님커뮤니티와 함께한 예비개발자 성장기- 조성수님
커뮤니티와 함께한 예비개발자 성장기- 조성수님NAVER D2
 
131 deview 2013 yobi-채수원
131 deview 2013 yobi-채수원131 deview 2013 yobi-채수원
131 deview 2013 yobi-채수원NAVER D2
 
2021년 1월 30일 개발자 이야기
2021년 1월 30일 개발자 이야기2021년 1월 30일 개발자 이야기
2021년 1월 30일 개발자 이야기Jay Park
 
My Way, Your Way
My Way, Your WayMy Way, Your Way
My Way, Your WayChris Ohk
 
애자일 스크럼과 JIRA
애자일 스크럼과 JIRA 애자일 스크럼과 JIRA
애자일 스크럼과 JIRA Terry Cho
 
[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들
[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들
[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들MinGeun Park
 
02. After developed - 개발한 뒤에. 테스트 배포 및 마켓 관리.
02. After developed - 개발한 뒤에. 테스트 배포 및 마켓 관리.02. After developed - 개발한 뒤에. 테스트 배포 및 마켓 관리.
02. After developed - 개발한 뒤에. 테스트 배포 및 마켓 관리.Abraham Park
 
(게임개발을위한) printf("Hello World!"); 그 이상의 콘솔 프로그래밍
(게임개발을위한) printf("Hello World!"); 그 이상의 콘솔 프로그래밍(게임개발을위한) printf("Hello World!"); 그 이상의 콘솔 프로그래밍
(게임개발을위한) printf("Hello World!"); 그 이상의 콘솔 프로그래밍NDOORS
 
임태현, 서버점검 제로에의 도전, NDC2011
임태현, 서버점검 제로에의 도전, NDC2011임태현, 서버점검 제로에의 도전, NDC2011
임태현, 서버점검 제로에의 도전, NDC2011devCAT Studio, NEXON
 
Naver Campus Hackday Winter 2017 참가 후기
Naver Campus Hackday Winter 2017 참가 후기Naver Campus Hackday Winter 2017 참가 후기
Naver Campus Hackday Winter 2017 참가 후기Youngbin Han
 
유니티3D 그리고 웹통신
유니티3D 그리고 웹통신유니티3D 그리고 웹통신
유니티3D 그리고 웹통신현욱 김
 
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018devCAT Studio, NEXON
 
170513 4차 산업 혁명과 미래교육 컴퓨팅 교육의 동향과 해명 @송곡초
170513 4차 산업 혁명과 미래교육   컴퓨팅 교육의 동향과 해명 @송곡초170513 4차 산업 혁명과 미래교육   컴퓨팅 교육의 동향과 해명 @송곡초
170513 4차 산업 혁명과 미래교육 컴퓨팅 교육의 동향과 해명 @송곡초Choi Man Dream
 
오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)
오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)
오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)Jaewon Choi
 
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재NAVER D2
 
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDYWHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDYHyun-woo Park
 

Ähnlich wie NDC 2013 Monkeyrunner를 이용한 모바일 테스트 자동화 (20)

NDC17 장창완(최종)
NDC17 장창완(최종)NDC17 장창완(최종)
NDC17 장창완(최종)
 
에어헌터 for kakao 포스트모템(공개용)
에어헌터 for kakao 포스트모템(공개용)에어헌터 for kakao 포스트모템(공개용)
에어헌터 for kakao 포스트모템(공개용)
 
NDC17. "솔리테어: 덱다웃" 유니티 모바일 테스팅 기법들
NDC17. "솔리테어: 덱다웃" 유니티 모바일 테스팅 기법들NDC17. "솔리테어: 덱다웃" 유니티 모바일 테스팅 기법들
NDC17. "솔리테어: 덱다웃" 유니티 모바일 테스팅 기법들
 
16 학술제 마무리 자료
16 학술제 마무리 자료16 학술제 마무리 자료
16 학술제 마무리 자료
 
커뮤니티와 함께한 예비개발자 성장기- 조성수님
커뮤니티와 함께한 예비개발자 성장기- 조성수님커뮤니티와 함께한 예비개발자 성장기- 조성수님
커뮤니티와 함께한 예비개발자 성장기- 조성수님
 
131 deview 2013 yobi-채수원
131 deview 2013 yobi-채수원131 deview 2013 yobi-채수원
131 deview 2013 yobi-채수원
 
2021년 1월 30일 개발자 이야기
2021년 1월 30일 개발자 이야기2021년 1월 30일 개발자 이야기
2021년 1월 30일 개발자 이야기
 
My Way, Your Way
My Way, Your WayMy Way, Your Way
My Way, Your Way
 
애자일 스크럼과 JIRA
애자일 스크럼과 JIRA 애자일 스크럼과 JIRA
애자일 스크럼과 JIRA
 
[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들
[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들
[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들
 
02. After developed - 개발한 뒤에. 테스트 배포 및 마켓 관리.
02. After developed - 개발한 뒤에. 테스트 배포 및 마켓 관리.02. After developed - 개발한 뒤에. 테스트 배포 및 마켓 관리.
02. After developed - 개발한 뒤에. 테스트 배포 및 마켓 관리.
 
(게임개발을위한) printf("Hello World!"); 그 이상의 콘솔 프로그래밍
(게임개발을위한) printf("Hello World!"); 그 이상의 콘솔 프로그래밍(게임개발을위한) printf("Hello World!"); 그 이상의 콘솔 프로그래밍
(게임개발을위한) printf("Hello World!"); 그 이상의 콘솔 프로그래밍
 
임태현, 서버점검 제로에의 도전, NDC2011
임태현, 서버점검 제로에의 도전, NDC2011임태현, 서버점검 제로에의 도전, NDC2011
임태현, 서버점검 제로에의 도전, NDC2011
 
Naver Campus Hackday Winter 2017 참가 후기
Naver Campus Hackday Winter 2017 참가 후기Naver Campus Hackday Winter 2017 참가 후기
Naver Campus Hackday Winter 2017 참가 후기
 
유니티3D 그리고 웹통신
유니티3D 그리고 웹통신유니티3D 그리고 웹통신
유니티3D 그리고 웹통신
 
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
 
170513 4차 산업 혁명과 미래교육 컴퓨팅 교육의 동향과 해명 @송곡초
170513 4차 산업 혁명과 미래교육   컴퓨팅 교육의 동향과 해명 @송곡초170513 4차 산업 혁명과 미래교육   컴퓨팅 교육의 동향과 해명 @송곡초
170513 4차 산업 혁명과 미래교육 컴퓨팅 교육의 동향과 해명 @송곡초
 
오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)
오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)
오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)
 
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
 
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDYWHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY
 

Kürzlich hochgeladen

JMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement MethodologyJMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement MethodologyJMP Korea
 
JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!JMP Korea
 
데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법JMP Korea
 
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개JMP Korea
 
공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화JMP Korea
 
JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례JMP Korea
 
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석JMP Korea
 
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?Jay Park
 

Kürzlich hochgeladen (8)

JMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement MethodologyJMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
 
JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!
 
데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법
 
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
 
공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화
 
JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례
 
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
 
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
 

NDC 2013 Monkeyrunner를 이용한 모바일 테스트 자동화

  • 1. Monkeyrunner를 이용한 모바일 테스트 자동화 런칭 기술지원팀 이병준
  • 2. 테스트 자동화라는 단어를 보고 기대하는 것들,
  • 3. 자동으로 테스트가 되는 것 입력(SW, 게임)을 하면,
  • 5. 부분 자동화를 시도해보자 완전 자동화는 힘들지만,
  • 6. 어떤 것을 사용해서 만들 수 있을까? Monkeyrunner
  • 7. 1. 나는 QA(의 탈을 쓴 개발자) 이면서, 2. (게임)개발자 도움을 받을 수 없고, 3. (게임)소스 코드를 가지고 있지 않고, 4. 타 어플리케이션에 의존적이지 않고, 5. 개발 편의성이 좋은 것이 좋다! 나에게 적합한 것은 뭐지?
  • 8. (게임)개발자 도움을 받을 수 없고, (게임)소스 코드를 가지고 있지 않기 때문에 Robotium은 개발된 소스코드에 테스트 코드를 추가하는 형식인데 적합하지 않구나!
  • 9. 독립 솔루션이어야 하기 때문에 Sikuli는 다른 프로그램(ex> Mobizen)으로 PC와 연결해서 사용하는데, 적합하지 않구나!
  • 10. 1.Monkeyrunner • 독립 솔루션 • Google 개발 • Jython • ≒ Python 그래서, 2. Sikuli • 비독립 솔루션 • Mobizen 등 • 오랜 기간 사용 • Jython • ≒ Python 3. Robotium • 비독립 솔루션 • 프로젝트와 연동 • Java
  • 12. 1. 작업 중 실패를 하더라도 정상 동작 2. 기록도 없고 그냥 단순 반복 안정적인 동작이 마음에 드는구나
  • 13. 1.점수는 마음에 들지만, 2.점수 외 다른 데이터가 없어요 잘 동작 했어요 그런데,… 테스트 계정이, 1등을 했어요! 점수만 높았어요 ^^*
  • 14. 잘 동작하는데 기록을 남겨 볼까? 이제부터 사서 고생하기, 나도 성격이 특이하지만 사실 팀장님이 시켰어요, 뿌우~
  • 15. • 단순 텍스트 기반으로 각종 사건 기록, • 시간, 내역 등을 남기자, • 어떻게 기록을 남길까? 기록은 어떻게 남기지?
  • 16. • Python Logger 모듈은 매우 좋다! 이렇게 남겼습니다! 로그 열람은 GamautLogView를 사용!
  • 17. 이왕 하는 거 통계를 내볼까? 사람의 욕심은 끝이 없구나,
  • 18. • Logger에서 기록한 로그에서 의미 있는 데이터를 추출할까? • 처음부터 DB에 기록을 넣어서 통계를 낼까? 갈등…
  • 20. • 개발 해야 하는 양은 비슷하다! • Sqlite3를 격하게 사랑하니까, • JDBC를 이용해서 Sqlite3를 붙이자! 에라 모르겠다~
  • 21. • 쿼리를 이용하여 각종 데이터 추출 • Sqlite Expert Personal 이용 • 승패, 게임 시각, 게임 수 기록 Sqlite3 에서 통계 데이터를 추출!
  • 22. • 전체 게임 수, • 승리, • 패배, 데이터 추출 예 Sqlite3 에서 통계 데이터를 추출!
  • 24. • 보다 쉽게 통계 자료를 보고 싶은 욕구 • 차트도 나오고, • 표도 보여주고 • 그런 웹 어플리케이션을 개발하자는 의지 데이터베이스가 생기니까,
  • 25. 1.ASP .NET MVC • 늘 하던 것 • (나는) 재미 없다 • 빨리 할 수 있지만, • (나는) 재미 없다 어떤 플랫폼에서 개발할까? 2. Node.js • 처음 하는 것 • (나는) 재미 있다 • 시간은 걸리지만, • (나는) 재미 있다
  • 26. • 독립 솔루션 • Node.js 만 설치하면 구동 ok! • 웹 서버니 뭐니 복잡한 설치 없다! • 일반 사용자가 쓴다면? • 설치와 사용이 간편한 Node.js가 절대로 유리! Node.js Express 선택 나만 재미 있으면 그걸로 하는 겁니다…
  • 27. 1.ASP .NET MVC • 늘 하던 것 • (나는) 재미 없다 • 빨리 할 수 있지만, • (나는) 재미 없다 그래서, 2. Node.js • 처음 하는 것 • (나는) 재미 있다 • 시간은 걸리지만, • (나는) 재미 있다
  • 28. • 모든 기록 열람 화면 Node.js로 만든 웹 어플리케이션 • 경기 기록 열람 화면 • 승률 열람 화면
  • 30. 또 다른 개발은 없었나요? 이게 다야?
  • 31. • 시작할 때마다 내 모듈을 추가해야 한다 • import sys -> sys.append(‘경로 추가’) -> from 내 모듈 경로 import 내 모듈 • 너무 지겹다! • 3번 이상 반복 되는 것은 자동화가 필수! • 그래서 개발 했습니다 Winform C#을 이용한 런처 개발
  • 32. Monkeyrunner 런처 실행도 자동으로 하고, 자동으로 문자 입력도 합니다!
  • 33. 너무 거창한 것 아닌가?
  • 34. • 블랙박스(Blackbox) 테스트와 • 화이트박스(Whitebox) 테스트가 있다 • 이 방법은 블랙박스 테스트를 자동화 한다 • 추가로 통계 데이터까지 얻을 수 있다 • 그래서 개발 했습니다 테스팅은, 나만 재미 있으면 하는 겁니다…
  • 35. • 급변하는 모바일 • PC 게임 (또는 솔루션)보다 수명 주기가 비교적 짧고, • 개발 기간도 비교적 짧고, • 그래서 빠른 출시와 테스트가 필요! 그리고 이제는 모바일이 대세!
  • 36. • 블랙박스 테스트 자동화는 큰 의미가 있다 • 통합된 테스트 솔루션 구축을 위한 사전 포석 • 나 자신의 기술력 과시… • Jython, C# Winform, Node.js, Java 등 다 잘하는데? 그래서,
  • 37. 요약, 반복 테스트 + 텍스트 로그 지속적인 고도화를 통해 “의미 있는 데이터”를 가진 테스트 시스템으로 진화 반복 테스트 테스트 + 텍스트 로그 + DB (통계) + Web App. + 런처
  • 39. • Jython, Python • Python logger, JDBC Sqlite3 • C# • .net framework, winform • Node.js • Express, node-sqlite3 • Sqlite3 • Sqlite Expert Personal 사용한 프레임워크와 기술
  • 40. • Jython • http://www.jython.org/ • Python • http://www.python.org/ • C# • http://msdn.microsoft.com/ko-kr/library/kx37x362.aspx • Node.js • Express • http://expressjs.com/ • node-sqlite3 • https://github.com/developmentseed/node-sqlite3 • Sqlite3 • http://www.sqlite.org/ • Sqlite Expert Personal • http://www.sqliteexpert.com/ Reference