목차 I. CI 정의 II. CI 필요성 III. CI 기능및특징 IV. CI 제품 V. Hudson VI. 적용방안 VII. 결론 - 1 -

Similar documents
PowerPoint 프레젠테이션

슬라이드 1

Introduction to CTIP

소프트웨어 검증 및 설계

Intro to Servlet, EJB, JSP, WS

문서의 제목 나눔고딕B, 54pt

슬라이드 1

슬라이드 1

2. 기능요약 Parallel 빌드지원등빌드자동화기능을지원하며다양한도구 ( 형상관리도구, Issue Tracker, Test 도구, IDE) 와의연동을지원함. 주요기능 Parallel 빌드지원 ( 다수프로젝트동시빌드 ) 분산빌드웹기반관리 알림형상관리도구지원

[96_RE11]LMOs(......).HWP

12 성능모니터링 allmon Apache License v 성능모니터링 nmon GPL v3 분산되어있는시스템에대한자원상태체크, 사용현황, 성능등을수집

PowerPoint Presentation

Software Verification Team 오준 임국현 주영진 김슬기

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일

품질검증분야공개 SW 솔루션목록 ( ) 순번분류솔루션명라이선스기술지원홈페이지제품개요 1 BTS Bugzilla MPL community 웹기반의 bug tracking 및테스트도구 2 BTS Fossil 2-c

서현수

03.Agile.key

품질검증분야 Stack 통합 Test 결과보고서 [ The Bug Genie ]

슬라이드 1

PowerPoint 프레젠테이션

파워포인트

Microsoft PowerPoint - chap01-C언어개요.pptx

슬라이드 1

문서의 제목 나눔고딕B, 54pt

*통신1802_01-도비라및목차1~11

Angry MOMO Presentation

ICT03_UX Guide DIP 1605

スライド タイトルなし

[Brochure] KOR_TunA

PowerPoint 프레젠테이션

Microsoft PowerPoint - Smart CRM v4.0_TM 소개_ pptx

Windows 8에서 BioStar 1 설치하기

Apache Ivy

1. Eclipse 2. JUnit 3. STATIC ANALYSIS 4. PMD 5. Eclipse TPTP 6. FIND BUGS INDEX 2

Microsoft PowerPoint - 2번째발표(최종).pptx

Microsoft PowerPoint - 3조-최종발표.pptx

초보자를 위한 C++

Interstage5 SOAP서비스 설정 가이드

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

HTML5* Web Development to the next level HTML5 ~= HTML + CSS + JS API

문서의 제목 나눔명조R, 40pt

israel-내지-1-4

슬라이드 1

Introduction to Junit, Eclipse, Build Environment

Microsoft PowerPoint - jfeature장범석서재원박동현.pptm

슬라이드 1

표준프레임워크 Nexus 및 CI 환경구축가이드 Version 3.8 Page 1

경제통상 내지.PS

°æÁ¦Åë»ó³»Áö.PDF

우루과이 내지-1

PowerPoint 프레젠테이션

PowerPoint Presentation

세계 비지니스 정보

!K_InDesginCS_NFH


Analyst Briefing

4S 1차년도 평가 발표자료

슬라이드 1

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

침입방지솔루션도입검토보고서

PowerPoint 프레젠테이션

미친놈과 정상인

PowerPoint 프레젠테이션

웹사이트 운영, 이보다 쉬울 수 없다! Microsoft Azure를 이용한 웹사이트 구축

슬라이드 1


Visual Studio online Limited preview 간략하게살펴보기


PowerPoint

2. 기능요약 자바프로그래밍언어에서사용하는자동화된소프트웨어빌드도구 주요기능 IDE 통합및도구지원 원격코드 Build 자동화 지원여부 대부분의도구지원 (Eclipse, NetBeans 등 ) 지원 (FTP, SCP, SFTP, SVN) 자동화 Build 중 Unit Te


CONTENTS.HWP

INDUS-8.HWP

이 드리는 혜택 완벽 을 위한 발환경 : Team Foundation Server 200 & CAL 제공 최저의 비용으로 구현을 위해 Visual Studio Team Foundation Server 200 서버 라이센스와 CAL이 에 포함되어 있습니다 을 모든 팀원이

2009방송통신산업동향.hwp

PowerPoint 프레젠테이션

J2EE & Web Services iSeminar

문서의 제목 나눔고딕B, 54pt

스마트월드캠퍼스 교육교제

PowerPoint 프레젠테이션

Portal_9iAS.ppt [읽기 전용]

Microsoft PowerPoint - aj-lecture1.ppt [호환 모드]

목차 Ⅰ. 개요 Ⅱ. 추진배경 Ⅲ. 개발환경구축 ( 도구연계 ) Ⅳ. 도구연계성과 page 2

PowerPoint 프레젠테이션

컴퓨터과학과 교육목표 컴퓨터과학과의 컴퓨터과학 프로그램은 해당분야 에서 학문적 기술을 창의적으로 연구하고 산업적 기술을 주도적으로 개발하는 우수한 인력을 양성 함과 동시에 직업적 도덕적 책임의식을 갖는 IT인 육성을 교육목표로 한다. 1. 전공 기본 지식을 체계적으로

PowerPoint Presentation

<4D F736F F F696E74202D20B5A5C0CCC5CDBAA3C0CCBDBA5F3130C1D6C2F75F32C2F7BDC32E >

대표이사등의 확인ㆍ서명 확 인 서 우리는 당사의 대표이사 및 신고업무담당이사로서 이 사업보고서의 기재내용에 대해 상당한 주의를 다하여 직접 확인ㆍ검토한 결과, 중요한 기재사항의 기재 또는 표시의 누락이나 허위의 기재 또는 표시가 없고, 이 사 업보고서에 표시된 기재 또

JFeature & ANT Tools Summary

Cloud Friendly System Architecture

Slide 1

Microsoft PowerPoint - 11주차_Android_GoogleMap.ppt [호환 모드]


Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx


<B1D4B0DDBCAD202D20C4DAB5E520B1E2B9DD2E687770>

목차 개요 3 섹션 1: 해결 과제 4 APT(지능형 지속 위협): 이전과 다른 위협 섹션 2: 기회 7 심층 방어 섹션 3: 이점 14 위험 감소 섹션 4: 결론 14 섹션 5: 참조 자료 15 섹션 6: 저자 소개 16 2

Windows 10 General Announcement v1.0-KO

세계 비지니스 정보

Transcription:

프로젝트빌드와테스트의자동화를위한 CI 소개 이진복 (Jinbock Lee) 2009 년 11 월 06 일

목차 I. CI 정의 II. CI 필요성 III. CI 기능및특징 IV. CI 제품 V. Hudson VI. 적용방안 VII. 결론 - 1 -

I. CI 정의 q CI (Continuous Integration) 시스템을구축하고배포하는과정의통합비용 ( 시간 ) 을줄이기위한소프트웨어공학의한부분 여러개발자가각각개발한소스코드를주기적으로수집하여한꺼번에빌드및테스트 - 빌드, 테스트, 소스 inspection, coverage 분석, 성능분석등 - 초기개발과정부터빈번한통합 - 통합시에발생하는오류및문제점을주기적으로확인가능 - Agile 개발프로세스 프로젝트수행과정에서발생하는수정사항을빠르게발견하여비용과시간을감소 q 역사 1999 년, Martin Fowler 와 Kent Beck 의논문으로개념소개 - Extreme Programming (XP) 커뮤니티 현재, 약 25 개의 CI 제품 - 2 -

II. CI 필요성 q Integration hell 다양한환경의개발자가개발한소스를중앙에서통합하여빌드할시에예상치못한문제점발생가능 - 라이브러리의존성, 중복파일 ( 클래스 ), 버전충돌및개인적인개발환경등 큰규모의통합시에발생하는문제점을해결하기위해많은시간과비용이필요 q 통합비용감소 개발자들의소스를주기적으로수집하고한곳에서통합하여문제점을조기에파악 발생한문제점을빈번하게파악하고해결 다음통합과정을위한기반 ( 완성된시스템 ) 점차완성되어지는시스템 - 3 -

III. CI 기능및특징 (1) q 저장소관리 프로젝트의모든소스는공통의저장소에존재 소스의버전관리 (revision control) 별도의형상관리제품사용 - CVS, Subversion, Perforce, Clearcase 등 q 자동화된빌드 수집된소스를자동으로빌드 - 소스변경에따른빌드 - 특정시간을주기로빌드 빌드툴사용 - Make, Ant, Maven, MSBuild 등 - 4 -

III. CI 기능및특징 (2) q 테스트 Test-driven 개발 시스템통합의한과정으로테스트수행 테스트과정이성공해야만통합을위한다음단계로진행 q 자동화된배포 빌드및테스트과정을마친후, 자동으로운영서버 ( 테스트 ) 에배포 q 모니터링 시스템통합과정의모든상황을파악 - 오류나문제점을조기에파악할수있는환경제공 - 5 -

III. CI 기능및특징 (3) q CI 구조 - 6 -

III. CI 기능및특징 (4) q CI 시나리오 1 개발자가본인컴퓨터에서소스작성하고빌드및테스트수행 2 개발자가형상관리저장소에소스를업로드 3 CI 서버가형상관리저장소에서변경내역을감지하고다운로드 4 CI 서버는다운로드한소스를스크립트에의해서빌드및테스트과정수행 5 빌드및테스트결과를 CI 서버에저정하거나담당자에게알림 6 CI 서버는형상관리저장소의변경사항을계속해서감지 - 7 -

III. CI 기능및특징 (5) 장점 별도의디버깅과정없이통합시발생하는문제점파악가능 소스의결함으로인한문제점을조기에발견 소스의변경으로인하여다른모듈과의충돌을조기에발견 변경된모든소스에대한단위테스트결과를빠르게확인가능 올바르지못한프로젝트의진행방향을조기에발견 최종릴리즈전에가능한많은문제점을발견할수있음 개발중인소프트웨어를언제라도배포가능 CI 장단점 단점 CI 를위한별도의서버필요 효과적인 CI 를위한표준절차가필요하고개발자는이규칙을따라야함 - 8 -

IV. CI 제품 (1) 제품내용 Hudson 플랫폼유연성 Java Builder SCM 알림기능 IDE 연동버그관리연동 Test tool 연동라이선스및가격 Servlet Container (war 파일 ), Stand-alone Ant, Maven 2, Kundo 기본제공 : CVS, Perforce, Subversion 플러그인제공 : AccuRev, Bazaar, BitKeeper, Clearcase, CMVC, Git, Mercurial, PVCS SourceSafe, StarTeam, TFS Android, E-mail, Google Calendar, IRC, XMPP, RSS, Twitter Eclipse, IntelliJ IDEA, NetBeans Bugzilla, Google Code, JIRA, Mantis, Trac Junit, Cobertura,Clover 무료오픈소스 제품내용 LuntBuild 플랫폼유연성 Servlet Container (war 파일 ) Java Builder Ant, Maven 1, Maven 2 SCM 알림기능 IDE 연동 버그관리연동 Test tool 연동 라이선스및가격 Accurev, CVS, Visual Sourcesafe, Subversion, StarTeam, Perforce, Base Clearcase Clearcase, UCM, File system e-mail, jabber, msn messanger Eclipse(Luntclipse) none none 무료오픈소스 - 9 -

IV. CI 제품 (2) 제품 내 용 플랫폼유연성 Servlet Container (war 파일 ) Java Builder Ant, Maven1, Maven 2 SCM CVS, Subversion 알림기능 e-mail IDE 연동 None 버그관리연동 None Test tool 연동 None 라이선스및가격 무료오픈소스 Apache Gump 제품내용 플랫폼유연성 Servlet Container (war 파일 ) Apache Continuum Java Builder Ant, Maven1, Maven 2 SCM 알림기능 IDE 연동 버그관리연동 Test tool 연동 라이선스및가격 CVS, Subversion, Clearcase, Perforce, Starteam, Visual Source Safe, CM Synergy Bazaar, Mercurial Mail, Jabber and Google Talk, MSN, IRC none none none 무료오픈소스 - 10 -

IV. CI 제품 (3) 제품 내 용 플랫폼유연성 Windows, linux/unix ( 단, DB 필요 ) Java Builder Ant, Maven1, Maven 2 AnthillPro SCM 알림기능 IDE 연동 버그관리연동 Test tool 연동 라이선스및가격 AccuRev, ClearCase, CA Harvest, CVS, Dimensions, Git, MKS Source Integrity Mercurial,Perforce,PVCS,StarTeam,Subversion,Synergy,Team Foundation Server Vault,ViewVC Email, XMPP/Google, Talk/Jabber IM, MSN IM, RSS, Yahoo IM, System Tray Monitor Eclipse, Visual Studio Bugzilla, ClearQuest, HP Quality Center, JIRA, PVCS Tracker, Rally Team Foundation Server, TeamTrack JUnit, MSTest, NUnit, Selenium, Silk Central Test Manager, TestNG,, Clover Cobertura, Emma for AnthillPro is based on the number of developers working on projects managed by AnthillPro. 제품 내 용 플랫폼유연성 Windows, linux, Mac OS Java Builder Ant, Maven1, Maven 2 SCM 알림기능 IDE 연동 Eclipse, IntelliJ IDEA 버그관리연동 JIRA ( 같은회사제품 ) Test tool 연동 Clover ( 같은회사제품 ) 라이선스및가격 $2,200 ~ $8,000 Bamboo CVS, Subversion, Perforce, ClearCase, Mercurial, Dimension, Git XMPP, Google Talk, E-mail, RSS, Remote API - 11 -

IV. CI 제품 (4) 제품내용 Cruise 플랫폼유연성 Java Builder SCM 알림기능 IDE 연동버그관리연동 Test tool 연동 Windows, linux, Mac OS Ant Subversion, Perforce, Mercurial, Git XMPP, Google Talk, E-mail, RSS, Remote API None ( 자체 client) None None 라이선스및가격 $2,999 제품내용 플랫폼유연성 Windows, Mac OS X, Linux, Solaris, FreeBSD, HP-UX, AIX QuickBuild Java Builder Ant, Maven 1, Maven 2 SCM AccuRev, Clearcase, CVS, Perforce, SourceSafe, StarTeam, Subversion 알림기능 E-mail, XMPP, RSS, Google Talk, Remote API IDE 연동 Eclipse, IntelliJ IDEA, Visual Studio 버그관리연동 JIRA, FindBugs Test tool 연동 CheckStyle,PMD,EMMA,Cobertura 라이선스및가격 $2,999-12 -

V. Hudson - 특징 q 자바로개발된 CI 시스템 q 쉬운설치와실행 Servlet container 와 stand-alone 방식으로실행 q 웹기반의운영환경 직관적인 UI q 다양한기능을편리하게확장 약 140 여개의플러그인제공 q 활발한커뮤니티활동 q 오픈소스 q MIT 라이선스 사용, 수정, 배포가능 - 13 -

V. Hudson - 기능 (1) q 작업 (Job) 관리 작업 : 통합을위해일련의과정을정의한묶음 현재작업의상태를확인 그룹화하여관리 - 14 -

V. Hudson - 기능 (2) q 스케줄링 작업을수행할주기를설정 - crond 설정형식사용 작업간의의존성 ( 순서 ) 설정 q History 관리 통합과정의결과를관리 q SCM (Source Control Management) 소스를수집하기위하여형상관리저장소와연동 CVS, Subversion, Perforce 기본제공 Clearcase, SourceSafe, Bazaar 등은플러그인형태로제공 한작업에여러형상관리저장소등록가능 - 15 -

V. Hudson - 기능 (3) q 빌드툴 소스를빌드하기위한다양한방법제공 Ant, Maven 1, Maven 2 및커맨드방식빌드제공 - 각빌드툴에적합한옵션설정가능 한작업에여러빌드툴적용가능 통합과정에서출력되는모든메시지확인 - 16 -

V. Hudson - 기능 (4) q 단위테스트 JUint 으로수행한단위테스트결과를 Hudson 관리화면에표시 - 17 -

V. Hudson - 기능 (5) q Inspection 테스트 PMD 를이용한 inspection 테스트결과를 Hudson 관리화면에표시 - 18 -

V. Hudson - 기능 (6) q Coverage 테스트 Cobertura 를이용한 coverage 결과를 Hudson 관리화면에표시 - 19 -

V. Hudson - 기능 (7) q 성능테스트 Japex 를이용한성능테스트결과를 Hudson 관리화면에표시 - 20 -

V. Hudson - 기능 (8) q 빌드후작업 Javadoc 생성 zip이나 jar 파일로압축 다른작업통합수행 알림기능 - E-mail 보내기 - MSN과 IRC 등으로메시지보내기 - Twitter에글작성 - Google Calendar q 기타기능 사용자및권한관리 RSS 제공 버그관리툴과연동 - Bugzilla, JIRA, Trac 등 CI Game - 21 -

V. Hudson - 데모 - 22 -

VI. 적용방안 (1) q Hudson 의프로젝트적용방안 효과적인환경구성 - 상호호환성고려 형상관리, 빌드툴, 테스트툴, 이슈관리 - 서버환경고려 서버규모, WAS 및웹서버, 분산서버 - 통합스케줄링 소스수집및통합주기설정 - 통합결과조회방법고려 E-mail, RSS, Google Calendar, 메신저등 프로젝트에서 Hudson 역할정의 - 자동화된빌드 - 자동화된테스트 단위테스트, inspection, coverage, 성능테스트 - 자동화된배포 - 23 -

VI. 적용방안 (2) q Hudson 의프로젝트적용방안 ( 계속 ) ACL (Access Control List) 정의 - 모든개발자 - PM, PL, QA 등 q CI anti-pattern ( 주의점 ) 주기가긴통합은전체적인시스템통합을지연시킨다. 주기가짧은통합은시스템의성능을떨어뜨린다. 잘못된코드를형상관리저장소에업로드하면절대안된다. 오류가발생한빌드는즉시고쳐야한다. 느린 CI 서버는피드백이지연된다. 통합결과를관리자에게확실하게전달하여야한다. 자동으로실제운영서버로배포되는것은심각하게고려해야한다. q 어떤프로젝트부터 Hudson 의도입을시도해야하는가? - 24 -

VII. 결론 배포가능한소프트웨어부재 CI 를이용해통합빌드를자동으로수행 Ant, Maven 등 Cost 늦은결함발견 CI 를이용해자동화된테스트수행 JUnit 프로젝트가시성부재 CI 를이용해개발현황정보전달을자동으로수행 통합보고서및알림기능 저품질의소프트웨어 Convenience CI 를이용해자동화된검사를수행 코딩표준준수, 중복코드등 - 25 -

참고 q Oracle Application Development Framework: Oracle Fusion Applications Teams' Best Practices - 26 -

Q/A - 27 -