게임 프로그래머의 만담, 게임코디 2nd
+1 vote
1.9k views 만담 (287p) , 1.9k views
게임업계에서도 유닛 테스트 같은 기법들 사용하시나요? 제가 알기로 QA분들이 대부분 있어서 테스팅을 대신해주는걸로 알고있습니다. 실무에서 쓰시는분 계신가요?? 혹시 사용한다면 어떻게 쓰시나요?

만담에 대한 답글을 하려면 로그인 또는 가입해야합니다.

6 answers

0 투표
저희 프로젝트는 솔루션에 있는 모든 프로젝트들이 유닛테스트를 수행하지는 않습니다.

(프로젝트가 너무 커서 레거시 코드들까지 수행할 수는 없을 듯..)

하지만 제가 소속된 팀은 모든 SE들에게 강제하고 있고, 저희팀 내부 코드는 유닛테스트 커버리지도 상당히 높습니다.

gtest를 사용하고요.

https://google.github.io/googletest/
답글 (207p)
0 투표
유닛테스트 등으로 모든 코드 검증을 완료 했다고 하더라도 QA 테스트는 수행 해야 합니다.

프로그래머가 기획서, 기능을 이해 하고 머리 속에서 생각한 논리를 기능 구현 한것이고 이에 대한 소스코드 검증 정도로 보시면 될것 같습니다.

 

결국 프로그래머도 실수를 하고, 논리 오류를 발생시키거나, 기획서의 의도와 다르게 이해 한것, 체크를 빼먹은 것 등은 QA에서 발견될 부분들입니다.

 

저 같은 경우는 서버 프로그래머 이지만 유닛테스트 등을 사용하지 않고 있습니다. 쓰면 좋은줄 알지만 일정을 주지 않아서요

그래서 기능 위주로 구현 한뒤 샘플 클라를 만들어서 어느정도 테스트 해보고 난뒤에 넘기거나 클라이언트에서 구현하면서

1차 테스트, 수정 합니다.

클라까지 다 구현되면 QA 들어갈것이고요

 

제가 경력의 상당기간이 클라, 클라/서버 병행 이여서 서버로만 일한지 1,2년 밖에 되질 않아서요 저도 이게 맞는지 궁금하네요

다른분들 의견도 함께 들려주셨으면 좋겠습니다.
답글 (2.7kp)
+1 vote
클라와 서버가 좀 다들 거 같긴한데요. 저는 클라 프로그래머니까 클라 위주로 제 의견을 적어보겠습니다.

일단은, 한참 개발 중인 클라에서는 하기가 힘듭니다. 왜냐하면, 기획이 계속 바뀌기 때문입니다. :(

많은 기능을 구현한 클래스가 있다면, 그 클래스가 제대로 작동하지는 확인하는 유닛 테스트 코드의 작성량도 상당히 많아지는데요. 그래서 유닛 테스트를 꾸준히 하면서 기능 구현을 하려면 개발 기간이 상당히 오래 걸립니다. 기획이 바뀌면 다 갈아 엎어야 하는 경우도 수시로 생기고요. 그래서 기획이 계속 바뀌면서 빠른 개발속도를 요구하는 프로젝트에서는 도입하고 싶어도 못합니다.

라이브 서비스 중이고 유지 관리만 지속적으로 필요한 프로젝트라면, 휴먼 에러를 줄이기 위한 방법으로 각종 테스트를 자동화 하기도 하지만, 그건 일종의 QA 자동화라고 부를 수 있을 거 같고요. 소스 코드 레벨에서 함수나 클래스를 검증하는 유닛 테스트라고 부르기는 힘들 거 같습니다. 예를 들어, MS에서 오피스 개발 등을 할 때는 QA팀이 각종 테스트를 자동화해서 처리한다고 들었는데요. 그래서, QA 팀도 코딩 전문가라는 얘기를 들은 적이 있네요.

일반적으로 유닛 테스트는 요구사항이나 기획이 거의 바뀌지 않는 애플리케이션 개발에 적합하다는 생각입니다. 경험상, 게임에서는 입력값과 아웃풋이 비교적 명확하고 오류가 나지 말아야 하는 로우 레벨의 함수등을 검증할 때만 간혹 필요했습니다. 입력값의 범위가 넓은 수학적 계산이 필요한 함수. 암호화, 복호화, 패킹, 언패킹 등 데이터 처리나 파일 처리를 하는 함수등을 검증하려고 할 때는 사람이 검증할 수 있는 범위가 좁아서, 유닛 테스트를 이용한 자동화된 검증이 필요했습니다.

즉, 게임 클라 개발에서는 부분적으로 필요한 경우는 있었으나, 프로젝트 전체에 도입하기에는 무리가 있었고요. 그래서, MS나 구글등에서 제시하는 유닛 테스트 프레임워크를 도입하기에는 무리가 있었습니다.
답글 (3.6kp)
0 투표
웹쪽은 테스트 코드 만드는 시간이 기능개발 시간보다 더 많다더라구여.
답글 (120p)
0 투표
엔진 레벨 유닛 테스트

테스트 케이스

QA

 

3단으로 분리해서 작업해여
답글 (211p)
+2 투표
QA팀은 생물학적 유닛테스트입니다. ㅎㅎㅎ
저도 실무에서 유닛테스트+QA팀 필수입니다.

유닛테스트로 감당 안되는걸 QA팀이 해주는겁니다. 가장 이상적인 것은, 모든 것을 유닛테스트로 만들어 QA팀이 없게 하는거죠. 현실적으로 그게 어렵기 때문에, 유닛테스트로 할 수 있는건 유닛테스트로 하되, 유닛테스트가 도저히 안되는 일부를 어쩔 수 없이 QA팀이 해주는겁니다.

유닛테스트는 QA팀보다 100배 이상의 시간 효율성을 냅니다.
답글 (412p)

게임 프로그래머의 만담 커뮤니티, 게임코디 입니다

온종일 코드와 씨름하는 우리들의 외로움을 삭이고자 합니다