SlideShare une entreprise Scribd logo
1  sur  41
Télécharger pour lire hors ligne
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를 이용한 모바일 테스트 자동화

Contenu connexe

Tendances

크로스(멀티)브라우저 테스트수행가이드
크로스(멀티)브라우저 테스트수행가이드크로스(멀티)브라우저 테스트수행가이드
크로스(멀티)브라우저 테스트수행가이드SangIn Choung
 
Unityで始めるバーチャルプロダクション
Unityで始めるバーチャルプロダクションUnityで始めるバーチャルプロダクション
Unityで始めるバーチャルプロダクションUnity Technologies Japan K.K.
 
Executive QA Strategy Presentation
Executive QA Strategy PresentationExecutive QA Strategy Presentation
Executive QA Strategy PresentationMartin Ruddy
 
テストの極みを目指して ~さあ、理想に近づくための一歩を踏み出そう!~
テストの極みを目指して ~さあ、理想に近づくための一歩を踏み出そう!~テストの極みを目指して ~さあ、理想に近づくための一歩を踏み出そう!~
テストの極みを目指して ~さあ、理想に近づくための一歩を踏み出そう!~崇 山﨑
 
[IGC 2016] 엔씨소프트 김종원 - 모바일 테스트 자동화 시스템
[IGC 2016] 엔씨소프트 김종원 - 모바일 테스트 자동화 시스템[IGC 2016] 엔씨소프트 김종원 - 모바일 테스트 자동화 시스템
[IGC 2016] 엔씨소프트 김종원 - 모바일 테스트 자동화 시스템강 민우
 
PyBCN - Pytest: recomendaciones, paquetes básicos para testing en Python y Dj...
PyBCN - Pytest: recomendaciones, paquetes básicos para testing en Python y Dj...PyBCN - Pytest: recomendaciones, paquetes básicos para testing en Python y Dj...
PyBCN - Pytest: recomendaciones, paquetes básicos para testing en Python y Dj...Andreu Vallbona Plazas
 
建築革命、更に進化!デジタルツイン基盤の真打ち登場【概要編 Unity Reflect ver 2.1 】
建築革命、更に進化!デジタルツイン基盤の真打ち登場【概要編 Unity Reflect ver 2.1 】建築革命、更に進化!デジタルツイン基盤の真打ち登場【概要編 Unity Reflect ver 2.1 】
建築革命、更に進化!デジタルツイン基盤の真打ち登場【概要編 Unity Reflect ver 2.1 】Unity Technologies Japan K.K.
 
猫でも分かる3人称視点VRコンテンツ
猫でも分かる3人称視点VRコンテンツ猫でも分かる3人称視点VRコンテンツ
猫でも分かる3人称視点VRコンテンツpafuhana 1213
 
ISO/IEC/IEEE 29119 Software testing 勉強会 第2回 Part 2 Test Processes
ISO/IEC/IEEE 29119 Software testing 勉強会 第2回 Part 2 Test ProcessesISO/IEC/IEEE 29119 Software testing 勉強会 第2回 Part 2 Test Processes
ISO/IEC/IEEE 29119 Software testing 勉強会 第2回 Part 2 Test Processes崇 山﨑
 
Test Automation Architecture
Test Automation ArchitectureTest Automation Architecture
Test Automation ArchitectureApplitools
 
Jenkinsを利用したCI、弊社導入事例
Jenkinsを利用したCI、弊社導入事例Jenkinsを利用したCI、弊社導入事例
Jenkinsを利用したCI、弊社導入事例Ryoichi Obara
 
Unification of the middle scale services by Nuxt.js
Unification of the middle scale services by Nuxt.jsUnification of the middle scale services by Nuxt.js
Unification of the middle scale services by Nuxt.jsHajimeSasanuma
 
개발이 테스트를 만났을 때(Shift left testing)
개발이 테스트를 만났을 때(Shift left testing)개발이 테스트를 만났을 때(Shift left testing)
개발이 테스트를 만났을 때(Shift left testing)SangIn Choung
 
JaSST'19 Hokkaido 「テスト設計技法、その前に ~フェイスアップ、次にビルドアップ、その先にマインドアップ~」
JaSST'19 Hokkaido 「テスト設計技法、その前に ~フェイスアップ、次にビルドアップ、その先にマインドアップ~」 JaSST'19 Hokkaido 「テスト設計技法、その前に ~フェイスアップ、次にビルドアップ、その先にマインドアップ~」
JaSST'19 Hokkaido 「テスト設計技法、その前に ~フェイスアップ、次にビルドアップ、その先にマインドアップ~」 Akira Ikeda
 
Introduction to SOA EAI ETL BPM
Introduction to SOA EAI ETL BPMIntroduction to SOA EAI ETL BPM
Introduction to SOA EAI ETL BPMThanh Nguyen
 
【JaSST'18 Tokai】アジャイルとテスト自動化導入の勘所
【JaSST'18 Tokai】アジャイルとテスト自動化導入の勘所【JaSST'18 Tokai】アジャイルとテスト自動化導入の勘所
【JaSST'18 Tokai】アジャイルとテスト自動化導入の勘所Kotaro Ogino
 

Tendances (20)

Web Componentsのアクセシビリティ
Web ComponentsのアクセシビリティWeb Componentsのアクセシビリティ
Web Componentsのアクセシビリティ
 
크로스(멀티)브라우저 테스트수행가이드
크로스(멀티)브라우저 테스트수행가이드크로스(멀티)브라우저 테스트수행가이드
크로스(멀티)브라우저 테스트수행가이드
 
Test your code
Test your codeTest your code
Test your code
 
Unityで始めるバーチャルプロダクション
Unityで始めるバーチャルプロダクションUnityで始めるバーチャルプロダクション
Unityで始めるバーチャルプロダクション
 
Executive QA Strategy Presentation
Executive QA Strategy PresentationExecutive QA Strategy Presentation
Executive QA Strategy Presentation
 
テストの極みを目指して ~さあ、理想に近づくための一歩を踏み出そう!~
テストの極みを目指して ~さあ、理想に近づくための一歩を踏み出そう!~テストの極みを目指して ~さあ、理想に近づくための一歩を踏み出そう!~
テストの極みを目指して ~さあ、理想に近づくための一歩を踏み出そう!~
 
[IGC 2016] 엔씨소프트 김종원 - 모바일 테스트 자동화 시스템
[IGC 2016] 엔씨소프트 김종원 - 모바일 테스트 자동화 시스템[IGC 2016] 엔씨소프트 김종원 - 모바일 테스트 자동화 시스템
[IGC 2016] 엔씨소프트 김종원 - 모바일 테스트 자동화 시스템
 
PyBCN - Pytest: recomendaciones, paquetes básicos para testing en Python y Dj...
PyBCN - Pytest: recomendaciones, paquetes básicos para testing en Python y Dj...PyBCN - Pytest: recomendaciones, paquetes básicos para testing en Python y Dj...
PyBCN - Pytest: recomendaciones, paquetes básicos para testing en Python y Dj...
 
建築革命、更に進化!デジタルツイン基盤の真打ち登場【概要編 Unity Reflect ver 2.1 】
建築革命、更に進化!デジタルツイン基盤の真打ち登場【概要編 Unity Reflect ver 2.1 】建築革命、更に進化!デジタルツイン基盤の真打ち登場【概要編 Unity Reflect ver 2.1 】
建築革命、更に進化!デジタルツイン基盤の真打ち登場【概要編 Unity Reflect ver 2.1 】
 
猫でも分かる3人称視点VRコンテンツ
猫でも分かる3人称視点VRコンテンツ猫でも分かる3人称視点VRコンテンツ
猫でも分かる3人称視点VRコンテンツ
 
ISO/IEC/IEEE 29119 Software testing 勉強会 第2回 Part 2 Test Processes
ISO/IEC/IEEE 29119 Software testing 勉強会 第2回 Part 2 Test ProcessesISO/IEC/IEEE 29119 Software testing 勉強会 第2回 Part 2 Test Processes
ISO/IEC/IEEE 29119 Software testing 勉強会 第2回 Part 2 Test Processes
 
Test Automation Architecture
Test Automation ArchitectureTest Automation Architecture
Test Automation Architecture
 
Jenkinsを利用したCI、弊社導入事例
Jenkinsを利用したCI、弊社導入事例Jenkinsを利用したCI、弊社導入事例
Jenkinsを利用したCI、弊社導入事例
 
Unification of the middle scale services by Nuxt.js
Unification of the middle scale services by Nuxt.jsUnification of the middle scale services by Nuxt.js
Unification of the middle scale services by Nuxt.js
 
TMMi Practices on Test policy and strategy with examples.
TMMi Practices on Test policy and strategy with examples.TMMi Practices on Test policy and strategy with examples.
TMMi Practices on Test policy and strategy with examples.
 
개발이 테스트를 만났을 때(Shift left testing)
개발이 테스트를 만났을 때(Shift left testing)개발이 테스트를 만났을 때(Shift left testing)
개발이 테스트를 만났을 때(Shift left testing)
 
JaSST'19 Hokkaido 「テスト設計技法、その前に ~フェイスアップ、次にビルドアップ、その先にマインドアップ~」
JaSST'19 Hokkaido 「テスト設計技法、その前に ~フェイスアップ、次にビルドアップ、その先にマインドアップ~」 JaSST'19 Hokkaido 「テスト設計技法、その前に ~フェイスアップ、次にビルドアップ、その先にマインドアップ~」
JaSST'19 Hokkaido 「テスト設計技法、その前に ~フェイスアップ、次にビルドアップ、その先にマインドアップ~」
 
Introduction to SOA EAI ETL BPM
Introduction to SOA EAI ETL BPMIntroduction to SOA EAI ETL BPM
Introduction to SOA EAI ETL BPM
 
【JaSST'18 Tokai】アジャイルとテスト自動化導入の勘所
【JaSST'18 Tokai】アジャイルとテスト自動化導入の勘所【JaSST'18 Tokai】アジャイルとテスト自動化導入の勘所
【JaSST'18 Tokai】アジャイルとテスト自動化導入の勘所
 
Unreal Engine 4 Education 2 UnityとUE4の違いは?
Unreal Engine 4 Education 2 UnityとUE4の違いは?Unreal Engine 4 Education 2 UnityとUE4の違いは?
Unreal Engine 4 Education 2 UnityとUE4の違いは?
 

En vedette

Introduction To Mobile-Automation
Introduction To Mobile-AutomationIntroduction To Mobile-Automation
Introduction To Mobile-AutomationMindfire Solutions
 
글로벌 게임 런칭과 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
 

En vedette (13)

Introduction To Mobile-Automation
Introduction To Mobile-AutomationIntroduction To Mobile-Automation
Introduction To Mobile-Automation
 
글로벌 게임 런칭과 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 - 한국 모바일게임 시장 분석
 

Similaire à 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
 

Similaire à 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
 

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