개발 QA란 무엇일까? 게임 개발에서의 QA

안녕하세요.

오늘은 개발 QA에 대해 이야기해보고자 합니다.

개발 QA를 다루기에 앞서 QA란 무엇이고 어떤 일을 수행하는지 간략하게나마 짚고 넘어가볼까요?

 

QA란 무엇일까?

게임에 조금이라도 관심이 있는 분들에게 물어보신다면 대부분 알고 계시는 편인데, 대다수 분들은 QnA(질의 응답) 등으로 잘못 알고 계시는 경우가 더럿 있습니다. QA는 정확히 어떤 직무이고 어떤 업무를 맡게 될까요?

 

QA는 Quality Assurance(품질 보증)의 약자로 의미 그대로 어떤 상품, 물건에 대한 스펙을 다방면으로 검증하여 완성도를 높이고 이 과정에서 발견되는 결함 관리하여 사용자(소비자)로 하여금 좋은 경험과 신뢰성을 확보하는 업무를 담당합니다. 이 품질 보증의 대상은 대체적으로 소프트웨어(OTT, 게임), 자동차, 가전제품, 가구 등 다양할 수 있어요. 이처럼 여러가지 업종과 분야에서 제품의 품질을 높이기 위해 QA가 존재하고 사용자의 만족도를 높일 수 있도록 여러가지 노력을 기울이고 있습니다.

 

 

그렇다면 개발 QA란 무엇일까?

개발 QA는 대게 게임 개발사의 프로젝트 내에서 게임을 대상으로 업무를 수행하는 QA를 의미합니다. 필자 또한 개발 QA로서 업무를 맡고 있는 만큼 내용 또한 게임과 관련된 QA 내용에 치우쳐질 수 있을 듯 한데요, 게임이 출시 또는 업데이트됨에 따라 유저에게 제공하는 서비스(보통 이벤트나 신규 콘텐츠, 편의 기능 등이 이에 해당)가 의도된 방향으로 잘 전달되게끔 개발 단계에서부터 QA 프로세스를 구축하고, 테스트를 설계 및 수행하며 개발자와 활발한 커뮤니케이션을 통해 게임의 완성도를 높이는 것을 목표로 하고 있습니다.

 

 

개발 QA는 어떤 일을 하는가

1. 테스트 및 버그 리포팅

테스트는 QA의 기본이 되는 메인 업무입니다. 테스트 이론과 실무 능력을 바탕으로 타깃 제품이 요구된 스펙에 맞게 구현이 되었는지, 동작하는 과정에서 버그는 없는지, 사용자 경험(UX)을 해치거나 저해하는 부분은 없는지 다방면으로 테스트를 진행하며 결과를 도출합니다. 테스트를 종료되면 발견된 리스크(버그)를 정리하여 기획자와 개발자에게 리포팅하고 수정 작업을 진행할 수 있도록 서포트하는 역할을 맡습니다.

 

2. 일정 산출과 리스크 관리

테스트의 기본기만 갖추고 있다면 이는 QA가 아닌 단순 테스터에 가깝다고 볼 수 있습니다. 그렇다면 이 차이를 만드는 QA의 요소들에는 어떠한 것들이 있을까 의문점이 들 수 있는데요, 그 중 하나가 바로 원활한 테스트 일정을 확보하는 일입니다. 만약 특정 테스트를 수행하는 물리적인 수행 시간이 3일이라고 가정했을 때, 프로젝트의 일정 상 테스트가 가능한 일수가 2일 밖에 남지 않았다면 어떨까요? 테스트 수행률이 100%가 아닌 상태로 테스트를 마쳐야 하며 이 과정에서 발견되지 못한 이슈들이 고스란히 유저에게 불편을 가져오게 됩니다.

이러한 문제를 사전에 방지하기 위해 QA는 테스트를 진행하기 앞서 테스트에 걸리는 시간과 일정을 미리 확인하여 온전한 테스트가 가능하도록 일정을 확보하고 계획해야 합니다.

*물론, 일정만 관리한다고 해서 모든 부분을 케어할 수 있는 것은 아니겠죠. 그래서 잠재적인 리스크를 예상하고 관리하는 능력도 갖출 필요가 있습니다. 어떻게하면 원활한 일정 산출과 리스크 관리를 할 수 있을지에 대한 고찰은 다른 포스팅으로 좀 더 상세히 다뤄보도록 하겠습니다.

 

3. 빌드와 서버 (테스트 환경) 관리

개발 환경이다보니 개발(DEV)을 시작해서 유저에게 서비스(LIVE)하는 과정에서 QA를 진행할 수 있는 테스트 환경을 지속적으로 관리하는 역할도 수반됩니다. 파트의 세분화에 따라 BM(빌드 매니징)이나 PM(프로젝트 매니저)가 이를 관리하기도 하지만 테스트의 주체는 QA이기 때문에 테스트가 수행되는 환경을 지속적으로 체크하고 스펙 상 특이사항은 없는지, 안정성은 어느정도 확보되었는지 점검하고 피드백을 주기적으로 내는 업무를 맡습니다.

 

 

개발 QA의 역량을 높이기 위해

추가로 QA의 중요도와 관심이 높아지는 추세인 만큼 개발 QA로서 조금 더 욕심 내보면 어떨까 하는 부분이 있습니다.

현재 개발 QA에 몸담고 계시거나, 진로로 잡으시고 준비하시는 분들께 조금이나마 도움이 됐으면 합니다.

 

1. 업무의 자동화

아무래도 테스트라는 것이 반복되고 시간이 많이 걸리는 경우가 많다보니, 개인적으로 이제는 자동화가 선택이 아닌 필수가 됐다고 생각합니다. 단순하고 반복성이 짙은 테스트는 자동화를 통해 시간을 아끼고, 아낀 시간을 더 중요도가 높은 곳에 투자하는 방식으로 일을 하는 방식이 필요합니다. (여기서 중요도가 높은 것은 신규 콘텐츠, 이벤트 등이 해당)

대표적으로는 스프레드 시트 함수를 통한 문서 자동화, 자동화 테스트 툴을 활용한 테스트가 있습니다. 일반적으로는 자동화는 보편화가 덜 되어있고 필수 덕목으로 취급받지는 않고 있지만 미리 자동화 분야에 대한 안목을 기르고 업무에서 활용할 수 있다면 본인을 보다 전문적인 인력으로 입지를 다지는데 한 몫할 것이라 생각됩니다.

보통 Selenium, Python등을 공부하고 실무에 활용하는 경우가 많습니다.

 

2. 커뮤니케이션 능력

의외로 커뮤니케이션에 약해 정확한 정보 전달이 이루어지지 않거나 오해를 사는 등의 경우가 많습니다. 이 문제는 비단 QA 뿐만이 아닌 어느 사회 집단이든 동일하고 또 중요하게 여겨지는 요소일 겁니다. 특히나 개발 QA의 경우 개발자와의 직접적인 커뮤니케이션이 많기 때문에 의사 전달이 보다 명확해야 하고 알맞는 피드백이 이루어져야 합니다. 이를테면 발견한 버그의 리포팅에서 재현 스탭이나 사전 조건의 누락이 있거나 잘못된 내용을 전달하여 원인 파악과 수정에 불필요한 시간을 쏟게 되는 경우가 생긴다면 커뮤니케이션의 미스로 인해 시간적 코스트를 낭비하게 된 것입니다. 또한 사람과 의견을 주고 받는 것이다보니 상대방의 생각과 감정을 읽는 능력도 못지않게 중요합니다.

대화의 분위기를 잘 읽고 명확한 정보 전달이 돋보이는 커뮤니케이션 능력을 갖춘 인재라면 어느 집단에서라도 환영받을 것이라 믿어 의심치 않습니다. 평소에도 주변 사람과 대화를 많이 하거나 독서 등을 통해 언어적 능력을 기르는 것을 추천드립니다.

 

 

이렇게 개발 QA에 대한 소개와 생각하는 바를 풀어 간략하게나마 끄적여보았습니다.

위에서 미처 다루지 못한 개발 QA의 업무도 많다보니, 다음 포스팅에서 여러가지 주제로 차근차근 풀어나가보고자 합니다.

글 읽어 주셔서 감사합니다.