상단여백
HOME 게임 취재
[NDC19] “QA, 사후가 아닌 사전에 해야 효과적이다”

넥슨네트웍스의 서정린 QA1본부장은 26일 열린 넥슨 개발자 컨퍼런스(NDC)의 “열정적인 테스트가 우리 게임 서비스의 품질을 향상시키지 못하는 이유” 세션에서 결함 발견을 위해 테스트의 개념이 바뀌어야 하고, 개발자와 기업의 시선이 달라져야 함을 지적했다. 

넥슨네트웍스의 QA조직 지향점이 바뀌게 된 계기는 소프트웨어 테스팅 지식 체계를 받아들이면서 부터라고 한다. 과거에는 물리적 업무 퍼포먼스를 중심으로 제한된 시간 안에 TC의 처리용량을 늘리는 방향을 추구했지만 현재는 예방 활동에 중심이 옮겨가고 있다는 것.

에드워드 데밍 박사에 따르면 대부분의 문제점은 94%가 관리 책임이며 6%는 특수한 사례의 비율로 해당한다고 한다. 그리고 그의 붉은 구슬 실험에 따르면 산출물의 결함을 발견하는 테스트의 빈도 자체로도 상황은 변하지 않는다고 한다. 이는 결함은 이미 제작 단계에서 결정되기 때문이며 테스트로 결함을 발견하는 것은 확률의 영역이고 계획 없는 테스트는 운빨이라는 것.

이게 그냥 이론이라고 생각하고 더 많은 노력을 기울이면 좋지 않겠냐고 생각할 수 있지만, 사인오프 패스 횟수와 패스 확률, 사후결함의 평균이나 편차는 천차만별이었다. 즉 물리적 투입량과 결과물은 상관성이 없다.

그렇다고 테스트가 필요 없진 않다. 결함의 식별과 처리 관련 서비스를 제공해 개발 조직이 개발에 집중할 수 있고 테스트 조직이 없어도 이 역할은 사라지지 않는다. 문제는 투자 대비 불만족스러운 테스트 결과가 왜 발생하느냐에 있다는 것.

넥슨네트웍스가 사전결함 발견에 주력하는 이유는 결함관리 비용이 절약되기 때문이고 한다. 초기에 발견하면 결함 유발 복잡도가 낮고 상호 작용 범위가 좁다. 테스트 시기를 당겨 개발단에서 문제를 발견해 수정하는 것이 가장 좋은 방법인데, 대부분 현실은 그렇지 못하다. 개발팀은 결함을 다 고칠 수 있지만 시간이 부족다. 그래서 사전에 큰 결함이 줄어들면 다른 우선순위 결함을 수정할 수 있다. 

테스트란 결함 줄이기가 아닌 리스크 관리 계획과 그 결과에 있다. 그리고 결함 숫자의 억제는 개발 공정 전 단계에서 관리될 필요가 있다고 한다. 따라서 위험요소를 분석하고 치명적 문제점을 표로 나타내는 HACCP 체계가 필요하다고 지적한다. 이를 개발에 투영하면 개발 프로세스 각 단계에서 문제 유발 원인을 찾고 허용 기준선을 정립해 단계별로 검수할 수 있다.

개발 공정에서 사후 결함 발생 원인의 대부분은 작업자의 단순 실수로 무려 93%에 달한다고 한다. 미스 커뮤니케이션에 의한 오해나 정해진 규칙 위반의 경우는 합쳐도 7%에 불과하다. 

이런 현상이 발생하는 이유는 개발 시간 자체가 부족해 최적화 프로세스 변경이 부담되고 설계와 구현이 동시에 진행돼야 하며, 일정 지연으로 테스트 리소스 공급 시기가 변경될 수 있기 때문이다. 또한 역할이 명확히 배분되지 않은 것도 있다. 사전에 정해진 예정 리스크 수준과 개발 공정이 제대로 이뤄지지 않으면 리스크를 감수하거나 출시일 지연 중에서 선택할 수밖에 없다는 것.

테스트는 마무리 활동이지만, 그 전에 결함 예방 활동이 개발과 함께 수행돼야 한다고 지적한다. 예방 비중이 줄어들면 테스트 결과 신뢰도가 하락하기에 테스트가 잘 되게 하려면 앞단을 강화해 테스트를 줄여야 한다. 

품질 비용은 등가교환으로서 개발이나 QA, 서비스는 같은 사슬의 다른 고리라고 말한다. 어느 한 쪽의 변화가 다른 쪽에 영향을 주고 제일 취약한 부분이 전체 품질 수준에 영향을 주기 때문. 품질이 개선되려면 전체 사슬이 강해져야 한다고 지적한다.

그래서 QA는 개발자가 실수하는 영역을 탐지해서 미리 전달하는 것이 훨씬 효과적이며 양적 증대는 비효율적이다. 그리고 리스크 개선을 위해서는 정보 없이 수행되지 않기에 개발 측에서의 충분한 정보 전달이 중요하다고 한다.  

또한 지나치게 빠듯한 예산 책정과 무형의 비용 관리 부재 등 품질 향상에 대한 업체의 인식과 기업 문화의 변화가 필요하다고 그는 지적한다. 그래서 리스크 식별 작업에 대한 기회비용 투입은 설계 6~7, 실행 3~4 정도가 좋으며, 얼마나 보는 것보다 어디를 어떻게 보는게 더 중요하다고. 

그리고 리스크 컨설팅의 결과를 개발 조직이 수용할 수 있는 용기가 필요하다고 한다. 또한 데이터와 로직을 조립 전후에 테스트할 수 있으면 결함 선처리 효과가 강화되고 통합 테스트 빌드의 결함 억제력이 향상된다고 한다. 

프로세스 통제가 안되면 리스크 관리 자체가 안 된다고도 말한다. 테스트 완료 빌드에 개발자가 임의로 컨펌없이 커밋을 해 문제가 발생한 경우가 있었다고. 물론 열심히 하는 개발자의 기를 죽일 필요는 없지만 통제는 확실히 해야 한다는 것이 그의 주장이다.

마지막으로 그는 “실수를 줄이는 노력은 필수다. 모든 사후결함은 사람의 실수에서 비롯되기에 이를 위한 안전장치를 고안하고 실수 자체를 부끄러워하거나 숨기려 하지 말라. 실수를 지적하는 것은 당신이 싫어서 그런 게 아니다.”라는 말로 강연을 마쳤다.
 

박상범 기자  ytterbia@gamevu.co.kr

<저작권자 © 게임뷰, 무단 전재 및 재배포 금지>

박상범 기자의 다른기사 보기
icon인기기사
기사 댓글 0
전체보기
첫번째 댓글을 남겨주세요.
여백
여백
여백
여백
Back to Top