KGC 2009 뒤늦은 – How to eliminate bugs as much as possible

KGC 2009가 끝난지 1달이 넘었습니다.

바쁜 일이 있어서 짬을 내지 못했고(…), 많은 분들이 후기를 올려주셨더군요. 그래서,  ‘안써도 되겠구나’ 하고 생각했는데 …  Makoto Ito(SEGA Corporation) – How to eliminate bugs as much as possible 강연에 대한 후기가 없어서, 써 봅니다.

테스트 = 버그를 발견하기 위한 행동 이라고 정의, 게임의 재미를 찾는 테스트도 있으나 논외로 합니다.

사람에 의한 테스트

장점은 ‘노하우가 쌓이고, 쉽고, 비용을 계산하기 쉽습니다.’ 단점은 ‘테스트 조합이 많아지면서 어려워지고, regression 테스트가 어렵다’는 단점이 있습니다.
사람에 의한 테스트는 사람만이 할 수 있는 복잡한 테스트를 할 수 있기 때문에 꼭 필요하다.

Unit test (단위테스트)

잘 알려진 Unit test 입니다. 주로 버그에 대한 테스트 코드를 작성하고, 리소스와 테스트 코드를 결합해서 사용할 수 있습니다. (예. xls 파일과 테스트 코드의 결합)
게임의 경우 시스템 부분과 로직 부분으로 나눌 수 있는데, 시스템 부분에 Unit test를 사용합니다.

UI나, 렌더링의 경우 화면의 스크린샷을 비교하는 테스트를 하기도 합니다.

Visual Studio 의 add-in을 사용해서, 작업량을 줄일 수 있습니다.

Join Test

클래스를 포함하는 테스트이며, mock framework를 사용해서 테스트합니다.

컴퓨터에 의한 테스트

개발 초기에는 게임을 시작해서 종료하는 테스트만으로도 도움이 된다. replay를 이용한 테스트, log를 비교하는 테스트, replay 구간 구간을 비교하는 테스트 등이 있습니다.

AI Test

인공지능을 이용해서 테스트 하는 방법인데, 간단하게는 ‘랜덤 테스트’를 할 수 있습니다.

CI

그 이후에, CI 이야기가 나왔습니다. CI의 목적은 항상 ‘플레이 가능하게’
강연자가 추천하는 CI 툴은 2세대 CI 툴 hudson을 추천하고 있고, 사용방법이 매우 쉽다고 하는군요. (우리나라에서는 Cruise Control을 많이 쓰는 것으로 압니다만, 그건 1세대 CI 툴이라고 하는군요.)

CI 과정에서 Data convert test 를 하기도 하고 (텍스쳐의 테스트 경우 사용되지 않는 색깔을 이용한다고 합니다.) …

최종 빌드의 리스크를 최소화하는데 목적이 있다고 합니다.

인재 육성

그 방법으로 code review나, study / meeting 등 (예를 들면, journal club)의 예를 들었습니다.

테스트 자동화로 디버깅 시간 감소 -> 여유로워진 시간을 인재 육성 -> 좋은 인재는 버그를 더 줄이고 -> 디버그에 남는 시간을 인재 육성에 투입하는 선순환 구조를 강조했구요.

그리고, 돈이 많은 회사라면 Static Analysis Tool 을 꼭 구입하라고 권하더군요.

제일 중요한 것은 역시 ‘사람’ 아닐까요 .

관련 링크 : http://www.thisisgame.com/board/view.php?id=302087&category=106

센스오브나이트(sens of night) 동영상

유명한 인디게임대회 중 하나인데, 일본 TGS와 같이 열리는 것으로 알고 있습니다. 올해의 센스오브나이트 게임 영상에 유투브에 떴습니다. (http://www.youtube.com/user/SenseOfWonderNight)

우리 나라의 Active X 에 대한 불만 …

우리 나라의 인터넷을 사용하다 보면, ActiveX 플러그인(plug-in) 설치를 해야만 하는 웹사이트들이 정말 많다. 은행, 정부기관, 쇼핑몰, 온라인 게임 등 … 셀 수 없을 정도인데, 굉장히 불편하다.

은행의 경우, ActiveX를 설치하지 않으면 뉴스와 공지, 정보조회조차 못하도록 되어있는 경우가 많다. 그리고, 그 대부분의 ActiveX는 관리자모드로 실행되도록 되어 있기 때문에 윈도우 비스타(Vista)에서 파이어폭스(firefox) 웹브라우저를 쓰는 나는 더 불편하다. IE를 띄우고, 팝업 창의 ‘예’를 몇 번씩 눌러야 한다. ( 나는 UAC를 활성화 시켜서 사용하고 있다. )

몇몇 웹사이트는 처음부터 익스플로러를 관리자 모드로 실행시키지 않으면 ActiveX 설치와 동작이 되지 않는 경우도 있었다. ( 예를 들면, 모 게임 사이트, 모 금융 사이트 ) 대부분이 보안을 위한 ActiveX 인데, 보안을 위한 ActiveX를 설치하기 위해, 보안에 위험한 관리자 모드 실행을 해야 한다는 것이 아이러니하다.

또 몇몇 웹사이트의 보안 ActiveX의 경우 설치되어 있는 백신과 충돌을 일으키지 않을까 하는 우려가 생기기도 한다. 보안을 위한 ActiveX를 위해서, 백신을 꺼둔다는 것도 이상한 것 같고 …

근본적인 문제는 ActiveX 플러그인은 사용하는 컴퓨터, 운영체제, 브라우저를 강제하게 되어버린다는 것. CPU는 항상 x86호환이어야 하고, 운영체제는 특정한 버전의 MS-Window이어야 하며, 브라우저는 알맞는 인터넷 익스플로러이어야만 한다.

윈도우7 이 나오고 사람들이 많이 쓰게 되면, 나와 같은 불편을 겪는 사람들이 훨씬 많아질 것이고 … 적어도 ‘UAC를 끄세요’ 와 같은 말은 하지 말았으면 좋겠다.

알기는 아는데, 잘 모르겠다

지난 3년동안 다른 회사에서 프로젝트 시작부터 중후반까지 참여했다. 어느 프로젝트가 다 그렇듯이 좋은 점도 있고 그렇지 않은 점도 있었지만, 개인적으로도 많이 배웠다.

배우기는 했는데, 지금 돌이켜보면 아직 잘 모르는 것 같기도 하다. (다 잊어버린건가 ?!!)

  • “아니오” 라는 말은 신중하게 써야 한다.
  • 가끔은 시간이 해결해 줄 때도 있다.

사람은 대개 단 것을 좋아한다.

달콤한 것 – 일본어로는 甘い – 을 사람들은 좋아하는 것 같다.

과자나 소다수와 같이 단 음식들은 과자가 많다. 단 음식들은 대개 영양가가 풍부하지 않으나 맛있는 과자들이며, 사람들은 이것을 굉장히 좋아한다.