김종원 엔씨소프트 개발자 / 사진=NDC 유튜브
김종원 엔씨소프트 개발자 / 사진=NDC 유튜브

"테스트 시나리오를 자동테스트 시스템이 만들 수 있다면 자동테스트는 개발 과정에 반드시 필요한 시스템이 될거라 생각한다. 여러 게임 개발회사에서도 자동테스트의 연구와 적용이 계속됐으면 한다."

10일 온라인으로 열린 넥슨개발자회의(NDC 2021)에서 김종원 엔씨소프트 개발자의 말이다. 그는 '게임 테스트 자동화 5년의 기록'이란 주제로 자동테스트 시스템을 개발하면서 겪은 시행착오와 이를 통해 얻은 인사이트를 공유했다.


5년 간의 여정...시행착오와 고군분투

김종원 개발자는 "여러가지 시행착오를 거치면서 ▲사람을 대신하지 않고 ▲사람이 하지 않아도 되는 일을 하고 ▲사람보다 정확하고 ▲가장 기본적이면서도 반복적인 것을 자동화 하고자 했다"고 말했다. 그는 지난 2016년 유니티 게임의 자동테스트를 시작으로 2017년 리니지M 출시와 함께 자동테스트를 운용하기 시작했다고 전했다. 또 2018년에는 '테스트워크벤치'라는 자동테스트 시스템을 개발했다.

또 2019년에는 언리얼 플러그인 형태로 리니지2M에 자동테스트 시스템 적용하고 2020년에는 안드로이드뿐만 이나라 iOS 플랫폼도 동시에 자동테스트를 시행했다. 올해 초 출시한 리니지2M 대만·일본 버전도 자동테스트를 시행중이다.  

5년 간의 테스트 자동화 여정 / 사진=NDC 유튜브
5년 간의 테스트 자동화 여정 / 사진=NDC 유튜브

다만 김종원 개발자는 "결과부터 이야기 하니까 처음부터 진행이 잘된 것 같겠지만 실제 테스트 자동화를 개발하는 과정은 무척 험난했다"고 말했다. 자동화테스트 스크립트를 개발하는 중에 게임 사용자인터페이스(UI)가 계속 바뀌게 되고 게임마다 적용되는 게임엔진이 달라서 플러그인을 계속 새로 추가해야 했다고 설명했다. 또 버전이 업데이트되는 경우에도 대응해야 했는데, 변경 사항이 발행하면 모든 테스트 스크립트를 수정해야 해서 더 힘들었다는 것이다.

김종원 개발자는 네가지 방법으로 이같은 문제를 해결했다고 설명했다. 먼저 게임 UI가 변화되더라도 검색에 실패하지 않도록 검색 방법을 다양하게 만들었다. 게임 엔진에 독립적인 부분을 만들어서 서로 다른 게임엔진이라도 하더라도 검색 기능을 공유하도록 했다는 설명이다. 두번째로 테스트 스크립트는 공동 라이브러리를 만들어서 변경 시 바꾸어야 할 부분을 최소화했다.

또 그는 "물리적인 문제는 하나하나 시행착오를 겪으며 해결했다"며 "물리적인 문제는 왕도가 없어 직접 부딪혔다"고 설명했다. 이어 "마지막으로 개발팀의 사내 배포 빌드에 항상 자동테스트 기능이 들어가도록 개발팀과 협업했다"고 덧붙였다.


자동테스트를 통해 얻는 다섯가지

김종원 개발자는 지난 5년간 자동테스트 시스템 개발하며 얻은 인사이트를 공유했다. 먼저 그는 "기능이 변경된 것은 사람이 직접확인하고 변경되지 않은 기능은 자동테스트를 하는 것이 좋다"고 말했다. 단순 반복 작업은 자동테스트가 적합하다는 뜻이다. 더불어 자동테스트를 위해선 지속적인 스크립트 관리가 필요하다고 강조했다. 그는 "테스트가 정확할수록 작은 변화에 약해진다"며 "테스트스크립트는 변화에 대응할 수 있도록 작성해야 한다"고 말했다.

자동테스트를 통해 얻은 것 / 사진=NDC 유튜브
자동테스트를 통해 얻은 것 / 사진=NDC 유튜브

또한 김종원 개발자는 게임 테스트를 할 수 있는 시간 제약이 사라졌다는 점도 강조했다. 자동테스트로 주말 간 장시간 테스트, 새벽 시간 테스트 등으로 테스트가 이뤄지는 시간이 늘어났다는 것이다. 이에 더해 간단한 검증도 수백가지 항목을 계속 반복하면 중요한 검증이 된다는 점과 단순·반복적인 테스트를 자동테스트로 전환하면 사람이 실수를 없앨 수 있다는 점도 중요한 포인트라고 설명했다.


자동테스트 5단계

김종원 개발자는 자율주행 5단계와 비슷한 자동테스트 5단계를 제시했다. 테스트 주체와 테스트 책임을 나눠 자동테스트 시스템이 사람의 테스트를 보조하는 1단계부터 테스트 전과정에서 사람의 개입이 필요 없는 5단계로 나눴다. 그는 "현재 테스트 시나리오를 사람이 작성하기 떄문에 게임 콘텐츠 변화에 빠르게 대응하기 어렵다"며 "테스트 시나리오를 시스템이 작성하는 자동테스트 레벨 3 수준에 도달하면 자동테스트는 개발 과정에 반드시 필요한 시스템이 될거라 생각한다"고 말했다.

자동테스트 5단계 / 사진=NDC 유튜브
자동테스트 5단계 / 사진=NDC 유튜브

마지막으로 그는 "앞으로 이 자동테스트 5단계를 나타낸 표가 계속 언급될 수 있도록 여러 게임 개발회사에서도 자동테스트의 연구와 적용이 계속됐으면 한다"고 말하며 발표를 마쳤다.

 

이성우 기자 voiceactor@techm.kr

관련기사