3. One Click?
테스트 자동화의 목표
위험 감소
지루하고 반복적인 프로세스 줄이기
프로젝트 가시성 높이기
자신감 얻기
4. CruiseControl.NET + MSBuild
CruiseControl.NET
지속적인 통합을 도와주는 빌드 자동화 툴
오픈 소스 프로젝트
Web과 CCTray 트레이 아이콘으로 피드백
MSBuild
MS에서 제공하는 빌드 플랫폼
XML로 복잡한 빌드 프로세스를 쉽게 조작할 수 있다.
5. 단위 테스트
UnitTest++ 라이브러리 사용
대상 : 게임 로직
주기
개발과 관련된 테스트 케이스 : 컴파일할 때마다 항상
전체 테스트 케이스 : 저장소에 커밋할 때마다
6. DB 테스트
xDBUnit은 C++에 맞지 않았다.
UnitTest++와 SQL스크립트를 사용함.
테스트 단계
테스트 데이터베이스에 테스트 데이터 집합을 생성
테스트 케이스 실행
데이터 변경 검증
주기 : 하루에 한 번
7. Resource Validator
기획자나 아티스트가 입력한 컨텐츠 설정값에
논리적으로 잘못된 값이 입력되었는지 검증
게임을 실행할 때마다 잘못 입력된 값이 있으면
로그인 화면에서 에러 리포트
모듈화시켜 맵툴 등에서도 체크할 수 있도록 한다.
주기 : 게임을 실행할 때마다
8. 통합 테스트
대상 : 단위 테스트 + DB + 컨텐츠(아이템 정보,
퀘스트 정보, 스킬 정보 등)
주기 : 소스를 저장소에 커밋할 때마다
9. 네트워크 스트레스 테스트
클라이언트 패킷 핸들링을 XML로 쉽게 조작
테스트 케이스
로그인 반복, 캐릭터 생성,삭제 반복, 이동 반복 등
스케줄링
Crash가 발생하거나 성능이 일정 수치 이하이면
테스트 실패로 간주
주기 : 일주일에 한 번
10. AI 전투 테스트
랜덤으로 특정 맵에 x마리의 몬스터를 스폰시켜
서로 싸우도록 한다.
Crash가 발생하거나 성능이 일정 수치 이하이면
테스트 실패로 간주
주기 : 하루에 한 번
19. 참고
서적
지속적인 통합(위키북스)
리팩토링 데이터베이스(위키북스)
사이트
http://confluence.public.thoughtworks.org/display/CCN
ET
http://msdn.microsoft.com/ko-kr/library/0k6kkbsd.aspx
http://kaistizen.net/EE/