SlideShare a Scribd company logo
Subtitles
게임 테스트 자동화 5년의 기록
김종원
NCSOFT
리니지M과 리니지2M의 자동테스트 회고
2
Subtitles
자동테스트 개발팀(2015~2021)
리니지이터널 테크니컬 디렉터(2007~2013)
모바일 게임기 개발팀(2004~2006)
NCSOFT 엔씨소프트에서
게임의 자동테스트 기술을
연구하고 실무에 적용하는
업무를 하고 있습니다
임베디드 JVM, PDA,PalmOS 기반 스마트폰 개발
(2000~2004)
MOCOCO
윈도우용 아래아한글 3.0 시리즈 외(1994~1997)
한글과컴퓨터
마이크로소프트웨어, ZDNet 컬럼‘망치와모루’ (1994~2004)
컬럼
윈도우7프로그래밍, R로 마스터하는 머신러닝 등
번역서
발표자 경력
3
Subtitles
기계 로보트의 로망은 오래되었습니다 …
4
Subtitles
오토마톤(Automaton)
스위스에 있는 250년 된 자동인형
잉크를 찍어서 40자 정도의 글을 쓸 수 있음
5
Subtitles
오토마톤(Automaton)
스위스에 있는 250년 된 자동인형
잉크를 펜에 찍어서 40자 정도의 글을 쓸 수 있음
CONTENTS
6
Subtitles
PART #1 게임 테스트 자동화의 인식
PART #2 게임 테스트 자동화의 여정
PART #3 게임 테스트 자동화로 얻은 교훈과 비전
7
Subtitles
01 게임 테스트 자동화의 인식
8
Subtitles
01 게임 테스트 자동화의 인식
사람 대신
AI가 들어있는 로보트가
테스트를 대신?
그러면 한 번 상상해봅시다
잘 익은 딸기를 수확하는 것을
기계로 해볼까요?
9
Subtitles
01 게임 테스트 자동화의 인식
http://youtube.com/watch?v=M3SGScaShhw
10
Subtitles
01 게임 테스트 자동화의 인식
https://www.tennessean.com/story/news/2016/05/26/tennessee-strawberry-lovers-cheer-bumper-crop/84962848/
적정 기술(?)
11
Subtitles
프로그래머나 하는 것이지
게임 QA가 어떻게 해
테스트는 사람이 해야지
자동테스트에 대한 부정적인 인식
01 게임 테스트 자동화의 인식
자동테스트가 되겠어?
큰 회사나 하는 것이지
자동테스트를 작은 회사가
테스트 자동화는 허상이야
12
Subtitles
01 게임 테스트 자동화의 인식
자동테스트를 통해 얻고자 한 것은
QA 업무를 대신하는
테스트 로보트를
만드는 것이 아닙니다
최근 게임은 서비스
오픈 이후 빠른 업데이트와
실수 없는 서비스를
제공하는 것이 중요
빠르고 실수 없이
정확하게 테스트를 수행
게임 개발 이후의
테스트 작업에 대한
기술적인 개선을
이루고자 했습니다
13
Subtitles
이야기 들어가기 전에
모바일 게임 테스트 자동화
NDC 16
모바일 게임 호환성 테스트
모바일 테스트 자동화 시스템
리니지M 사례로 배우는 효율적인 호환성 테스트 방법
기술적인 부분은
예전 강연을 보시면 좋습니다
기술적인 원리는
지금도 크게 다르지 않습니다
NDC 19
IGC 2016
IGC 2018
번역서
14
Subtitles
02 게임 테스트 자동화의 여정
15
Subtitles
02 게임 테스트 자동화의 여정
5년 간의 테스트 자동화 여정
B&S Mobile(Unity3D)
BAT 구현
안드로이드
테스트 자동화
프로토타입 개발
첫 번째
라이브게임 적용
테스트워크벤치
서비스 개발
언리얼엔진 사용
라이브게임 적용 iOS 플랫폼 확대
리니지M(Cocos2D)
라이브 서버 자동점검
24시간 상시테스트 진행
앱플레이어를 이용한 테스트환경
테스트워크벤치 프로토타입
호환성테스트 프로토타입
리니지M
호환성테스트 운용
재화테스트 시작
NC Cloud/Docker로 전환
예약/반복 테스트
리니지2M
라이브 서버 자동점검
BAT
리니지M
BAT, 영역별 기본 기능
일회성 자동테스트
배포 연동 자동 테스트 수행
테스트 작업 분배, iOS 플랫폼 지원
리니지M, 리니지2M
iOS 상에서 BAT,
영역별 기본 기능
리니지2M
일회성 자동테스트
테스트 동영상 녹화
윈도우 플랫폼
리니지2M 대만, 일본 런칭
BAT, 영역 별 자동테스트
윈도우 버전 자동테스트
리니지2M, B2
16 17 18 19 20 21
자동테스트
운용 시작
테스트 적용
영역 확대
자동테스트
일반화
플랫폼
확대
16
Subtitles
리니지2M의 라이브 서버 자동점검 영상 …
17
Subtitles
02 게임 테스트 자동화의 여정
리니지2M의 라이브 서버 자동점검
18
Subtitles
02 게임 테스트 자동화의 여정
자동테스트 시스템 개발 방향
모바일 기기의 자동테스트 서비스를 구축하여
QA에게 일원화된 테스트 환경을 제공
프로젝트에서 자동테스트에 적합한 영역을 개발
테스트 커버리지 확장과 퀄리티 향상에 기여
19
Subtitles
02 게임 테스트 자동화의 여정
자동테스트 서비스
예약 / 반복 / 빌드 배포 시 자동 실행
실행할 테스트 스크립트 및 데이터 관리/편집
테스트 기기 할당
순차적 / 분산 테스트 설정
체크 항목 스크린샷 / 테스트 과정 녹화 동영상
각종 테스트 로그(스크립트, 테스트시스템, 기기 로그 등)
20
Subtitles
02 게임 테스트 자동화의 여정
하나의 테스트 환경
모든 테스트 스크립트를 한 곳에서 관리
각기 다른 플랫폼 / 통일된 테스트 환경
안드로이드 / iOS / 앱 플레이어 / 퍼플 플랫폼을 한 곳에서
하나의 테스트 스크립트로 모든 플랫폼에서
다른 목적의 테스트 / 같은 형식의 리포트
각기 다른 게임 엔진 / 하나의 개발 도구
21
Subtitles
02 게임 테스트 자동화의 여정
게임 QA
시스템 개발자
스크립트 개발자
APP APP
APP APP APP
기기관리서버
안드로이드 플랫폼
앱 플레이어
윈도우 플랫폼
테스트워크벤치
테스트 기기
ios 플랫폼
22
Subtitles
02 게임 테스트 자동화의 여정
테스트 커버리지의 확장
BAT, 영역별 기본 기능 자동 수행
매 빌드 배포마다 자동 검증
기존 매뉴얼 테스트에선 2개 서버 테스트 -> 30개 서버
정기점검 시, 테스트 서버 수 증가
기획 변경 시 총 321개 항목, 5개 기기에서 1시간 수행
재화 사용 영역 리그레션 테스트
BM 아이템 제작 / 모든 변신 카드 효과 확인 / 상자 확률, 몬스터 아이템 드롭 확률
단순 / 반복 테스트, 대량 설정 자동화
23
Subtitles
02 게임 테스트 자동화의 여정
자동테스트 영역 확대
리그레션 테스트 자동화(automated regression testing)
국내 뿐만 아니라 해외(대만/일본) 자동테스트 확장
다른 테스트가 없는 주말에 집중적인 장시간 테스트
단순 / 반복 테스트 중 휴먼 에러 제거
앱 스토어 심사를 위한 심사 서버의 자동 점검
새벽 시간 예약 테스트로 기능 변경 여부를 확인
24
Subtitles
자신있게 시작했으나 과정은 험난했습니다 …
25
Subtitles
02 게임 테스트 자동화의 여정
테스트 자동화를 적용하면서 생긴 어려움
게임의 UI의 지속적인 변경
여러 게임 엔진과 새로운 버전 업데이트 대응
테스트 스크립트 수가 늘 수록 수정해야 할 것도 증가 물리적 문제도 발생
자동테스트용 빌드를 직접 빌드
26
Subtitles
02 게임 테스트 자동화의 여정
장애물을 하나 씩 넘어서
플러그인에 다양한 오브젝트 검색 방법을 추가하여 UI 변화에 대비
C++/STL 사용으로 엔진 독립적으로 구현하고 의존성 줄임
스크립트에서 게임 UI 의존적인 부분을 공통 라이브러리로 분리
물리적 문제들은 하나하나 틀어 막아야
개발팀에서 자동테스트 빌드를 제공 또는 사내 빌드에 디폴트로 포함
27
Subtitles
02 게임 테스트 자동화의 여정
게임QA가 신뢰할 수 있는 자동테스트
QA가 자동테스트의 결과를 신뢰할 수 있느냐는 문제
자동테스트 시나리오를 이해 / 오류 재현 가능
자동테스트의 자체의 성공률이 높아야 함
자동테스트에서 사용하는 기술의 정확도가 99.9%는 되어야 함
28
Subtitles
02 게임 테스트 자동화의 여정
현재 수행하고 있는 자동테스트의 종류
01
빌드 인수
테스트(BAT)
02
게임 영역 별
기본 기능 자동테스트
03
모바일 기기
호환성 테스트
04
라이브 서버
자동점검 /임시점검
05
반복 업무
자동테스트
06
재화 관련 테스트/변신
카드 공격 & 이동 속도
전수 테스트
29
Subtitles
02 게임 테스트 자동화의 여정
자동테스트를 수행하는 빌드/플랫폼
Android / iOS /
Windows(적용 중)
플랫폼
QA 환경/ RC 환경 /
심사 서버 / 라이브 서버
테스트 환경
19세 / 12세
연령
한국 / 대만 / 일본
서비스 국가
30
Subtitles
방향에 확신이 드니 자동화 적용이 빨라졌습니다 …
31
Subtitles
02 게임 테스트 자동화의 여정
빌드 인수 테스트의 테스트 결과 리포트(BAT)
32
Subtitles
02 게임 테스트 자동화의 여정
테스트워크벤치
33
Subtitles
02 게임 테스트 자동화의 여정
게임 내의 UI를 컨트롤하는 스크립트를 작성하여 수행
Web 테스팅에서 사용하는 식별자 생성 방식인 xpath와 비슷하게
UI 오브젝트 식별자를 생성하는 플러그인을 클라이언트 삽입
모바일 자동테스트 시스템인 Appium을 확장하고
파이썬 스크립트로 테스트 시나리오에 맞춰 모바일 웹과 게임 UI를 식별 및 컨트롤
34
Subtitles
02 게임 테스트 자동화의 여정
플러그인으로 게임 UI 오브젝트 식별자를 생성하여 테스트
Python으로 작성한
테스트 스크립트
+
Selenium
WebDriver API
라이브러리
확장
프로토콜 사용
1
Appium 서버 테스트 기기
Appium
확장
드라이버
안드로이드
드라이버
안드로이드
부트스트랩
게임 내
플러그인과 통신
게임
오브젝트
인스펙터
클라이언트
UI Automator
bootstrap.jar
게임 오브젝트
정보 요청
2
게임 오브젝트
속성 정보 전달
3
Native UI 나
WebView 처럼
터치, 키 입력 전달
4
터치
5
35
Subtitles
02 게임 테스트 자동화의 여정
게임 UI 오브젝트 뷰어(리니지2M)
화면과UI구조를
캡쳐해서PC에저장
UE4의UI요소인
액터,슬레이트,UMG
계층구조를모두추출
36
Subtitles
자동테스트는 게임 개발 과정의 일부입니다 …
37
Subtitles
02 게임 테스트 자동화의 여정
게임 개발팀과 자동테스트를 위한 협업
자동테스트 환경을 게임 개발 과정에도 사용할 수 있습니다
같은 UI라도 기능이 다르면 UI에 다른 이름을 붙여주세요
대규모 UI 변경이든 작은 변경이든 미리 알려주세요
자동테스트를 위한 별도의 테스트 명령어를 제공하면 매우 좋습니다
테스트 명령어 결과를 로컬 파일로 남길 수 있으면 테스트가 빨라져요
38
Subtitles
03 게임 테스트 자동화로 얻은 교훈과 비전
39
Subtitles
03 게임 테스트 자동화로 얻은 교훈과 비전
BOT AI와 자동테스트는 달라요
BOT AI
자동테스트
40
Subtitles
03 게임 테스트 자동화로 얻은 교훈과 비전
자동테스트를 통해 얻은 것
기능 업데이트는 사람이 하고, 반복/리그레션은 자동테스트로 하자
스크립트의 지속적 관리 필요, 테스트가 정확할 수록 작은 변화에도 취약
테스트 수행 시간 제약이 사라짐(새벽/주말)
간단한 검증도 수 백 가지 항목을 반복하면 중요한 검증이 된다(양질전환)
단순/반복적 테스트는 자동테스트로 전환하여 휴먼 에러를 없애기도 좋다
** 양질전환 법칙(Quantity becomes quality): 헤겔(1818~1883)의 변증법
일정 양의 것이 계속 누적이 되면 어느 순간 질적 변화가 급격히 일어난다는 것
41
Subtitles
03 게임 테스트 자동화로 얻은 교훈과 비전
자동테스트를 위한 숨겨진 비용
스크립트 개발보다 자동테스트 시스템 개발에 더 많은 프로그래머가 필요
자동테스트 시스템을 안정적으로 운영하고 개선하는 것도 큰 개발 비용
한 가지 방법 만으로 모든 테스트 수행 불가. 요구 사항은 계속 나온다
새 게임 빌드가 나올 때마다 스크립트를 검증/유지 보수 발생
OS 업데이트나 새 모바일 기기가 나올 때도 검증/유지 보수 발생
자동테스트에 대한 개발/운영 비용이 전체 게임 개발 비용에 편성되어야 함
QA비용과 별도로
42
Subtitles
03 게임 테스트 자동화로 얻은 교훈과 비전
자동테스트를 어렵게 하는 것
UI 변화에 취약
오브젝트만을 식별하기 때문에 시각적/청각적 문제를 식별할 수 없음
프로그래머가 아닌 게임QA가 스크립트를 쉽게 만들 수 있는 방법은?
사람이 하는 매뉴얼 테스트보다 테스트 커버리지가 더 좁다
테스트 실패 시 결과만으로는 원인 파악이 쉽지 않음
43
Subtitles
03 게임 테스트 자동화로 얻은 교훈과 비전
게임 개발과 함께하는 자동테스트 첫걸음
자동테스트를 위한
플러그인이 포함된
클라이언트 빌드
서버 및
클라이언트 배포
월드 진입 테스트나
스모크 테스트 진행
BAT 및
영역별 기본
기능 테스트
코드 및
리소스 준비
서버 &
클라이언트 빌드
자동테스트
환경으로 배포
빌드 검증
(BVT) 개발팀
빌드 배포
QA 진행
44
Subtitles
게임 QA도 자동테스트
스크립트를 만들어야 하는데
매뉴얼만 아니라 자동테스트도 해야지
자동테스트에 대한 인식 변화
자동테스트도 필요해 !!
작은 회사에 자동테스트가 더 필요하지
테스트 자동화로 해결할 수 있는
영역이 있어
03 게임 테스트 자동화로 얻은 교훈과 비전
45
Subtitles
단계 LEVEL 1 LEVEL 2 LEVEL 3 LEVEL 4 LEVEL 5
테스트 보조 부분 자동테스트 조건부 자동테스트 고도 자동테스트 완전 자동테스트
테스트 주체 사람 + 시스템 사람 + 시스템 시스템 시스템 시스템
테스트 책임 사람 사람 사람 * 사람 * 시스템
자동테스트 시스템이
사람의 테스트를 보조
테스트 시나리오를
사람이 작성하고
시스템이
테스트를 수행
테스트 시나리오는
시스템이 작성
일부 사람이 개입
시스템이
테스트를 수행
시스템이
테스트 시나리오
작성 및 수행
사람은 테스트
결과 확인
테스트 전과정에서
사람의
개입 필요 없음
03 게임 테스트 자동화로 얻은 교훈과 비전
자동테스트 5단계
46
Subtitles
47
Subtitles
Thank you for your attention.

More Related Content

PDF
모바일 게임 테스트 자동화 (Appium 확장)
PPTX
Robot Framework
PDF
NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들
PDF
NDC 2015 삼시세끼 빌드만들기
PDF
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...
PDF
빌드관리 및 디버깅 (2010년 자료)
PPTX
[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들
PDF
[IGC2018] 엔씨소프트 이경종 - 심층강화학습을 활용한 프로게이머 수준의 AI 만들기
모바일 게임 테스트 자동화 (Appium 확장)
Robot Framework
NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들
NDC 2015 삼시세끼 빌드만들기
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...
빌드관리 및 디버깅 (2010년 자료)
[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들
[IGC2018] 엔씨소프트 이경종 - 심층강화학습을 활용한 프로게이머 수준의 AI 만들기

What's hot (20)

PDF
AppiumのWebViewアプリテストの仕組みとハマりどころ
PPTX
Automation - web testing with selenium
PPTX
정해균 포트폴리오
PDF
[2019] 언리얼 엔진을 통해 살펴보는 리플렉션과 가비지 컬렉션
PDF
NDC2019 - 게임플레이 프로그래머의 역할
PPTX
Introduction to robot framework
PDF
Legacy code refactoring video rental system
PDF
발표자료 1인qa로살아남는6가지방법
PDF
Playwright: A New Test Automation Framework for the Modern Web
PPT
게임 프레임워크의 아키텍쳐와 디자인 패턴
PDF
Automatisations des tests fonctionnels avec Robot Framework
PDF
도메인 주도 설계의 본질
PPTX
Test Automation and Selenium
PDF
MagicOnion~C#でゲームサーバを開発しよう~
PDF
Introduction to Robot Framework – Exove
PPTX
언리얼을 활용한 오브젝트 풀링
PDF
코딩 테스트 및 알고리즘 문제해결 공부 방법 (고려대학교 KUCC, 2022년 4월)
PPTX
Automated Test Framework with Cucumber
PDF
Redmineをちょっと便利に! プログラミング無しで使ってみるREST API
PDF
고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들
AppiumのWebViewアプリテストの仕組みとハマりどころ
Automation - web testing with selenium
정해균 포트폴리오
[2019] 언리얼 엔진을 통해 살펴보는 리플렉션과 가비지 컬렉션
NDC2019 - 게임플레이 프로그래머의 역할
Introduction to robot framework
Legacy code refactoring video rental system
발표자료 1인qa로살아남는6가지방법
Playwright: A New Test Automation Framework for the Modern Web
게임 프레임워크의 아키텍쳐와 디자인 패턴
Automatisations des tests fonctionnels avec Robot Framework
도메인 주도 설계의 본질
Test Automation and Selenium
MagicOnion~C#でゲームサーバを開発しよう~
Introduction to Robot Framework – Exove
언리얼을 활용한 오브젝트 풀링
코딩 테스트 및 알고리즘 문제해결 공부 방법 (고려대학교 KUCC, 2022년 4월)
Automated Test Framework with Cucumber
Redmineをちょっと便利に! プログラミング無しで使ってみるREST API
고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들
Ad

Similar to NDC21_게임테스트자동화5년의기록_NCSOFT_김종원.pdf (20)

PDF
모바일 게임 테스트 자동화 (Appium 확장)
PPTX
[IGC 2016] 엔씨소프트 김종원 - 모바일 테스트 자동화 시스템
PDF
모바일 게임 테스트 자동화 Igc 2016
PDF
Airtest Mobile Game Automation
PDF
KGC 2014, 'Software Enginner in Test' in Game Development (Bluehole Studio)
PDF
테스트자동화 성공전략
PDF
[SWMaestro 100+ 발표자료] 테스트하기
PDF
효율적인 개발 프로세스를 위한 지속적 통합
PDF
Test automation
PPTX
NDC17. "솔리테어: 덱다웃" 유니티 모바일 테스팅 기법들
PPT
xUnitTestPattern/chapter3
PDF
모바일 자동화 솔루션 Touch Test 소개
PPTX
모바일게임 1인 QA 업무 경험담
PDF
김항기 시나리오 기반 온라인 게임 서버 부하 테스트 기술
PPTX
X unit 14장
PPTX
회사소개서 브로셔V1.0
PPT
주)바블콘텐츠 모바일 회사소개서
PDF
NDC 2013 Monkeyrunner를 이용한 모바일 테스트 자동화
PDF
테스트수행사례 W통합보안솔루션
PDF
[IGC2015] 로드컴플릿 배정현-크루세이더 퀘스트 포스트모텀
모바일 게임 테스트 자동화 (Appium 확장)
[IGC 2016] 엔씨소프트 김종원 - 모바일 테스트 자동화 시스템
모바일 게임 테스트 자동화 Igc 2016
Airtest Mobile Game Automation
KGC 2014, 'Software Enginner in Test' in Game Development (Bluehole Studio)
테스트자동화 성공전략
[SWMaestro 100+ 발표자료] 테스트하기
효율적인 개발 프로세스를 위한 지속적 통합
Test automation
NDC17. "솔리테어: 덱다웃" 유니티 모바일 테스팅 기법들
xUnitTestPattern/chapter3
모바일 자동화 솔루션 Touch Test 소개
모바일게임 1인 QA 업무 경험담
김항기 시나리오 기반 온라인 게임 서버 부하 테스트 기술
X unit 14장
회사소개서 브로셔V1.0
주)바블콘텐츠 모바일 회사소개서
NDC 2013 Monkeyrunner를 이용한 모바일 테스트 자동화
테스트수행사례 W통합보안솔루션
[IGC2015] 로드컴플릿 배정현-크루세이더 퀘스트 포스트모텀
Ad

NDC21_게임테스트자동화5년의기록_NCSOFT_김종원.pdf

  • 1. Subtitles 게임 테스트 자동화 5년의 기록 김종원 NCSOFT 리니지M과 리니지2M의 자동테스트 회고
  • 2. 2 Subtitles 자동테스트 개발팀(2015~2021) 리니지이터널 테크니컬 디렉터(2007~2013) 모바일 게임기 개발팀(2004~2006) NCSOFT 엔씨소프트에서 게임의 자동테스트 기술을 연구하고 실무에 적용하는 업무를 하고 있습니다 임베디드 JVM, PDA,PalmOS 기반 스마트폰 개발 (2000~2004) MOCOCO 윈도우용 아래아한글 3.0 시리즈 외(1994~1997) 한글과컴퓨터 마이크로소프트웨어, ZDNet 컬럼‘망치와모루’ (1994~2004) 컬럼 윈도우7프로그래밍, R로 마스터하는 머신러닝 등 번역서 발표자 경력
  • 3. 3 Subtitles 기계 로보트의 로망은 오래되었습니다 …
  • 4. 4 Subtitles 오토마톤(Automaton) 스위스에 있는 250년 된 자동인형 잉크를 찍어서 40자 정도의 글을 쓸 수 있음
  • 5. 5 Subtitles 오토마톤(Automaton) 스위스에 있는 250년 된 자동인형 잉크를 펜에 찍어서 40자 정도의 글을 쓸 수 있음
  • 6. CONTENTS 6 Subtitles PART #1 게임 테스트 자동화의 인식 PART #2 게임 테스트 자동화의 여정 PART #3 게임 테스트 자동화로 얻은 교훈과 비전
  • 7. 7 Subtitles 01 게임 테스트 자동화의 인식
  • 8. 8 Subtitles 01 게임 테스트 자동화의 인식 사람 대신 AI가 들어있는 로보트가 테스트를 대신? 그러면 한 번 상상해봅시다 잘 익은 딸기를 수확하는 것을 기계로 해볼까요?
  • 9. 9 Subtitles 01 게임 테스트 자동화의 인식 http://youtube.com/watch?v=M3SGScaShhw
  • 10. 10 Subtitles 01 게임 테스트 자동화의 인식 https://www.tennessean.com/story/news/2016/05/26/tennessee-strawberry-lovers-cheer-bumper-crop/84962848/ 적정 기술(?)
  • 11. 11 Subtitles 프로그래머나 하는 것이지 게임 QA가 어떻게 해 테스트는 사람이 해야지 자동테스트에 대한 부정적인 인식 01 게임 테스트 자동화의 인식 자동테스트가 되겠어? 큰 회사나 하는 것이지 자동테스트를 작은 회사가 테스트 자동화는 허상이야
  • 12. 12 Subtitles 01 게임 테스트 자동화의 인식 자동테스트를 통해 얻고자 한 것은 QA 업무를 대신하는 테스트 로보트를 만드는 것이 아닙니다 최근 게임은 서비스 오픈 이후 빠른 업데이트와 실수 없는 서비스를 제공하는 것이 중요 빠르고 실수 없이 정확하게 테스트를 수행 게임 개발 이후의 테스트 작업에 대한 기술적인 개선을 이루고자 했습니다
  • 13. 13 Subtitles 이야기 들어가기 전에 모바일 게임 테스트 자동화 NDC 16 모바일 게임 호환성 테스트 모바일 테스트 자동화 시스템 리니지M 사례로 배우는 효율적인 호환성 테스트 방법 기술적인 부분은 예전 강연을 보시면 좋습니다 기술적인 원리는 지금도 크게 다르지 않습니다 NDC 19 IGC 2016 IGC 2018 번역서
  • 14. 14 Subtitles 02 게임 테스트 자동화의 여정
  • 15. 15 Subtitles 02 게임 테스트 자동화의 여정 5년 간의 테스트 자동화 여정 B&S Mobile(Unity3D) BAT 구현 안드로이드 테스트 자동화 프로토타입 개발 첫 번째 라이브게임 적용 테스트워크벤치 서비스 개발 언리얼엔진 사용 라이브게임 적용 iOS 플랫폼 확대 리니지M(Cocos2D) 라이브 서버 자동점검 24시간 상시테스트 진행 앱플레이어를 이용한 테스트환경 테스트워크벤치 프로토타입 호환성테스트 프로토타입 리니지M 호환성테스트 운용 재화테스트 시작 NC Cloud/Docker로 전환 예약/반복 테스트 리니지2M 라이브 서버 자동점검 BAT 리니지M BAT, 영역별 기본 기능 일회성 자동테스트 배포 연동 자동 테스트 수행 테스트 작업 분배, iOS 플랫폼 지원 리니지M, 리니지2M iOS 상에서 BAT, 영역별 기본 기능 리니지2M 일회성 자동테스트 테스트 동영상 녹화 윈도우 플랫폼 리니지2M 대만, 일본 런칭 BAT, 영역 별 자동테스트 윈도우 버전 자동테스트 리니지2M, B2 16 17 18 19 20 21 자동테스트 운용 시작 테스트 적용 영역 확대 자동테스트 일반화 플랫폼 확대
  • 17. 17 Subtitles 02 게임 테스트 자동화의 여정 리니지2M의 라이브 서버 자동점검
  • 18. 18 Subtitles 02 게임 테스트 자동화의 여정 자동테스트 시스템 개발 방향 모바일 기기의 자동테스트 서비스를 구축하여 QA에게 일원화된 테스트 환경을 제공 프로젝트에서 자동테스트에 적합한 영역을 개발 테스트 커버리지 확장과 퀄리티 향상에 기여
  • 19. 19 Subtitles 02 게임 테스트 자동화의 여정 자동테스트 서비스 예약 / 반복 / 빌드 배포 시 자동 실행 실행할 테스트 스크립트 및 데이터 관리/편집 테스트 기기 할당 순차적 / 분산 테스트 설정 체크 항목 스크린샷 / 테스트 과정 녹화 동영상 각종 테스트 로그(스크립트, 테스트시스템, 기기 로그 등)
  • 20. 20 Subtitles 02 게임 테스트 자동화의 여정 하나의 테스트 환경 모든 테스트 스크립트를 한 곳에서 관리 각기 다른 플랫폼 / 통일된 테스트 환경 안드로이드 / iOS / 앱 플레이어 / 퍼플 플랫폼을 한 곳에서 하나의 테스트 스크립트로 모든 플랫폼에서 다른 목적의 테스트 / 같은 형식의 리포트 각기 다른 게임 엔진 / 하나의 개발 도구
  • 21. 21 Subtitles 02 게임 테스트 자동화의 여정 게임 QA 시스템 개발자 스크립트 개발자 APP APP APP APP APP 기기관리서버 안드로이드 플랫폼 앱 플레이어 윈도우 플랫폼 테스트워크벤치 테스트 기기 ios 플랫폼
  • 22. 22 Subtitles 02 게임 테스트 자동화의 여정 테스트 커버리지의 확장 BAT, 영역별 기본 기능 자동 수행 매 빌드 배포마다 자동 검증 기존 매뉴얼 테스트에선 2개 서버 테스트 -> 30개 서버 정기점검 시, 테스트 서버 수 증가 기획 변경 시 총 321개 항목, 5개 기기에서 1시간 수행 재화 사용 영역 리그레션 테스트 BM 아이템 제작 / 모든 변신 카드 효과 확인 / 상자 확률, 몬스터 아이템 드롭 확률 단순 / 반복 테스트, 대량 설정 자동화
  • 23. 23 Subtitles 02 게임 테스트 자동화의 여정 자동테스트 영역 확대 리그레션 테스트 자동화(automated regression testing) 국내 뿐만 아니라 해외(대만/일본) 자동테스트 확장 다른 테스트가 없는 주말에 집중적인 장시간 테스트 단순 / 반복 테스트 중 휴먼 에러 제거 앱 스토어 심사를 위한 심사 서버의 자동 점검 새벽 시간 예약 테스트로 기능 변경 여부를 확인
  • 25. 25 Subtitles 02 게임 테스트 자동화의 여정 테스트 자동화를 적용하면서 생긴 어려움 게임의 UI의 지속적인 변경 여러 게임 엔진과 새로운 버전 업데이트 대응 테스트 스크립트 수가 늘 수록 수정해야 할 것도 증가 물리적 문제도 발생 자동테스트용 빌드를 직접 빌드
  • 26. 26 Subtitles 02 게임 테스트 자동화의 여정 장애물을 하나 씩 넘어서 플러그인에 다양한 오브젝트 검색 방법을 추가하여 UI 변화에 대비 C++/STL 사용으로 엔진 독립적으로 구현하고 의존성 줄임 스크립트에서 게임 UI 의존적인 부분을 공통 라이브러리로 분리 물리적 문제들은 하나하나 틀어 막아야 개발팀에서 자동테스트 빌드를 제공 또는 사내 빌드에 디폴트로 포함
  • 27. 27 Subtitles 02 게임 테스트 자동화의 여정 게임QA가 신뢰할 수 있는 자동테스트 QA가 자동테스트의 결과를 신뢰할 수 있느냐는 문제 자동테스트 시나리오를 이해 / 오류 재현 가능 자동테스트의 자체의 성공률이 높아야 함 자동테스트에서 사용하는 기술의 정확도가 99.9%는 되어야 함
  • 28. 28 Subtitles 02 게임 테스트 자동화의 여정 현재 수행하고 있는 자동테스트의 종류 01 빌드 인수 테스트(BAT) 02 게임 영역 별 기본 기능 자동테스트 03 모바일 기기 호환성 테스트 04 라이브 서버 자동점검 /임시점검 05 반복 업무 자동테스트 06 재화 관련 테스트/변신 카드 공격 & 이동 속도 전수 테스트
  • 29. 29 Subtitles 02 게임 테스트 자동화의 여정 자동테스트를 수행하는 빌드/플랫폼 Android / iOS / Windows(적용 중) 플랫폼 QA 환경/ RC 환경 / 심사 서버 / 라이브 서버 테스트 환경 19세 / 12세 연령 한국 / 대만 / 일본 서비스 국가
  • 30. 30 Subtitles 방향에 확신이 드니 자동화 적용이 빨라졌습니다 …
  • 31. 31 Subtitles 02 게임 테스트 자동화의 여정 빌드 인수 테스트의 테스트 결과 리포트(BAT)
  • 32. 32 Subtitles 02 게임 테스트 자동화의 여정 테스트워크벤치
  • 33. 33 Subtitles 02 게임 테스트 자동화의 여정 게임 내의 UI를 컨트롤하는 스크립트를 작성하여 수행 Web 테스팅에서 사용하는 식별자 생성 방식인 xpath와 비슷하게 UI 오브젝트 식별자를 생성하는 플러그인을 클라이언트 삽입 모바일 자동테스트 시스템인 Appium을 확장하고 파이썬 스크립트로 테스트 시나리오에 맞춰 모바일 웹과 게임 UI를 식별 및 컨트롤
  • 34. 34 Subtitles 02 게임 테스트 자동화의 여정 플러그인으로 게임 UI 오브젝트 식별자를 생성하여 테스트 Python으로 작성한 테스트 스크립트 + Selenium WebDriver API 라이브러리 확장 프로토콜 사용 1 Appium 서버 테스트 기기 Appium 확장 드라이버 안드로이드 드라이버 안드로이드 부트스트랩 게임 내 플러그인과 통신 게임 오브젝트 인스펙터 클라이언트 UI Automator bootstrap.jar 게임 오브젝트 정보 요청 2 게임 오브젝트 속성 정보 전달 3 Native UI 나 WebView 처럼 터치, 키 입력 전달 4 터치 5
  • 35. 35 Subtitles 02 게임 테스트 자동화의 여정 게임 UI 오브젝트 뷰어(리니지2M) 화면과UI구조를 캡쳐해서PC에저장 UE4의UI요소인 액터,슬레이트,UMG 계층구조를모두추출
  • 36. 36 Subtitles 자동테스트는 게임 개발 과정의 일부입니다 …
  • 37. 37 Subtitles 02 게임 테스트 자동화의 여정 게임 개발팀과 자동테스트를 위한 협업 자동테스트 환경을 게임 개발 과정에도 사용할 수 있습니다 같은 UI라도 기능이 다르면 UI에 다른 이름을 붙여주세요 대규모 UI 변경이든 작은 변경이든 미리 알려주세요 자동테스트를 위한 별도의 테스트 명령어를 제공하면 매우 좋습니다 테스트 명령어 결과를 로컬 파일로 남길 수 있으면 테스트가 빨라져요
  • 38. 38 Subtitles 03 게임 테스트 자동화로 얻은 교훈과 비전
  • 39. 39 Subtitles 03 게임 테스트 자동화로 얻은 교훈과 비전 BOT AI와 자동테스트는 달라요 BOT AI 자동테스트
  • 40. 40 Subtitles 03 게임 테스트 자동화로 얻은 교훈과 비전 자동테스트를 통해 얻은 것 기능 업데이트는 사람이 하고, 반복/리그레션은 자동테스트로 하자 스크립트의 지속적 관리 필요, 테스트가 정확할 수록 작은 변화에도 취약 테스트 수행 시간 제약이 사라짐(새벽/주말) 간단한 검증도 수 백 가지 항목을 반복하면 중요한 검증이 된다(양질전환) 단순/반복적 테스트는 자동테스트로 전환하여 휴먼 에러를 없애기도 좋다 ** 양질전환 법칙(Quantity becomes quality): 헤겔(1818~1883)의 변증법 일정 양의 것이 계속 누적이 되면 어느 순간 질적 변화가 급격히 일어난다는 것
  • 41. 41 Subtitles 03 게임 테스트 자동화로 얻은 교훈과 비전 자동테스트를 위한 숨겨진 비용 스크립트 개발보다 자동테스트 시스템 개발에 더 많은 프로그래머가 필요 자동테스트 시스템을 안정적으로 운영하고 개선하는 것도 큰 개발 비용 한 가지 방법 만으로 모든 테스트 수행 불가. 요구 사항은 계속 나온다 새 게임 빌드가 나올 때마다 스크립트를 검증/유지 보수 발생 OS 업데이트나 새 모바일 기기가 나올 때도 검증/유지 보수 발생 자동테스트에 대한 개발/운영 비용이 전체 게임 개발 비용에 편성되어야 함 QA비용과 별도로
  • 42. 42 Subtitles 03 게임 테스트 자동화로 얻은 교훈과 비전 자동테스트를 어렵게 하는 것 UI 변화에 취약 오브젝트만을 식별하기 때문에 시각적/청각적 문제를 식별할 수 없음 프로그래머가 아닌 게임QA가 스크립트를 쉽게 만들 수 있는 방법은? 사람이 하는 매뉴얼 테스트보다 테스트 커버리지가 더 좁다 테스트 실패 시 결과만으로는 원인 파악이 쉽지 않음
  • 43. 43 Subtitles 03 게임 테스트 자동화로 얻은 교훈과 비전 게임 개발과 함께하는 자동테스트 첫걸음 자동테스트를 위한 플러그인이 포함된 클라이언트 빌드 서버 및 클라이언트 배포 월드 진입 테스트나 스모크 테스트 진행 BAT 및 영역별 기본 기능 테스트 코드 및 리소스 준비 서버 & 클라이언트 빌드 자동테스트 환경으로 배포 빌드 검증 (BVT) 개발팀 빌드 배포 QA 진행
  • 44. 44 Subtitles 게임 QA도 자동테스트 스크립트를 만들어야 하는데 매뉴얼만 아니라 자동테스트도 해야지 자동테스트에 대한 인식 변화 자동테스트도 필요해 !! 작은 회사에 자동테스트가 더 필요하지 테스트 자동화로 해결할 수 있는 영역이 있어 03 게임 테스트 자동화로 얻은 교훈과 비전
  • 45. 45 Subtitles 단계 LEVEL 1 LEVEL 2 LEVEL 3 LEVEL 4 LEVEL 5 테스트 보조 부분 자동테스트 조건부 자동테스트 고도 자동테스트 완전 자동테스트 테스트 주체 사람 + 시스템 사람 + 시스템 시스템 시스템 시스템 테스트 책임 사람 사람 사람 * 사람 * 시스템 자동테스트 시스템이 사람의 테스트를 보조 테스트 시나리오를 사람이 작성하고 시스템이 테스트를 수행 테스트 시나리오는 시스템이 작성 일부 사람이 개입 시스템이 테스트를 수행 시스템이 테스트 시나리오 작성 및 수행 사람은 테스트 결과 확인 테스트 전과정에서 사람의 개입 필요 없음 03 게임 테스트 자동화로 얻은 교훈과 비전 자동테스트 5단계
  • 47. 47 Subtitles Thank you for your attention.