SVN, Mantis, Junit & Introduction to CTIP Team 6 201011311 김도희 201111353 박수민 + 김태현 1
Introduction 1. Junit 2. SVN 3. Mantis 4. CTIP 2
Introduction to JUNIT
1. Junit What is Junit? >JAVA 를위한유닛테스팅프레임워크 > 테스트주도개발에서주로사용 > 자동화된테스트도구 외부테스트케이스를작성해서 출력이나로그를통한디버깅을할필요없음 4
1. Junit What is Unit Test? > 전체프로그램을구성하고있는기본단위 (unit) 가정상동작하는지테스트 > 코드변경으로인해문제가발생할경우, 단시간내에파악하고수정가능 > 테스트할메소드만호출하여효율적인테스트가가능하게함 5
1. Junit What is Unit Test? Annotation(@) 6
1. Junit What is Unit Test? Assert Method (AssertXXX) 7
1. Junit What is Unit Test? Junit Test 실행 8
1. Junit What is Unit Test? Junit Test 실행 9
1. Junit What is Unit Test? Success 10
1. Junit What is Unit Test? Fail 11
Introduction to SVN
2. SVN What is SVN? > Short for Subversion > 소프트웨어버전관리시스템 > 소스공유환경을제공 > CVS를대체하기위해개발 13
2. SVN What is version control? > Source Control, Source Code Management(SCM) > 동일한정보에대한여러버전을관리 프로젝트의복구를가능하게함 > 시간적변경사항, 그변경사항을작성한작업자를추적가능 14
2. SVN How to use SVN Visual svn 설치 https://www.visualsvn.com/ 15
2. SVN How to use SVN Visual svn 16
2. SVN How to use SVN 새로운 Repository( 저장소 ) 생성 17
2. SVN How to use SVN 새로운 Repository( 저장소 ) 이름 18
2. SVN How to use SVN User 생성 19
2. SVN How to use SVN User 의 name 과 Password 설정 20
2. SVN How to use SVN Repository( 저장소 ) 권한부여 21
2. SVN How to use SVN Repository( 저장소 ) 권한부여 22
2. SVN How to use SVN Eclipse 에서 SVN 사용하기 23
2. SVN How to use SVN SVN 저장소에 Exploring 24
2. SVN How to use SVN 새로운저장소위치생성 25
2. SVN How to use SVN 다른컴퓨터에서접속할경우 URL https://sumin/svn/svn User 와 Password 는등록되어있는것으로! 26
2. SVN How to use SVN SVN 에프로젝트공유 27
2. SVN How to use SVN SVN 에공유된파일 28
2. SVN How to use SVN SVN Repository Exploring Frame 29
2. SVN How to use SVN SVN Repository Exploring Frame 에서 Java Frame 으로넘기기 30
2. SVN How to use SVN Java Frame 31
2. SVN How to use SVN Eclipse Project- SVN 메뉴 > Synchronize with Repository: 서버내용과싱크를맞춤 > Commit: 소스의수정사항을반영 > Update: 서버의소스를내려받음 > Revert: 현재작업했던내용을취소하고서버소스로모두변경 > Show History: 소스코드업데이트내역을확인. 어떤유저가어느부분을어떻게업데이트했는지상세하게확인 32
2. SVN How to use SVN 변경된사항을 Server 에올릴때 33
2. SVN How to use SVN 변경된사항을서버로부터가져올때 34
Introduction to MANTIS
3. MANTIS What is Mantis? > BTS 중심의이슈추적시스템 > PHP, SQL, HTML, CSS 등으로개발됨 > 이슈가발생할경우이메일로알림 36
3. MANTIS 이슈추적시스템이란? > 이슈목록을기록하고관리하는시스템 요구사항, 버그등을생성하고해결하는일련의과정을기록하여추적성을확보하고정량적분석이가능하게함 > 일반적으로게시판과비슷한형태 이슈형태, 담당자, 프로그램버전, 우선순위등의속성을기록 37
3. MANTIS 이슈추적시스템의목적 > 프로젝트일정관리 프로젝트초반에 WBS(Work Break down Structure) 생성시태스크를수행해나가는일정관리시스템으로활용 > 개발단계의버그관리 테스트케이스번호와연동시켜별도의버그알람시스템필요없음 > 유지보수활동의요구사항관리 유지보수작업을진행할경우고객의요청사항을실시간으로접수하고일원화해관리가능 38
3. MANTIS 기타이슈추적시스템의종류 > Redmine 오픈소스, 개발언어는 Ruby 자체적으로다양한편의기능을제공하며 SCM 연동을지원 > Trac 오픈소스, 개발언어는 Python 기본기능에충실하며 3rd party 플러그인이활발 설치및설정이어렵다. > JIRA 상용, 개발언어는 JAVA work-flow 개념덕분에개발과운영모두다양하게활용이가능 Confluence( 위키 ) 사용시좋음 39
3. MANTIS 설치요구사항 Web Server PHP Database 40
3. MANTIS Setup - 1 APMSETUP 설치 http://www.apmsetup.com/download.php Apache+PHP+Mysql Mantis 다운 https://www.mantisbt.org/download.php 41
3. MANTIS Setup - 2 Mantis 압축풀기 APMSETUP 설치디렉토리 \htdocs Mantis-DB 연동 1. APMSETUP 우클릭 -> 신규계정생성 2. http://localhost/mantisbt/admin/install.php apmsetup(default) 42
3. MANTIS Setup - 3 Mantis 관리자계정설정 http://localhost/mantisbt/login.php administrator(default) root(default) Admin 폴더명변경 Mantis 설치디렉토리 43
3. MANTIS Setup - 4 Mantis 계정설정 My Account-My Account 언어설정 My Account-Preferences 44
3. MANTIS Setup - 5 이메일연동 (Gmail 기준 ) 1. config_defaults_inc.php 수정 $g_smtp_host = 'smtp.gmail.com'; $g_smtp_username = 'Gmail 계정 (xxxx@gmail.com)'; $g_smtp_password = 'Gmail 계정 password'; $g_smtp_connection_mode = 'tls'; ----- tls 또는 ssl $g_smtp_port = 25; --- 25 또는 587 $g_enable_email_notification = ON; 2. php.ini 수정 extension = php_openssl.dll 주석해제 3. Apache 서버재가동 45
3. MANTIS Usage- 1 내페이지 이슈보기 46
3. MANTIS Usage- 2 이슈상세보기 > 이슈의상세정보를보고, 내용을추가하거나댓글을남길수있음 > 담당자 ( 현재이슈가할당된사람 ) 나이슈상태를바꿀수있음 47
3. MANTIS Usage- 3 이슈상세보기 이슈상태 > 새로운이슈 > 정보부족 : 정보가더필요하며처음보고한사람은주목해야함 > 이슈검토 : 이슈에대해조사했으나확인이나할당되지않은상태이며해당개발자는이슈로인정하지않을수있음을유저에게알림 > 확인된이슈 : 개발자가이슈내용을확인하고재현할수있음. 보통정보를갱신하는사람 (updater) 이나다른개발자가설정한다. > 할당된이슈 : 현재개발자에게할당되어처리중임 > 해결된이슈 : 이슈를수정한것으로판단하며이에대한확인을기다리고있음 > 폐쇄된이슈 : 이슈가완전히해결되어폐쇄함. 48
3. MANTIS Usage- 4 이슈해결 해결상태 > 개설 > 수정됨 : 테스트완료됐으며이슈해결됨 > 문제제기 : 이전에해결했지만당시처리결과가만족스럽지않거나정확하게처리되지않아다시발생한상태 > 재현할수없음 : 이슈를재현할수없으며코드를살펴봐도파악할수없는상태임. 추가적인정보가들어오면다시할당하도록함 > 수정할수없음 : 이번버전에서는수정할수없는문제임 > 중복 : 기본의이슈와중복된것으로중복된이슈번호가필요함 ('# 이슈번호 ' 로표시 ) > 이슈아님 > 보류 (suspended): 중요하지않은문제로수정을보류함 > 수정계획없음 49
3. MANTIS Usage- 5 이슈보고하기 50
Introduction to CTIP
4. CTIP What is CTIP? Continuous Test & Integration Platform CI 개념을 Java 기반의개발프로젝트에쉽게적용하기위한플랫폼 소스컴토 ( 테스트및정적분석 ), 빌드, 통합, 배포및레포트기능을제공하는개발지원플랫폼 52
4. CTIP CTIP 의이점 단일소스저장소관리 빌드자동화 자체적으로테스트가능한빌드 빠른빌드수행 운영환경과유사한환경구성 최신결과물에대한쉬운접근 손쉬운빌드상태모니터링 53
4. CTIP What is CI? 개발자는소스저장소로부터최신소스를내려받습니다 (check out) 개발자는코드를작성한후자신의개발기에정상적으로동작하는지충분히검사합니다. 검증이끝난후개발자는작업내용을소스저장소에올립니다.(check in) 개발자 ( 또는통합관리자또는자동화된시스템 ) 는통합서버에서방금작업한코드가반영된전체코드내용에대한빌드를수행합니다. 만약빌드가실패할경우, 실패원인을분석하고문제를해결하여빌드가성공될수있도록합니다 54
4. CTIP CI 의이점 위험을줄일수있다. 수동으로수행해야하는반복작업을줄일수있다. 언제어느장소에서도배포가능한소프트웨어를만들수있다. 프로젝트에대한더나은가시성을제공한다. 개발팀에게소프트웨어제품에대한자신감을불어넣는다. 55