소프트웨어검증 Mantis, Git, CTIP 200911391 박준모 200911429 한종철 201111364 신민용 T3 Software Verification 1
목차 1. Overview 2. Mantis 3. Git 4. CTIP 2
1 Overview 큰그림을살펴보자 Hudson AWS Mantis 3
Mantis 란? MantisBT는인기있는, 웹기반의오픈소스 bug tracking system PHP 기반으로구축됨 서버측에서 Linux, Windows, Mac OS X 지원 Chrome, Firefox, Safari, Opera, IE 7+ 와호환 GNU General Public License(GPL) 을따름 4
출처 : htp:/blog.naver.com/mydaylee/140020063020 Bug Tracking System 결함이발견된때부터해결된때까지의과정을기록하고추적 결함추적 (defect tracking) 이라고도부름 개별적수준, 즉각각의결함을추적하며, 동시에공개된결함의개수, 해결된비율, 결함을하나해결하는데소요되는평균시간과같은통계적수준에서도이루어짐 5
Mantis 란? 출처 : http://paleview.tistory.com/403 Bug Tracking System ( 계속 ) 필요성 Web 을통해접근이용이하고쉽게사용할수있음 모든버그는 DB에보관되며추적가능 버그에수많은정보와파일첨부, 해당버그의담당자가누구이며현재진행업무파악가능 버그가줄어드는것을통계로확인 버그의통계자료를문서작성에활용 외국에서도원격으로접속해서버그를보고가능프로젝트관리자가각개발자별업무를조율해줄수있는용도로활용 6
Mantis 란? 출처 : http://en.wikipedia.org/wiki/issue_tracking_system 출처 : http://blog.gaerae.com/2014/05/issue-tracking-system-bug-tracking-system.html#.vrgsb00csul Issue Tracking System 필요에따라이슈들의목록을관리하고유지하는컴퓨터소프트웨어패키지 일반적으로, 보고된고객의이슈들이나조직의다른직원들이보고한이슈들을생성하거나업데이트하거나해결하기위해사용 Bug Tracking System 과유사 (Issue Tracking System 으로사용될수있는 bug tracker 들도있음 ) Mantis 는 Bug Tracking 중심이어서이슈관리가어렵고다른툴과의연동이어려움 Redmine 추천 7
Mantis 란? Issue Tracking System ( 계속 ) 운영다이어그램 출처 : http://blog.naver.com/mydaylee/140020063020 이슈보고서 1 이슈보고 2 2 2 이슈보고상황통보해결통보정보부족통보 Mantis 이슈할당 4 상황통보 관리자 3 3 3 5 1 확인 ( 확인 ) 개발자에게 1 해결이슈할당 1 확인 ( 정보부족 ) 이슈폐쇄이슈내용추가혹은상태변경 개발자 8
Mantis 설치 출처 : http://blog.naver.com/hchmoon/10026660276 출처 : http://cafe.naver.com/whatisc/810 Mantis 설치전에 PHP 설치 (Mantis 가 PHP 로작성되었기때문 ) MySQL(DB) Appach 나인터넷정보서비스 (IIS) 와같은웹서버필요 (Mantis 는웹기반시스템이기때문 ) 9
Mantis 설치 Mantis 설치전에 ( 계속 ) APM Apache, PHP, MySQL 을자동설치및설정할수있는패키지 APMSETUP 다운로드 : http://www.apmsetup.com/ 10
Mantis 설치 Mantis 설치전에 ( 계속 ) 11
Mantis 설치 Mantis 설치전에 ( 계속 ) APMSETUP 설치오류 & 해결방법 80포트가동작중입니다. 다른웹서버 (IIS) 가동작중인지체크하여주시기바랍니다. 의오류메시지 cmd에서 netstat ano 명령어를통해현재 80포트를사용중인프로세서의 PID를알아내어종료시킨후설치를진행 12
Mantis 설치 Mantis 설치 & 설정 MantisBT 다운로드 : http://www.mantisbt.org/ 13
Mantis 설치 Mantis 설치 & 설정 ( 계속 ) 설치파일 X 압축을푼폴더이름의버전을지워줌 APM_Setup 설치경로 \htdocs 14
Mantis 설치 http://hbesthee.tistory.com/847 Mantis 설치 & 설정 ( 계속 ) MySQL 계정생성 15
Mantis 설치 Mantis 설치 & 설정 ( 계속 ) Mantis 환경설정 http://localhost/mantis/admin/install.php 16
Mantis 설치 Mantis 설치 & 설정 ( 계속 ) 17
Mantis 설치 Mantis 설치 & 설정 ( 계속 ) 관리자계정설정 http://localhost/mantis/login_page.php 기본관리자계정 : administrator, 비밀번호 : root 반드시비밀번호변경혹은기본관리자를삭제하고새관리자계정생성 18
Mantis?- 설치 Mantis 설치 & 설정 ( 계속 ) 언어설정 19
Mantis 설치 Mantis 설치 & 설정 ( 계속 ) 출처 : http://www.bboks.net/308 출처 : http://dsct1472.tistory.com/301 메일설정 config_inc.php(apm_setup 설치경로 \htdocs\mantis\) 에아래내용추가 $g_phpmailer_method = PHPMAILER_METHOD_SMTP; $g_smtp_host = 'smtp.gmail.com'; $g_smtp_connection_mode = 'tls'; $g_smtp_port = '587'; $g_smtp_username = 'smy11go@gmail.com'; $g_smtp_password = **********'; $g_administrator_email = 'smy11go@gmail.com'; $g_send_reset_password = ON; $g_validate_email = ON; Apache 의 php.ini(apm_setup 설치경로 \) 수정 : 아래두줄의주석 (;) 삭제 ;extension=php_openssl.dll... ;extension=php_pgsql.dll 20
Mantis 설치 Mantis 설치 & 설정 ( 계속 ) 메일설정 ( 계속 ) 설정파일수정후, 반드시서버재가동 21
Mantis 설치 Mantis 설치 & 설정 ( 계속 ) 메일설정 ( 계속 ) https://www.google.com/settings/security/lesssecureapps : 사용으로설정 22
Mantis 설치 2 Ubuntu OS 에서설치 관리자권한으로아래커맨드를순서대로입력 / 조작한다. apt-get update apt-get upgrade apt-get install apache2 apt-get install php5 apt-get install mysql-server apt-get install mysql-client apt-get install php5-mysql apt-get install phpmyadmin 압축해제한 mantis 폴더를 /var/www/html/ 아래로이동 service apache2 restart 23
Mantis 사용방법 Mantis 사용방법 계정생성 관리자 : 계정관리 사용자관리 새계정생성 24
Mantis 사용방법 Mantis 사용방법 계정생성 ( 계속 ) 계정보호체크 계정설정상태가보이지 X 25
Mantis 사용방법 Mantis 사용방법 계정생성 ( 계속 ) 사용자 : 로그인페이지에서계정생성가능 26
Mantis 사용방법 Mantis 사용방법 계정생성 ( 계속 ) 메일확인 ( 인증 ) 비밀번호설정 27
Mantis 사용방법 Mantis 사용방법 프로젝트생성 28
Mantis 사용방법 Mantis 사용방법 프로젝트생성 ( 계속 ) 사용자추가 29
Mantis 사용방법 Mantis 사용방법 이슈등록 30
Mantis 사용방법 Mantis 사용방법 이슈보기 31
Mantis 사용방법 Mantis 사용방법 이슈보기 ( 계속 ) 32
Mantis 사용방법 Mantis 사용방법 이슈보기 ( 계속 ) 이슈를할당받은계정 33
3 Git Git, SourceTree / GitHub? Git, SourceTree - 버전관리툴 GitHub - 저장소 (Repository) 제공 34
3 Git GitHub Repository 만들기 http://github.com 에로그인후 +New repository 로저장소를만든다. Public 무료, Private 유료 https://github.com/nightbreeze6846/sogum 35
3 Git SourceTree 설치 http://www.sourcetreeapp.com/ 에서소스트리다운받아설치.
3 Git 저장소복제
3 Git Mantis 에 GitHub Repository 연동하기 - 메뉴 -> Repositories -> Create Repository - Type : GitHub
3 Git Mantis 에 GitHub Repository 연동하기 2
3 Git Mantis 에 GitHub Repository 연동하기 3
3 Git Mantis 에 Git 연동하기 Git 연동을위한저장소설정변경메뉴 Repositories - Configuration
3 Git Mantis 에 Git 연동하기 2 GitHub 저장소에 Service Hook 설정 GitHub Repository -> Webhooks & Services -> Add service
3 Git Mantis 에 Git 연동하기 2 Url : mantis 가설치된주소 API key : 저장소설정할때지정했던키값
3 Git 저장소에 commit 하기 1 Commit message 를정해놓은규칙에따라작성하고 commit 하면변경사항들 ( 왼쪽 ) 이반영된다.
3 Git 저장소에 commit 하기 2 Repositories -> Changesets 에서커밋메세지들을확인할수있다. 해당이슈로바로확인가능.
4 What is CTIP? Continuous Test & Integration Platform 지속적인테스트 (Continuous Test) 와그에따른통합적인개발환경을제공하는 Platform CI 서버를통한지속적인통합환경과 Build Automation 을기반으로한다. 품질도구들을통하여코드의품질을검토할수있다. Build 결과와 Testing Output 을해당프로젝트관련자들에게배포한다. 46
4 What is CTIP? Continuous Test & Integration Platform 47
4 CTIP 구성요소 CI 서버 코드품질관리 소스코드버전관리 (SVN,CVS,Git) 빌드및배포 48
4 CTIP Tool Category CI Server Unit Testing Build Version Control Tool Hudson Junit Hudson Git Bug Tracking &Community Mantis Static analysis Eclipse TPTP, Sonar, cppcheclipse 49
4 성공적인 CI 수행조건 Source Repository( 단일소스저장소 ) 유지 Build Automation 모든사용자는매일작업내용을 Commit 모든 Commit 은통합서버 (CI) 메인라인에반영 각 Build 는빠르게수행되어야한다. 운영환경과비슷한환경에서테스트 최신결과물에쉽게접근할수있어야한다. 현재 Build 상황을쉽게알수있어야한다. 50
4 CTIP s Advantage 위험을줄일수있다. 수동으로수행해야하는반복작업을줄일수있다. 시간과장소에구애받지않고배포할수있는소프트웨어를만들수있다. 프로젝트에대한더나은가시성을제공해준다. 코드품질에대한더높은신뢰성을제공해준다. 51
+ Q&A Question and Answer T3 Software Verification 52
감사합니다 T3 Software Verification 53