• 주제 : 자동화와 함께하는 게임QA의 미래
  • 강연자 : 박찬혁 Chanhyuk Park | 넥슨네트웍스 / Nexon Networks
  • 발표분야 : 사업마케팅 & 경영 기획
  • 권장 대상 : QA, QA 협업 조직 구성원
  • 난이도 : 사전지식 불필요 : 관련 전공이나 경력이 전혀 없더라도 이해할 수 있는 내용


  • [강연 주제] 넥슨네트웍스 QA에서 최근 QA를 자동화하기 위한 시도를 진행하고 있습니다. 지금까지 진행하며 겪었던 어려움과, 유의미했던 사례, 앞으로 가고자 하는 방향을 작동 사례와 함께 소개하고자 합니다.

    넥슨 네트웍스 QA 본부의 박찬혁 개발자는 '자동화와 함께하는 게임 QA의 미래'라는 주제로 2022 NDC 강연을 진행했다. 그는 QA가 안정적 품질을 제공하기 위해 노력해오고 있음에도 다양한 형태의 라이브 결함을 경험할 수밖에 없다며, 이를 극복하기 위한 수단으로 자동화를 선택하게 됐다고 밝혔다. 자동화 시도를 통해 확인한 실제 효과는 무엇인지, 시도 과정에서 어려움을 극복해온 과정은 어땠는지, 앞으로 하고자 하는 QA의 자동화 방향은 어떤 것인지 들어볼 수 있는 시간이었다. QA의 자동화 외에도 해당 강연에서는 QA가 경험으로 체득하는 노하우를 공유하기 위해 개발 중인 '케이스 공유 도구'가 함께 소개됐다.




    ■ 어려운 게임 QA, 어떻게 해야 잘할 수 있을까

    강연의 첫 순서는 '게임 QA'에 대한 기본적인 소개로 꾸며졌다. 게임 QA란 게임의 안정적인 서비스, 품질 확보를 위해 기능의 작동을 검증하는 업무를 뜻한다. 주로 PC와 모바일 게임을 테스트하지만, 게임만을 테스트하는 것은 아니다. 넥슨 네트웍스 QA 본부는 연동, 결제, 호환성, 웹 등 넥슨 서비스 전반의 품질 검증을 도맡아 담당하고 있다.

    게임 QA의 업무에 대해 간단히 언급한 박찬혁 개발자는 넥슨 게임 QA가 왜 자동화를 시작하게 됐는지에 대한 소개를 이어나갔다. 첫 번째 이유는 게임 QA가 어려운 작업이기 때문이다. 하나의 예를 보자. A 맵에서 B맵으로 이동하는 단순한 액션 하나를 하더라도 검은 화면이 노출되거나 로딩 이후 크래시가 발생하고, 자동 이동으로는 포탈에 진입하지 못하는 등 정말 다양한 문제가 발생할 수 있다. 게임에는 맵과 탈것, 보상 등 정말 다양한 구성 요소들이 있고, 이러한 구성 요소가 중첩되면 경우의 수가 그만큼 증가하게 된다. 맵을 이동한다는 간단한 액션 하나에서도 무수한 경우의 수만큼 예측하기 어려운 다양한 결함이 발생할 수 있는 것이다.

    경우의 수는 물론, 게임 자체의 수도 많다. 넥슨에서는 다양한 장르의 게임을 서비스하고 있는데, 여기에 결제, 연동, 스토어 파생 업무까지 다양한 일감이 동시에 존재한다. 유저들이 편하게 플레이하기 위해 필요한 테스트 영역은 점점 늘어나지만, 테스트를 할 수 있는 자원은 현실적으로 한정되어 있다. 여기서 '게임 QA의 딜레마'가 발생한다. 자동화는 이러한 딜레마를 해결하고, 게임 QA를 더 잘할 수 있는 방법들을 모색하는 과정에서 등장한 대안인 셈이다.


    ▲ 게임이 재밌어지는 과정에서 QA의 난이도는 끝없이 올라간다

    이때 넥슨네트웍스에서 도출해낸 해답은 '한정된 자원을 효과적으로 사용하는 방식'에 있었다. 더 효과적인 업무 수행을 위해 두 가지 관점에서 일하는 방식을 바꾸는 도전을 시작했고, 그 첫 번째 방식이 바로 '자동화'였다.

    박찬혁 개발자는 정해진 일정 안에서 모든 테스트를 완료해야 하는 상황에서는 '사람이 무한대가 아니라면 할 수 없는 일'이 생기기도 하는데, 이때 소중한 인원을 단순 반복 작업에 투입하기는 아까운 일이므로 자동화를 시작할 수밖에 없었다고 설명했다.

    보통 자동화라고 하면 해당 시스템을 개발한 당사자나 전문 인력만 할 수 있는 경우가 많지만, 넥슨네트웍스에서는 넥슨의 운영 개발실에서 개발한 자동화 도구 '오토플로우'를 활용하여 이러한 문제를 어느 정도 해소할 수 있었다. 특정한 액션을 수행하는 기능들을 QA 담당자가 조합해서 스크립트를 생성하면, 오토플로우는 이를 자동으로 실행시켜주는 역할을 담당한다. 누구나 사용할 수 있도록 쉬운 사용성을 제공하되, 필요하다면 커스텀을 통해서 추가 기능을 개발해서 사용할 수도 있는 것이 특징이다. 현재 넥슨네트웍스의 게임 QA 조직은 이 도구를 활용하여 각 게임별로 자동화를 진행해나가고 있다.

    ▲ 한정된 자원(인력)으로는 도저히 완수할 수 없는 경우가 발생한다

    ▲ 넥슨네트웍스에서는 이때 '오토플로우'라는 자동화 툴을 활용했다

    물론 처음부터 모든 과정이 원만하기만 했던 것은 아니다. 박찬혁 개발자는 처음엔 소수 인원을 중심으로 주 단위 스프린트를 진행했고, 낯선 도구를 파악하고 자동화가 가능한 영역들을 발굴해야만 했다고 설명했다. 이후 기본적인 사용 방법들을 교육하고, 효과가 확인된 사례를 공유하는 과정도 필요했다.

    결과적으로 넥슨네트웍스는 이러한 과정을 거치며 다양한 실제 사례들을 쌓아갈 수 있었다. 사람과 툴이 동시에 검증하는 방식을 활용할 수 있게 됐고, 결함을 재현하기까지의 소모 시간 역시 크게 단축할 수 있게 됐다. 0.01%의 등장 확률을 확인하기 위해 6만 번 이상 확률 상자를 개봉하는 등, 실제 사람이 했다면 80시간 이상이 소요될만한 업무를 4일 만에 완수해낸 사례도 있었다. 사람이 하던 반복되는 작업들은 자동화로 처리하고, 이렇게 창출된 기회 비용으로 사람이 더 중요한 영역이나 다른 작업에 집중할 수 있게 된 것. 이것이 자동화를 통해 일궈낸 가치라고 할 수 있다.

    ▲ 사람이 하기 어려운 테스트를 더 빨리, 효과적으로 해결해주는 것 역시 툴의 강점이다

    ▲ 자동화 툴의 활용 사례는 지금도 계속 쌓이고 있다

    어찌 보면 당연한 이야기겠지만, 자동화 영역이 확대될수록 이에 비례해서 시간 대비 효율은 상승하게 된다. 박찬혁 개발자는 지금도 넥슨의 게임 QA가 더 많은 자동화 가능 영역을 확보하려 하고 있으며, 숨 쉬듯 자연스럽게 자동화를 연상하고, 필요할 때 언제든지 만들어서 사용할 수 있도록 역량을 확보하여 '자동화는 전문 인력만 할 수 있다는 편견'을 깨나가는 중이라고 설명했다.



    ■ 경험의 편차를 줄이기 위한 도전, '경험의 고도화'

    만약 반복되는 영역을 모두 자동화한다면, 이때 사람은 무엇을 해야 할까? 넥슨네트웍스에서는 자동화와 동시에 경험의 편차를 줄이기 위한 도전을 함께 이어가고 있다. 기계가 모든 것을 대신할 수는 없으므로, 사람만이 할 수 있는 경험과 판단이 필요한 영역에 집중해야 한다는 것이다. 대표적인 예로 한 번 장애를 겪은 결함이 다시 발생하지 않게 사전에 예방하거나, 리스크가 있을 수 있는 영역을 선별하고 탐색해보는 등 테스트를 더 잘할 수 있는 방법을 찾는 것 등이 있다.

    QA 정기 리뷰에서는 '특정 조건'에서 문제가 발생했다는 단어가 자주 등장하곤 한다. 일반적인 상황에서는 문제가 없지만, 조건이 결합되는 상황에서 문제를 야기하는 경험을 꽤 자주 접하게 된다는 것이다. 이런 유형의 결함들은 예측하기 힘든 케이스가 많기에 사전에 예방할 수 있도록 항상 공유하게 되는데, 각 게임들이 가지고 있는 상황들이 서로 다르기 때문에 이를 잘 활용하지는 않는다.

    박찬혁 개발자는 게임도 다르고, 재연 절차도 다르고, UI/Flow까지 모두 다른 게임들이라고 할지라도, 동일한 조건의 오류가 발생하는 경우가 생각보다 많다고 설명했다. 완전히 달라보이는 게임이라도 문제를 유발하는 조건이 같을 수 있기 때문이다. 만약 현상이 아닌 원인, 즉 본질을 이해하고 있다면 약간의 노력을 투자하는 것으로 이러한 '예측하기 힘든 케이스'를 예방할 가능성이 커진다는 것이 박찬혁 개발자의 주장이다.


    그래서 넥슨네트웍스는 '케이스 매니저(Case Maneger)'라는 도구를 만들게 됐다. 개념은 생각보다 간단하다. 테스트 케이스를 기본으로 테스트와 관련된 정보들을 모아두고, 누구나 쉽게 접근해서 필요한 정보들을 찾을 수 있게 하나로 통합 관리하기 위한 도구라고 할 수 있다.

    이를 활용하면 대량의 정보 중에서 내가 원하는 정보를 빠르게 찾아낼 수 있고, 사양이 다르다거나 변경됐을 때도 실시간 갱신으로 갱신 내용을 확인하기가 수월하다. 동일한 영역인데도 경험이나 이해의 차이로 테스트의 깊이가 다를 수 있다는 불안 요소를 보완할 수 있으며, 테스트 수행 대상은 하나의 도구에서 모든 내용을 확인할 수 있다는 것이 '케이스 매니저'의 특징이자 장점이다.

    이외에도 테스트 케이스마다 진행 상태가 표시되기 때문에 테스트 진행 상황을 일일히 묻고 답할 필요도 없고, 주로 어떤 영역에서 문제가 발생하는지, 누가 테스트했던 영역인지도 히스토리를 통해 쉽게 확인할 수 있다. 담당자가 변경되어도 유지가 될 수 있고, 다른 게임에서도 활용할 수 있게 되는 셈이다.


    박찬혁 개발자는 케이스 매니저를 통해서 특히 집중하는 부분은 '추상화'에 있다고 설명했다. 정확한 절차를 공유하기보다 이해하기 쉬운 문장으로 절차가 아닌 '필요한 행동'을 제시하면, 테스트 담당자가 경험이 부족할지라도 필요한 액션을 인지하고, 실행할 수 있다는 것이다. 경험이나 숙련도에 관계없이 누구나 중요한 결함을 예방할 수 있는 케이스들을 확인하고 실행하는 것, 즉 테스트의 질을 상향 평준화하는 것이 '케이스 매니저'의 존재 의의라고 할 수 있다.

    자동화도, 케이스매니저도 결국 QA 업무를 고도화한다는 하나의 목적을 가지고 있다. 모든 구성원이 자동화 도구를 사용할 수 있도록 새로운 기능도 계속 추가하면서, 도구 자체도 계속 업데이트되고 있는 상황이다.

    박찬혁 개발자는 사람에 의한 테스트만 가능했던 과거에서 벗어나 이제는 QA 구성원 누구나 자동화 도구를 다룰 수 있도록 하고 있다며, 사람이 더 중요한 영역에 집중한다는 목표는 결국 '높은 품질의 넥슨 서비스'로 연결될 것이라고 강조했다. 그는 아직 갈길이 멀지만 넥슨 게임을 플레이하는 모든 고객들이 더 쾌적한 환경을 누릴 수 있도록 앞으로도 멈추지 않을 것이라는 포부를 밝히며 자신의 발표를 마무리했다.