방사광을 이용한 XPS와 XANES를 이용한 유기물 화학구조 · 2019-02-25 · 고분자 특성분석 지상강좌 | 방사광을 이용한 XPS와 XANES를 이용한 유기물
Monkeyrunner를 이용한 테스트
Transcript of Monkeyrunner를 이용한 테스트
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