[NDC 2021] ‘리니지M과 2M’의 자동테스트는 어떻게 구현됐을까?
게임 개발에는 이 기능이 제대로 작동하는지, 버그는 없는지, 상호작용에 문제는 없는지 등의 여러 분야를 테스트하는 과정을 거치게 된다. 그런데 이 게임의 테스트의 자동화가 적용된다면 앞으로 게임 시장에는 어떤 변화가 생길까?
금일(10일) 넥슨 개발자 콘퍼런스 2021(이하 NDC 2021)에서는 엔씨소프트의 대표작인 리니지M과 리니지2M의 자동 테스트 결과들과 얻은 교훈을 공유하는 ‘게임 테스트 자동화 5년의 기록’ 강연이 진행되어 눈길을 끌었다.
이번 강연의 발표를 맡은 엔씨소프트의 김종원은 한글과컴퓨터에서 윈도우용 아래아한글 3.0b 시리즈를 개발한 것은 물론, 스마트폰 개발과 ‘리니지 이터널’의 테크니컬 디렉터(TD)로 7년간 근무하는 등 굵직한 프로젝트에 다수 종사한 인물이다.
김종원은 2015년 처음 게임의 자동화 테스트를 도입한다고 말을 꺼냈을 때 주변에서는 “자동화 테스트가 되겠어?”라고 말했지만, 오랜 시간 시행착오를 거치며 결국 사람을 거치지 않고 정확하고 실수 없이 기본적인 반복 요소의 자동화 테스트에 성공했다고 강연을 시작했다.
실제 리니지2M의 자동화 테스트 영상을 공개한 김종원은 자동화 테스트 시스템은 게임 QA팀에 일원화된 테스트 환경을 제공하고, 각 프로젝트별로 적절한 영역을 개발하고, 테스트의 범위와 퀄리티를 향상하는 데 주력했다고 강조했다.
엔씨의 자동화 테스트 서비스는 크게 6가지로 구분된다. 우선 테스트를 예약 시간에 반복적으로 자동 실행하고, 테스트 스크립트의 데이터를 관리 편집하며, 체크 항목의 스크린샷과 과정을 녹화해 동영상 화하는 식이다.
이를 위해 플랫폼이나 스마트폰기기 그리고 게임엔진이 달라도 같은 환경에서 같은 방식으로 테스트가 진행되고, 다른 목적으로 테스트가 진행되어도 같은 형식의 리포트를 제공하는 등 테스트 환경을 통일하기 위해 노력했다고 김종원은 설명했다.
또한, 게임 빌드가 확장될 때마다 자동으로 검증하고, 테스트를 진행할 수 있는 서버의 수를 늘리고, 아이템 상자를 수 천 번씩 열어서 기획에서 의도한 확률이 제대로 적용되었는지 확인하는 등의 과정을 거친다고 강조했다.
물론, 이러한 기능을 구현하기까지는 많은 시행착오가 있었다. 가장 큰 문제는 게임마다 엔진이 달라 별도 플러그인을 설정해 줘야 했고, 국내와 국가별로 다른 게임의 빌드와 신규 업데이트 빌드를 모두 별도의 자동테스트 빌드로 만들어야하는 과정을 겪었다.
이에 김종인은 UI가 변화하더라도 테스트 분야의 검색에 실패하지 않도록 검색 방법을 다양화했고, 모니터링 시스템과 원격 재부팅 등으로 물리적 문제를 하나하나 줄여나갔으며, 개발팀에게 자동테스트 빌드를 제공하는 등 보다 명확하고 편리한 시스템을 구축해 나갔다고 말했다.
이에 처음에는 60~70% 수준이었던 정확도를 2,600회의 테스트를 연속으로 수행하여도 1~2회의 네트워크 오류로 테스트가 실패하는 정도로 신뢰도를 끌어올렸다.
자동 테스트의 종류에 대한 소개도 이어졌다. 현재 엔씨의 자동 테스트 시스템은 게임 영역별 테스트, 모바일 기기 호환성, 라이브 서버 자동/임시점검, 반복 업무 테스트, 재화 및 변신 시스템, 공격 & 이동 속도 전투 테스트를 진행 중이다.
이를 통해 신규 빌드가 모든 플랫폼에 호환이 되는지를 빠르게 확인할 수 있고, 간단한 테스트를 수천 번 해야 하는 반복 업무가 자동으로 진행되며, 전투 및 유료 아이템의 능력치가 제대로 게임 속에 적용되는지 모든 경우의 수를 자동 테스트로 처리할 수 있다.
김종인은 자동 테스트 시스템은 단순 QA가 아닌 다양한 방면에도 사용될 수 있다고 강조했다. 고도화된 AI가 아닌 간단한 동작을 반복하는 스크립트만으로도 개발 시간을 크게 단축시킬 수 있으며, 테스트 명령어 결과를 기기에 파일로 남길 수 있으면 매우 유용하게 사용될 수 있다고 전했다.
마지막으로 그는 자동화 테스트를 통해 새벽/주말에도 테스트할 수 있어 테스트의 수행 시간 제약이 사라졌고, 간단한 검증도 수백 가지 항목을 반복하면 중요한 검증이 되며, 무엇보다 반복 테스트에서 발생하는 사람의 실수를 크게 줄일 수 있었다고 말했다.
물론, 이러한 시스템을 구축하기 위한 비용도 발생한다. 실제로 이 자동 테스트 개발에는 실제 게임 스크립트 개발에 더 많은 프로그래머가 투입된 적도 있었고, 이를 매번 달라지는 빌드에 따라 안정적으로 운영하고, 개선하는 과정 역시 큰 개발비용이 소모된다.
이러한 이유로 QA 비용을 아끼고자 자동시스템을 도입하는 것은 아직 불가능하며, 자동 테스트에 대한 개발 및 운영 비용은 QA 비용과 별도로 전체 게임 개발비용에 포함해야 한다고 김종인은 강조했다.