통합 빌드 및 시스템 테스트 자동화 초간단 구축기
Agile Experience / 2010. 2. 3. 10:07
2010/01/06 - [Programming Practice] - 낡은 코드(legacy code)를 어떻게 테스트 하시나요?
2009/10/31 - [Agile Experience] - 다시 시작하는 테스트주도개발(Test Driven Development)
2009/10/31 - [Agile Experience] - 다시 시작하는 테스트주도개발(Test Driven Development)
얼마전까지 낡은 시스템을 어떻게 테스트 할지 고민하고 실행에 옮겼었습니다. 그 결과 팀내 시스템 테스트 케이스 작성을 위한 프레임워크가 생겨났고, 팀원들은 그것을 사용하여 시스템 테스트 케이스를 만들기 시작했습니다. 뿌듯!
저희는 그 다음 작업으로 통합 빌드 및 시스템 테스트 자동화를 구축하는 계획을 세웠습니다. 통합 빌드는 이미 사용중에 있었지만 좀 더 이쁘게 리포팅하도록 다듬기로 하였고, 그 결과를 바탕으로 시스템 테스트를 자동으로 돌릴 수 있도록 하였습니다.
통합 빌드 및 시스템 테스트 자동화 전체 구성
저희는 개발 서버, 테스트 서버, CI 서버(Continuous Integration)를 구성하였습니다.
그리고 다음과 같은 순서로 간단하게 통합 빌드 및 테스트 자동화를 수행하도록 스크립트를 작성하였습니다.
- 시스템 테스트 서버의 시스템들을 모두 다운 시킨다.
- CI 서버에 있는 스크립트를 개발 서버로 보낸다.
- 개발서버에서 전체 통합 빌드를 수행하고 그 결과를 팀원들의 이메일로 이쁘게 리포팅 한다.
- 빌드완료된 바이너리를 시스템 테스트 서버로 인스톨 한다.
- 시스템 테스트 서버의 시스템들을 모두 동작 시킨다.
- 개발서버에서 시스템 테스트에 사용될 mocker를 빌드한다.
- mocker를 CI 서버로 다운로드 한다.
- mocker를 이용하여 시스템 테스트를 수행한다.
- 테스트 결과를 이메일로 리포팅 한다.
모든 스크립트는 파이썬으로 작성되었으며, 파일 전송은 ncftp, 이메일 전송은 ssmtp, mutt, 주기적 실행은 cron을 사용하였습니다.
- 이메일 전송 (ssmtp, mutt) : http://www.mymap.net/blog/10
- 주기적 실행 (cron) : http://www.fduser.org/blog/tag/cron
다음은 저희가 만든 이메일 리포팅의 예제입니다.
MPP2.0 Daily Build Report (2010/02/03 09:43:44)
[NO] /....../MPP2.0/src/lib/ASMTEST compiling...
[OK] /....../MPP2.0/src/lib/SF compiling...
[OK] /....../MPP2.0/MPbase/src/lib/MpGen compiling...
[OK] /....../MPP2.0/MPbase/src/lib/MpSk compiling...
[OK] /....../MPP2.0/MPbase/src/lib/MPkt compiling...
[OK] /....../MPP2.0/MPbase/src/lib/Pfe compiling...
[OK] /....../MPP2.0/MPbase/src/lib/Hrm compiling...
[NO] /....../MPP2.0/MPbase/src/lib/pfem compiling...
[OK] /....../MPP2.0/MPbase/src/lib/MpUtil compiling...
[OK] /....../MPP2.0/MPbase/src/lib/MpObj compiling...
[OK] /....../MPP2.0/MPbase/src/lib/MpCfg compiling...
Hudson이나 CruiseControl을 사용하여 형상 관리 시스템 및 위키 등과 연동해보는 것이 다음 과제 입니다.^^
노하우가 있으시다면 같이 공유해주시면 감사하겠습니다.
'Agile Experience' 카테고리의 다른 글
스크럼 도입보다 중요한 것은 틀을 깨는 것이다. (4) | 2010.02.12 |
---|---|
팀 자리를 이동하고 스크럼을 위한 War Board도 이동했습니다! (9) | 2010.01.21 |
회고 : 스크럼 돌아보기 (4) | 2009.12.12 |