알라딘MGG와이드바


단위테스트(UnitTest, xUnit) 관련 질문 있으시면 해 주세요 #4 개발 이야기

안녕하세요. 9월 초에 있을 KGC(Korea Games Conference) 발표 준비 할겸해서 이것저것 알아보고 있습니다.
마침 올해 제가 번역한 '[http]xUnit 테스트 패턴' 과 '[http]Debug It! 실용주의 디버깅' 도 나온터라 주제를 '낡은 코드와 단위테스트'로 잡아보았습니다.
2007년 KGC 에서 제가 '[http]TDD, UnitTest for games' 를 발표할 당시에만 해도 단위테스트를 모르는 사람도 꽤 있었지만, 지금은 단위테스트가 많이 알려졌고 실제로 단위테스트를 하고 있는 조직도 많이 늘었습니다. 하지만, 많은 분들이 레거시 코드에 단위테스트를 도입하면서 어려움을 겪고 있고, 그러다보니 단위테스트가 별로 도움이 안 되는 거 아니냐는 의견도 많이 들었습니다. 그래서 이번에는 오래된 코드 기반에 단위테스트를 도입하는 기법과 팁을 주로 다뤄볼 생각입니다.

이메일을 통해서 단위테스트에 대해 물어보시는 분들이 있어서 허락을 받고 여기에 질문과 답변을 올립니다. 다른 분들도 단위테스트를 만드면서 궁금했던 점 있으시면 댓글이나 이메일, [http]위키 등으로 질문을 올려주시면 정리해서 블로그에 올려놓도록 하겠습니다.

단위테스트를 만드는 철학은 사람마다 호불호가 다릅니다. 제가 개인적으로 경험하고 느낀 점에 기초해서 답변해 드리겠습니다.

영현님 :
"임베디드 (빌드를 하고 이미지를 만들고 타겟에 업로드를 하는) 환경에서 TDD를 어떻게 할 수 있나요?"

답변 :
저는 임베디드 환경에서 개발해 보지는 않아서 제 경험을 말씀드릴 수는 없네요. 아래 링크를 확인해 주세요.
http://parkpd.egloos.com/1589984
http://parkpd.egloos.com/1589986
아래 PT 는 ?HighMoon Studio 라는 게임 회사에서 TDD 를 어떻게 하고 있는지를 보여주고 있습니다. 2006 년 당시 이 회사는 XBOX 나 플레이스테이션용 게임을 만들고 있었습니다. 아무래도 콘솔 같은 경우에는 이미지를 만들어서 올려야 했기 때문에 자주 테스트를 할 수는 없었던 거 같습니다. PT 31 장을 참고해 주세요.
좀 다른 얘기지만 '[http]새로운 기계의 영혼' 이라는 책이 있습니다. 여기에서 보면 소프트웨어 개발을 원할하게 진행하기 위해 하드웨어 시뮬레이터를 만드는 장면이 있습니다. 임베디드 환경에서 TDD 가 어렵다면 최대한 시뮬레이터를 활용하는 것도 한 방법이 아닐까 싶네요.


matthew
기초자도 개념에 대하여 쉽게 접근 할 수 있는 책을 추천해 주시거나 발표 자료가 있으시다면 이번에는 기법과 툴을 다루는 내용을 만약에 듣게 된다 하더라도 이해도가 높아 질 거 같습니다. 9월 초에 있을 KGC(Korea Games Conference) 는 언제 하시나요 ^^

답변 :
TDD 나 UnitTest 관련책은 몇 개 있습니다. 역시 기본서로는 [http]테스트 주도 개발 : Test-Driven Development - 켄트 벡 을 먼저 보시면 좋습니다. 자바쪽을 개발하신다면 [http]테스트 주도 개발 : 고품질 쾌속개발을 위한 TDD 실천법과 도구 만한게 없을 거 같습니다. 저는 [http]실용주의 프로그래머를 위한 단위 테스트 with JUnit 도 재미있게 읽었습니다. 레거시 코드에 단위테스트 추가해야 한다면 [http]Working Effectively with Legacy Code 를 꼭 읽어봐야 합니다. 김창준님과 강규영님이 TDD 로 개발하는 모습을 담은 [http]동영상도 좋습니다. 다른 분들이 만든 TDD 코드를 보는 것도 도움이 될 거 같네요. 대인배 회사 MAIET 에서 공개한 UnitTest++ 로 작성한 단위테스트 코드 예제도 살펴보세요. [http]링크1 [http]링크2
KGC 는 9월 13일~15일에 코엑스에서 열립니다.

핑백

덧글

댓글 입력 영역


Yes24위대한게임의탄생3

위대한 게임의 탄생 3
예스24 | 애드온2