▲ 넥슨네트웍스 황우람

넥슨과 같은 큰 규모의 테스트 조직에서 테스트 정책은 어떤 의미가 있을까. TMMi 레벨2에서는 테스트 정책과 전략을 가장 첫 항목으로 다루고 있다. '정책' 이 가지는 포지션이다. 그렇다면 넥슨은 어떻게 테스트 정책을 수립했을까.

넥슨네트웍스 QA 본부의 황우람은 넥슨의 테스트정책의 대 내외적인 의미와 위상을 설명하고, 테스트 활동의 근간이 되는 테스트 정책 수립에 대한 인사이트를 공유하기 위해 강단에 올라섰다. 내용 전달의 편의성을 위해 강연자 시점으로 서술했다.



테스트 정책 수립의 이론

TMMi, 테스트 조직 성숙도 평가 모델 중 레벨2에 해당하는 주요 항목을 주고 "가장 자신 있는 것과 가장 자신 없는 것을 뽑아보라"고 질문하면 대부분 '테스트 설계와 실행'을 자신 있다고 뽑는다. 반면 '테스트 정책과 전략'에 대해서는 자신이 없다고 한다.

일반적으로 테스트 정책에 자신이 없기보다는 처음 들어보는 사람들이 많을지 모른다. 정책이 무엇인지 알아도 외부로 공개된 자료들이 거의 없기에 찾아보기도 힘들다. 참고할 만한 자료가 없다고 생각할 사람들이 많다. 그렇기에 자신이 없다고 대답한다.

테스트 정책은 테스트에 관한 결정 사항을 안내하고 합리적인 결과를 수행할 수 있게 하는 원칙이나 규율을 의미한다.

▲ TMMi 2레벨 주요 항목

그렇다면 정책은 왜 필요한 것일까. 관리자 입장에서 "그런 거 없어도 지금껏 잘해왔자나"하면서 등한시 할 수 있다. 그런데 위기는 언제든 찾아올 수 있으며 과연 지금까지 잘 해왔는지에 대한 확신이 있다고는 할 수 없다. 감에 의존하는 테스트말고 정확한 정책이 필요한 이유다.

실무자의 입장에서 테스트 정책은 '기록하지 않으면 기억되지 않는다'라는 말로 설명이 가능하다. 물론 이는 세상 모든 QA 들이 알고 있는 이야기다. 그러나 어떤 규정된 문서가 필요하므로 테스트 정책은 필요하다. 누군가가 안다고 전부 다 알고 있다는 것은 큰 착각이다. 게다가 알고 있는 것과 글로 쓰는 것, 실천하는 것은 다른 차원의 어려움이다. 문서로 만들어 진 정책이 있어야 전체가 공유하고 이해하게 할 수 있다.

즉, 일관된 기준이 필요하므로 테스트 정책이 필요하다. 실제로 서적을 찾아보면 필요성은 더 크게 다가온다. 무인양품 회장 마쓰이 타다미쓰의 '무인양품은 90%가 구조다'라는 책을 보면, 무인양품이 위기에 직면했을 때 회사단위의 매뉴얼을 통해 일관되게 따랐더니 위기를 극복했다는 내용이 나온다. 회사 단위 정책의 중요성을 설명한 책이다.

또한, 경영학자 짐 콜린스의 책 '위대한 기업은 다 어디로 갔을까?'를 보면, 기업의 위기를 5단계로 구분한다. 그 중 2단계 '원칙 없는 확장은 탐욕이다'라는 부분이 있다. 2단계를 극복하지 못하면 3, 4, 5단계를 거치며 나락으로 빠지는데 2단계에서 언급하는 '원칙'을 통해 위기를 극복할 수 있다. 준수할 수 있는 원칙을 만들어 정책으로 규정할 필요성이 대두한다.

그러므로 테스트 정책 수립은 지금보다 테스트를 잘하기 위해서, 앞으로 다가올지도 모르는 위기를 예방하기 위해서, 테스팅 조직 전체의 전문성을 위해서 필요하다. 이는 테스트 정책을 기록하고, 테스트 조직 전체에 공유하며 모두 실천하는 방법으로 실행할 수 있다.



그런데 왜 없을까?

이토록 테스트 정책이 필요한 이유는 명확하다. 그런데 지금까지 테스트 정책을 찾아보기는 힘들었다. 그 원인을 실무에서 찾아봤더니 파편화라는 현실과 마주했다. 테스트 기준, 유형, QA 마인드, 책임과 의무가 다 달랐다. 그러다 보니 누군가 조직이동을 하거나 신규 프로젝트가 생기거나 리더가 바뀌면 불필요한 교육 예산이 나가고, 쓸데없는 리소스를 소모해야만 했다.

스태프 조직 역시 복잡다각화와 대면하고 있었다. 게임 QA 조직은 거의 항상 다수 프로젝트를 동시에 진행한다. 또한, 계열사, 퍼블리셔, 개발사, 개발 QA, 외주업체 해외사 등 복잡한 구조로 되어 있으며 그나마 있는 기준조차 과거 PC 온라인 게임을 토대로 만들어진 것들이다. 그래서 모바일 게임이나 새로운 플랫폼에 맞는 기준을 잡기도 어려웠다.

따라서 파편화와 복잡다각화된 조직들을 대상으로 일관된 기준을 제시하는 것은 현실적으로 너무 어렵다는 결론이 나오고, 현실적으로 어려우니까 다들 좌절하여 테스트 정책을 수립하려고 하지 않았던 것이다.


"최소한 이 정도는 해야 테스트 조직이지"라는 말을 하고는 한다. 그런데 과연 '이 정도'가 뭔지 기준은 전혀 없다. 적어도 '이 정도'라는 기준이 정해져야 완성도를 보장할 수 있는 것인데 말이다. 일정 수준 테스트 완성도를 보장한다는 것은 취약한 프로젝트도 성장시켜야 한다는 말과 상통한다. 결국, 테스트 조직의 상향 평준화를 이끌어야 한다는 결론에 도달한다.

그래서 TMMi에서도 가장 기본적이고 중요한 작업이 바로 '테스트 정책' 이라고 하는 것이다.

정리하자면 조직 단위 일정 수준의 테스트 성숙도를 확보하고, 개인역량이 아닌 프로세스 중심의 체계를 마련하고, 전체를 포괄할 수 있는 테스트 기준이 필요하다는 말로 요약할 수 있다. 문제는 이를 어떻게 구현하느냐다.



그럼 이걸 어떻게 하느냐

'어떻게'에 대해 명확한 내용이 없었기에 일단 이론을 실무에 적용해보기로 했다. 그 과정에서 이런 질문을 받았다. "이걸 왜 실무에 적용하려고 하죠?". 난 이러한 이야기를 들을 때마다 미생 4화를 떠올렸다. 장그래가 한석률에게 실내화를 팔면서 "사무실과 현장이 서로 다르지 않다"고 하는 장면이다.

이론과 실무는 서로 다르지 않다. 장그래는 테스트 정책을 만드는 정책 기획자고 한석률은 실행하는 현업실무자라고 볼 수 있다. 서로 고집만 부리면 아무것도 되지 않는다. 밸런스를 맞춰서 보완해 서로 시너지를 낼 때 1+1이 3 이상이 될 수도 있다. 즉 이론과 실무는 상호보완적인 관계라는 말이다.

실무를 중요하게 생각하는 사람도 분명 실무 하다가 막힐 때가 있다. 그때마다 테스팅 이론을 꾸준히 연구하고 실무에 적용하려고 노력해야 한다. 이를 통해 이론과 실무가 모두 적용된 QA 정책을 마련할 수 있다고 생각한다.

나는 일반적으로 정보 수집할 때 구글링을하고 이후에 주변 친한 회사 동료에게 묻거나 타사 동료나 지인에게 묻는 방법을 선호한다. 그 이후에는 멘토를 찾아가거나 전문서적을 보는 방법으로 정보를 수집한다. 그런데 이 방법의 가장 큰 문제는 멘토 단계다. 여기저기 물어보고 결국 멘토에게 가서 물어보면 내가 개념이 제대로 정립되지 않았기 때문에 잘되지 않는다. 개념이 제대로 잡히지 않으니 잘못된 정보나 단편적인 근거에 집착해서 현혹당하는 것만 같았다.

그래서 QA니까 QA답게 역순으로 해보기로 했다. 우선 전문서적과 검증된 자료로 개념을 정립하고 멘토에게 찾아가 조언을 구했다. 멘토의 대답에서도 합리적 의심이 가능하다면 동료나 지인에게 물었다. 구글링의 경우 내가 정립한 개념을 확인하는 용도로만 사용했다. 그랬더니 좀 더 정보 수집이 쉬워졌다.

물론, 손쉽게 얻은 지식과 정보로 큰 효과를 거두려는 발상은 너무 욕심이 지나친 것 아닌가 싶기도 했지만, 처음부터 치밀하고 완벽한 정책을 만들 수는 없지 않은가. 우선 최소한의 기준을 만들기로 했다. 그 뒤 이론과 실무를 조합하고 현업 전문가들의 피드백이 반영되면 완성할 수 있을 것으로 판단하고 초안을 만들기로 했다.




테스트 정책 수립과정

이론을 정립하면서 어느 정도 정책 리스트를 만들고 초안을 만들기 시작했다. 동료의 원서 번역 자료도 참고했고 STA 주관 교육도 받았다. 당시 나는 실무 경력 10년에 스태프 조직 10개월 차였기에, 조직을 잘 안다고 생각했다.

그러나 만들어진 초안은 처참했다. 항목마다 상세한 설명과 진행/액션 플랜을 적어야 하는데 10개월간 실무와 떨어진 스태프 조직에 있다 보니 감이 떨어져 있었던 것이다. 실무자들의 조언이나 피드백이 필요하다고 생각했다. 애초에 전문서적 등에서 습득한 이론은 빡빡한 기준으로 정립되어 있었기에 현업에 적응하기에 무리가 있었다.

그래서 TF를 구성하기로 했다. 피드백을 빨리 받아 제대로 된 정책을 만들기 위함이었다. 일반적으로 TF 멤버는 입사일 기준으로 뽑거나, 마음 맞는 멤버로 뽑거나 혹은 대충 골고루 섞어서 뽑는다. 사실 조직별 리더가 착출해 구성하는 게 가장 일반적인 구성방법이기는 하다.

그런데 이런 방법은 동기부여가 부족하므로 마치 대학 조별과제처럼 흐지부지되어버리고는 한다. 책임자도 없고 방향성도 없기 때문이다. 여기서부터 또 다른 고민을 하기 시작했다. 우선 QA 답게 '리스크 기반'으로 멤버를 선정하기로 했다. 그리고 스스로 동기를 부여할 수 있는 멤버를 우선시하기로 했다.

이과정에서 참고한 서적은 애덤 그랜트의 '오리지널스', 알란 이글과 조너선 로젠버그의 '구글은 어떻게 일하는가?', 미나 투레이싱험 , 볼프강 레마허의 '리더의 편견' 그리고 짐 콜린스의 'Good to Great(좋은 기업을 넘어 위대한 기업으로)'였다.

'구글은 어떻게 일하는가?'를 보면 '보블헤드'를 회의자리에 앉히지 말라는 구절이 나온다. 자기 생각 없이 무조건 고개만 끄덕이는 사람은 회의장에 필요 없다는 내용이다. 즉 자기만의 생각이 필요하다는 점을 강조한다. '리더의 편견'을 보면 경험이 얼마나 무서운가에 관한 내용이 나온다. 천재 스티브 발머조차 오판을 하게 한 경험에 대해 경계하게 한다. 마지막으로 'Good to Great'에는 동기부여는 애초에 누가 시켜주는 게 아니라 스스로 하는 것이라는 구절이 나온다. 올바른 사람을 버스에 태우면 버스는 알아서 제대로 간다고 설명한다. 동기부여를 스스로 하는 사람을 중요시하라는 것이다.


그렇게 TF를 구성했다. 실무적 관점에서 조언자들을 모았다. 다양한 사람 선정했다. 그리고 작성한 초안에 대해 확실한 피드백을 달라고 했다. 눈치 보지 말고.

그런데 피드백을 받는 협의를 하기 위해서 1시간 이상 정책에 관해서 이야기하고 초안에 관해 이야기하는 일이 계속됐다. 각자의 관점으로만 바라봤기 때문에 회의 때마다 '리셋'되는 상황이 연출됐다. 그래서 '정책 협의기준'부터 만들기로 했다. 우리는 이를 '성공적인 정책 수립을 위한 넓고 얕은 대화법'이라고 표현했다. 다음은 성공적인 정책수립을 위한 넓고 얕은 대화법이다.

1. 사용자 중심의 정책 수립
- 각 조직의 파편화된 현실과 개선 관련 한계점을 면밀히 검토함
- 복수의 정책이 수립될 가능성도 사전에 염두하고 진행
- 협업 조직 배포를 감안하여 배포 범위에 따른 확장성, 실효성 고려

2. 수단과 목적의 혼동 주의
- 테스트 조직을 위한 일관된 기준을 제시
- 정책 수립 자체가 목적이 아니라는 것을 리마인드
- 합목적성을 항상 고민하도록 유도 (질의응답 필수)

3. 정반합
- 의도적으로 기존 방식에 의문을 품고 역행하는 개선방안을 선제시
- 이를 통해 기존 방식이 올바른 방법인지 스스로 검토하는 형태로 진행

4. 충분한 폴리싱 과정
- 장기적인 목표로 설정
- 초안 완성 후 실효성 검토를 위한 실무 리더들의 피드백 수용

이후 협의다운 협의가 시작됐다. 욕심을 버리고, 선입견을 버리고, 취향을 버리고, 정책 문서에 어울리는 형태, 단어 표현 등을 고려했다. 그런데 여전히 뭔가 부족하다고 느껴졌다. 바로 테스트 정책 수립 시 반드시 포함되어야 할 키워드를 짚고 넘어가지 않았기 때문이다.


테스트 정책을 만드는 본질적인 이유는 품질 향상을 위해서다. 하지만 품질에 대해서 명확히 정의 내리기는 쉽지 않다. 품질보증 업무를 수년간 하는 우리 조직조차 품질에 대한 진지한 고민과 철학을 담는 게 쉽지 않았다. 그러던 와중 애플이 신기능보다 안정성과 성능에 초점을 맞춰 소프트웨어를 업데이트하는 방향으로 전략을 수정했다는 뉴스를 보게 됐다. 무리한 목표 달성보다 개발자에게 좀 더 시간을 줌으로써 제품 완성도는 높인다는 전략이었다.

품질은 협의의 영역이 아닌 '절대적 가치 준수'의 영역이다. 스베누라는 신발이 있었다. 맨체스터유나이트와 계약할 정도로 잘 나가는 브랜드였는데 이염 현상이 보고됐다. 이에 아예 스베누 신발을 받지 않겠다는 세탁업체가 생길 정도였다. 스베누는 적당한 수준으로 가격을 낮춰 판매하려고 했으나 결국 재고만 남는 상황을 맞이해야만 했다.

이는 '절대적 가치' 관점에서 많은 점을 시사한다. 적당한 수준으로 타협하여 가격을 낮춰 출시하거나 기대치를 낮추게 되면, 결국은 품질에 대한 전반적인 불신으로 이어져 잘못된 결과로 나타나게 된다는 점이다. 적당한 수준의 불량 물건을 싼값에 내놨다가, 그게 좋은 품질의 후속 제품에 영향을 주는 상황 역시 종종 발생한다.

이를 게임으로 보면, 저품질의 게임을 오픈함으로 인해서 후속 게임의 인식에 영향을 주는 상황이 있을 수 있다고 생각해볼 수 있다. 이는 정말 큰 문제다. 그러므로 QA 조직은 품질 관점에서 객관적인 의사를 명확하게 밝혀 출시 과정 전반의 품질 균형에 이바지하려는 노력을 해야만 한다.

품질은 윤리적 관점으로 바라봐야 할 대상이기도 하다. 경영철학에도 품질 이야기가 많이 포함되고는 한다. 모든 부서, 개인과 팀이 협업하여 이뤄내야 할 주요 가치에 한다.

놀러가서 불꽃놀이를 본 적이 있다. 불꽃이 머리 위로 떨어질 것 같은 짜릿함과 터질 때의 감동과 낭만이 있었다. 놀이기구와 비슷하다. 놀이기구는 감동과 낭만 대신 짜릿함과 즐거움을 느낄 수 있다. 그런데 만약, 불꽃놀이 중에 문제가 생겨서 머리 위로 떨어지거나 화재가 발생했다면 낭만은 한 번에 무너진다. 합리적 비용을 주고 샀으나 문제가 있으면 즐거움을 커녕 괴로움만 주게 된다.

이를 게임으로 바꿔 이야기하면 즐겁고(재미) 편안(안전)한 게임을 합리적인 가격(비용)으로 고객에게 제공하는 게 품질이라고 할 수 있다. 협의가 끝난 품질 수준을 갖출 수 있도록 하는 장치를 마련하는 것은 QA 조직의 역할이자 윤리적 소임의 문제라고 할 수 있다..

블리자드는 이 분야의 롤모델이다. 회사 스스로 가치가 없다고 생각하면 출시를 하지 않는 등 브랜드 가치를 소중하게 여기는 자세는 충분히 배울 필요가 있다.

그럼에도 협의가 끝난 기준을 달성하지 못한 제품에 대한 QA 조직은 어떤 태도를 보여야 할까. QA 조직은 결정권이 없다. 올바른 가치 판단 및 의사결정을 위한 객관적인 자료를 제공할 뿐이다. 경영자나 디렉터에게 고객관점에서 불편요소와 피해사항을 고려하는 분명한 태도를 보여야 하는 정책을 담아야 한다.

다시 말해, 제시된 상황을 고려할 때 QA 조직은 고객의 관점에서 품질에 대한 엄격하고 객관적인 기준을 제시할 수밖에 없다는 말이다.

게임 QA 관점에서 과거 품질은 '안정성'이란 말과 동일했다. 하지만 더는 안정성만으로는 현재의 고객을 만족하게 할 수 없게 됐다. 고객 관점에서 품질을 표현할 때 '게임성이 좋다'라든가 '갓겜이다'라든가 '혜자겜이다'라는 식으로 표현한다. 그러므로 QA 조직은 고객 사용언어에 대해서도 소통을 해야 한다.



왜 우리는 테스트를 하는가


품질에 관한 우리의 철학을 테스트 정책에 포함하기로 했다. 그렇게 테스트 정책 세부 내용을 마련했다. 정책의 핵심 내용은 '테스터 마인드와 테스팅 전문성', '테스트 프로세스 정의', '테스팅의 핵심 가치'였다.

테스터 마인드와 테스팅 전문성은 자신의 이름을 걸고 출시할 수 있는가로 설명할 수 있다. 다음은 실제 테스트 정책에 포함된 구절이다.

테스터 마인드

모든 QA 조직의 구성원들은 스스로 품질에 대한 철학과 자부심을 갖고 업무에 임해야 하며, 모든 테스트가 중요하고 의미있는 활동이라는 소명 및 윤리의식이 뒷받침 되어야 한다.

직무역량 매트릭스를 만들어서 전문성을 정의하기도 했다. 테스트 엔지니어의 역할과 자격을 정의하고 테스트 매니저의 역할과 자격을 정의한 것이다. QA 직무에 따른 필수 역량과 항목을 나열했다. 직군별로 어떤 일을 해야 하며 어떤 평가기준으로 평가를 해야하는 가를 명시했다.

그리고 테스트 프로세스도 정의했다. 우리는 '리스크 기반 테스팅'을 테스트 활동의 핵심 기조로 삼고 추가 기법을 적용하기로 했다. '선택과 집중'으로 리스크가 높은 것에 집중하는 게 효과나 효율이 높기 때문이다. 처음부터 무리하게 FM으로 적용하기보다는 이미 정착 궤도에 진입한 조직을 표준 모델 삼아 참고할 수 있도록 유도했다. 장기적 관점에서 핵심 기조 자체는 불변하지만, 개별 운영 방식은 유동적으로 진행할 수 있게 했다. '테스팅 핵심 가치'는 다음과 같이 정의했다.

결함을 발견 또는 예방함으로써 기업이 갖고 있는 유/무형의 가치 손실을 최소화하며, 고객들을 더 즐겁고 안정된 게임을 만드는데 기여한다.


주요 안건은 총 5가지였다. '최대의 품질'은 고객 최대 다수가 인정하는 뛰어난 품질의 게임을 QA와 함께 만들어 나가는 것으로 정의했다. 책임과 의무도 명기했다. QA 조직의 주요 책임과 의무사항, 정밀한 테스트 설계에 관한 책임과 의무에 대해 명기했다.

QA 프로세스 효율 향상도 추구했다. 일견 시간 단축은 품질확보와 거리가 멀어 보일 수도 있다. 그러나 자동화나 프로세스의 고도화를 통해 테스트 리소스를 절약할 방안을 연구 개발해 품질 확보를 하겠다는 방향이었다. 테스트 프로세스 개선을 위해서 프로세스 진단 모델을 개발하고, 테스트를 자동화했으며 개발 프로세스를 분석/연구했다.

아울러 QA 조직의 가치와 경쟁력, 새로운 지식, 이를테면 AI나 신규 플랫폼에 대해서 QA를 어떻게 진행할까 고민하게 하는 학습 안건도 정했다. 3개의 정책 핵심 내용과 5개의 주요안건은 품질 향상을 위한 조직단위의 프로세스 최적화 활동이라고 할 수 있다.



테스트정책 수립은...

테스트 정책 수립은 조직 단위의 품질향상을 위한 필수작업이자 조직단위의 테스트 프로세스 최적화를 위한 필수작업이다. 이를 염두에 두고 조직은 항상 되물어야 한다. 최적의 테스트는 각자의 프로젝트를 진단하고 최적의 방법론과 리소스를 활용한다면 가능하다.

TMMi 레벨 5의 핵심 키워드는 최적화다. 최적화를 향한 도전은 '테스트 정책 수립'으로 부터 시작한다.