아이템 테스트

전에 MMORPG 만드는 팀에 있을 때, 여러 가지 이해할 수 없는 일이 있었지만, 그중 한 10위권 안에 드는 일 중 하나는 '아이템 테스트'라는 것이엇습니다. 가끔가다가 아이템 데이터를 수백개씩 집어넣어야 할 때가 있습니다. 사실 만들어내는 아이템은 몇개 안됩니다. 이 아이템들이 직업별, 레벨 구간별로 분화하면 몇개 안되는 아이템이 순식간에 수백개가 되는 식이지요. 물론 아이템의 리소스는 거의 같습니다. 아이템이 수백개라도 모델이나 아이콘을 제작하는데는 한계가 있으니까요. 그래서, 같은 리소스를 사용하더라도 이름과 능력치 같은 것을 다르게 만들어 눈가림을 합니다.

그렇게 데이터를 대량으로 만들 때는, 일단 새로 입력할 아이템의 수치데이터를 다른 엑셀 파일 같은데서 작업한 다음, 아이템 데이터로 옮겨오는 식으로 작업을 합니다. 보통은 기계적으로 갖다 붙일 뿐이니까 문제가 일어날 가능성은 적지만, 졸다 보면 직업을 밀려 붙이기도 하고, 아이콘 아이디를 빼먹는다든지, 모델을 한줄씩 밀린다든지 하는 실수가 생기기도 합니다. 사실은 이런 실수조차 생기지 않도록 작업 방식을 개선해야 하지만, 아무도 관심이 없으니 그냥 하던대로 합시다.

또, 서버와 클라이언트 사이에 데이터가 일치해야 하지만, 양쪽 데이터가 제대로 관리되지 않아 버전이 어긋나면 원하지 않는 아이템 버그들이 새롭게 태어나곤 합니다. 이쪽 역시 아무도 버전 관리에 관심을 가지지 않으니 그냥 하던대로 합시다.

작업방식이 아슬아슬하기 때문에 새로운 아이템 데이터에 대한 신뢰도는 0에 한없이 수렴합니다. 그래서, 이것을 어떻게 해결하느냐. 데이터 입력 방식을 개선하거나, 서버와 클라이언트의 데이터 버전 관리 문제에 관심을 기울이는 대신, '버그가 많이 일어난다'라는 문제로 만들어 '그럼 테스트를 깐깐하게 하자'라는 답을 제시해버립니다. 사실, 틀린 부분은 없습니다. 바깥에서 보면 아이템을 대량으로 추가할 때마다 수많은 버그에 시달리고, 이 버그에 시달리는 것 자체가 문제로 지목되는 것도 당연합니다. 윗선에서는 이 문제를 해결하려고 하는 것 뿐이지요. 그래서 테스트 부서에 '새로 추가되는 아이템을 테스트하라'는 명령이 내려가게 됩니다.

아이템 데이터 수백개에 대한 테스트는, 아이템을 게임 내에 소환한 다음 하나하나 입어보고, 써 보고, 수치나 이름이 제대로 들어가 있는지, 아이콘이나 모델은 똑바로 나오는지를 확인하는 식으로 이루어집니다. 개수가 많으니까 몇 사람이 나눠서 하는데, 똑같은 기계적인 작업을 계속합니다. 기계적인 작업이라고 강조하는 이유는, 기계적이니까 자동화할 수 있기 때문입니다. 데이터의 무결성을 신뢰할 수 있다면 테스트는 무작위 추출 정도로 충분히 해결할 수 있습니다. 어차피 데이터가 확실하니까, 그냥 몇 개 끄집어내서 확인하는 것입니다. 모델이 잘못되었다든지 하는 문제는 그렇게 테스트할 수 없지만, 데이터의 무결성을 확인할 수 있도록 개선하는 과정에서 자연스럽게 해결됩니다.

혹시 아이템을 수백개 추가하는데 날밤 까며 아이템을 하나하나 입어 보고 있다면, 개발 과정에 '아주 심각한' 문제가 있는 것입니다. 테스터나 개발자들 모두 아이템이나 입어보며 시간을 때우는 것은 전혀 당연하지 않습니다. 어쩐지 기계가 할 수 있을 것 같은 일을 하고 있다면, 어떻게든 그걸 실제로 기계가 처리하도록 바꿔야 합니다. 지금까지 이야기한 '아이템 무결성 테스트'같은 것이 대표적인 예가 되겠지요.

2008/01/27 23:44 2008/01/27 23:44

, ,

트랙백

답글

답글을 남깁니다.

[로그인][오픈아이디란?]


[요즘에 쓴 글] [예전에 쓴 글]

(C)Milfy / neoocean.net, milfy@neoocean.net