KGC에서 발표한 "생산적인 개발을 위한 지속적인 테스트" 강연자료 입니다.

[개발]
생산적인 개발을 위한 지속적인 테스트
View more documents from birdkr.


KGC에서 발표한 강연 자료입니다.
강연 준비를 하면서 CD에 있는 것이랑 좀 많이 달라졌습니다.
강연 들으러 와주신 분들 감사하구요.
테스트를 진행하는데 조금이나마 도움이 되셨길 바랍니다.
2009/10/10 23:57 2009/10/10 23:57

이 글의 트랙백 주소 :: http://mypage.sarang.net/tt/trackback/300

::: 사람과 사람의 교감! 人터넷의 첫 시작! 댓글을 달아주세요! :::

  1. 갱주니 [2009/10/22 08:10]  [댓글주소]  [수정/삭제]  [댓글쓰기]

    좋은 강연 정말 잘 들었습니다.
    특히 crusiecontrol을 이용하는 방법과 자동 덤프 프로그램등에서 감동받았습니다.^^

    요즈음 일교차가 큰데 감기 조시하세요~

  2. 고영혁 [2009/11/07 14:37]  [댓글주소]  [수정/삭제]  [댓글쓰기]

    좋은 자료 잘 보고 갑니다. 트위터에서도 종종 뵙고 있습니다. 앞으로도 좋은 말씀 많이 나누고 싶어요.
    그리고 우측 네비 하단의 각 서비스별 링크 플래시가 아주 인상적이네요. ^^

    • 버드 [2009/12/01 20:03]  [댓글주소]  [수정/삭제]

      블로그에 방문해 주셔서 감사합니다. :)
      트위터에서 많은 의견 나눴으면 좋겠네요.

CruiseControl.NET 관련 링크

[개발]
CruiseControl.NET과 관련된 유용한 링크 정리.

설치법
도구
2008/06/17 22:08 2008/06/17 22:08

이 글의 트랙백 주소 :: http://mypage.sarang.net/tt/trackback/249

  1. Subject: 크루즈 컨트롤

    Tracked from 다름 ::= Diffrence [2008/08/17 14:09]
     삭제

    정리 진행중

::: 사람과 사람의 교감! 人터넷의 첫 시작! 댓글을 달아주세요! :::

추천하는 통합 개발 시스템

[개발]
통합 개발 시스템을 구축할 경우 birdkr는 다음의 툴들을 추천한다. (모두 공짜!)

자산 관리

  • Subversion(SVN) : 소스 등의 파일의 버전을 관리해준다. CVS보다 빠르다. 공동 작업뿐만 아니라 개인 작업에도 SVN을 사용하자. 디자이너, 기획자에게 사용법을 알려주어 리소스 등의 바이너리 파일도 함께 관리하면 더 좋다. 소스, 기획서, 맥스 파일, 이미지 파일, 스크립트, 리소스, XML 쪼가리 등 프로젝트에서 사용하는 모든 파일을 체크인하도록 하자.
  • TortoiseSVN : SVN의 클라이언트 툴. 한글 언어팩도 함께 설치하도록 한다.
  • WinMerge : TortoiseSVN의 diff는 불편하다. 대신 WinMerge를 사용하자.
  • SVN Notifier : 다른 사람이 커밋을 하면 자동으로 감지하여 트레이 아이콘으로 알려준다.

한방 빌드(빌드 스크립트)

  • 배치 파일 : 윈도우즈 배치 파일을 사용하여 쉽게 만들도록 한다. 제어판의 '예약된 작업'을 사용하여 빌드 서버에서 정기적으로 빌드하도록 한다. 한방 빌드는 누구나 어느 컴퓨터에서건 아무런 수작업 없이 진행되어야 한다. Ant, makefile, MSBuild, python 스크립트도 좋은 대안이 될 수 있다.
  • 빌드 절차
    1. svn에서 최신 버전의 코드, 리소스를 내려받는다.
    2. 코드를 컴파일한다.
    3. 인스톨러를 빌드한다.(NSIS 추천)
    4. 서비스중이라면 패치 파일을 빌드한다.
    5. 새로 빌드된 실행 파일 등을 svn에 커밋한다.

지속적인 통합

  • CruiseControl.Net : 누군가 커밋하여 코드가 변경이 되면 자동적으로 감지하여 테스트 수트를 돌리고, 프로젝트를 다시 빌드한다. 만약 테스트에 실패하거나 빌드가 깨지면 라바 램프나 트레이 아이콘, 이메일 등으로 알려준다.

이슈 추적

  • Trac : 작업 관리나 고객의 피드백, 버그 관리 등에 사용하면 좋다. Mantis도 많이들 사용하지만 위키 지원이나 간결함에서 개인적으로는 Trac을 더 선호한다.

테스트 장비

  • UnitTest++ : CppUnit 등의 다른 유닛 테스트에 비해 가볍고 사용하기 쉽다. GUI 지원이 없어 녹색바를 볼 수 없다는 것만 빼고 있을 건 다 있다.

시나리오

아침에 출근하면 빌드 서버가 새벽에 자동적으로 테스트하고 빌드한 결과를 확인한다. 만약 실패한 유닛 테스트가 있으면 문제점을 간단히 수정하고 커밋한다. Trac을 열어 오늘 할 일을 체크하고 바로 작업을 시작한다. 작업이 다 끝나 SVN에 코드를 커밋하면 빌드 서버의 CruiseControl.Net이 이것을 자동적으로 감지하여 테스트와 새 빌드를 내주며 그 결과를 자동으로 리포트한다.

정리

프로그래밍하는 시간외에 불필요하게 낭비되는 시간은 좋은 도구들을 사용하면 많은 부분 줄일 수 있다. 빌드, 테스트는 귀찮아지면 사람들이 점점 멀리하게 되므로 꼭 자동화하도록 하자.

2007/09/30 03:53 2007/09/30 03:53

이 글의 트랙백 주소 :: http://mypage.sarang.net/tt/trackback/200

::: 사람과 사람의 교감! 人터넷의 첫 시작! 댓글을 달아주세요! :::