블로그 이미지
소프트웨어 개발 경험을 공유하고 싶은 재밌게 사는 소프트웨어 엔지니어입니다^^

카테고리

Chungha Story (41)
Agile Experience (22)
My Family (0)
Life Style (7)
Programming (8)
Android (2)
Total
Today
Yesterday

달력

« » 2024.12
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31

최근에 올라온 글

최근에 달린 댓글

2010/01/06 - [Programming Practice] - 낡은 코드(legacy code)를 어떻게 테스트 하시나요?
2009/10/31 - [Agile Experience] - 다시 시작하는 테스트주도개발(Test Driven Development)

얼마전까지 낡은 시스템을 어떻게 테스트 할지 고민하고 실행에 옮겼었습니다. 그 결과 팀내 시스템 테스트 케이스 작성을 위한 프레임워크가 생겨났고, 팀원들은 그것을 사용하여 시스템 테스트 케이스를 만들기 시작했습니다. 뿌듯!
저희는 그 다음 작업으로 통합 빌드 및 시스템 테스트 자동화를 구축하는 계획을 세웠습니다. 통합 빌드는 이미 사용중에 있었지만 좀 더 이쁘게 리포팅하도록 다듬기로 하였고, 그 결과를 바탕으로 시스템 테스트를 자동으로 돌릴 수 있도록 하였습니다.

통합 빌드 및 시스템 테스트 자동화 전체 구성

저희는 개발 서버, 테스트 서버, CI 서버(Continuous Integration)를 구성하였습니다. 
그리고 다음과 같은 순서로 간단하게 통합 빌드 및 테스트 자동화를 수행하도록 스크립트를 작성하였습니다.
  1. 시스템 테스트 서버의 시스템들을 모두 다운 시킨다.
  2. CI 서버에 있는 스크립트를 개발 서버로 보낸다.
  3. 개발서버에서 전체 통합 빌드를 수행하고 그 결과를 팀원들의 이메일로 이쁘게 리포팅 한다.
  4. 빌드완료된 바이너리를 시스템 테스트 서버로 인스톨 한다.
  5. 시스템 테스트 서버의 시스템들을 모두 동작 시킨다.
  6. 개발서버에서 시스템 테스트에 사용될 mocker를 빌드한다.
  7. mocker를 CI 서버로 다운로드 한다.
  8. mocker를 이용하여 시스템 테스트를 수행한다.
  9. 테스트 결과를 이메일로 리포팅 한다.

모든 스크립트는 파이썬으로 작성되었으며, 파일 전송은 ncftp, 이메일 전송은 ssmtp, mutt, 주기적 실행은 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을 사용하여 형상 관리 시스템 및 위키 등과 연동해보는 것이 다음 과제 입니다.^^
노하우가 있으시다면 같이 공유해주시면 감사하겠습니다.
Posted by 윤청하
, |