Bugzilla 1. 도구개요 2. 설치및실행 3. 주요기능 4. 활용예제
1. 도구개요 1.1 도구정보요약 도구명 소개 Bugzilla (https://www.bugzilla.org/) 웹기반버그추적 / 관리도구 라이선스 Mozilla Public License 2.0 특징 버그를지속적으로관리 / 참조가능 버그의심각도와우선순위지정가능 엑셀변환가능 주요기능 버그신고, 확인, 처리등버그추적관리 버그관련검색, 이메일통지 중복버그탐지, 버그관련통계, 보고서및차트 실행환경 Windows, Linux, Mac OS X 등사전설치도구 Perl 5.10.1 이상 DBMS Web 서버 Git 카테고리 이슈관리최신버전 5.0.1 (2015.11) 관련도구 Mantis, Trac 2
1. 도구개요 1.2 스크린캡쳐및주요기능 수행중인프로젝트의버그를웹에서등록, 처리, 추적, 관리 버그검색, 메일통지등의편의기능제공 3
2. 설치및실행 세부목차 2.1 설치개관 2.2 사전설치사항 - Perl 설치 2.3 사전설치사항 - DBMS 설치 2.4 사전설치사항 - 웹서버설치 2.5 사전설치사항 - 기타모듈설치 2.6 Bugzilla 설치 2.7 Bugzilla-MySQL 설정 2.8 Bugzilla-Apache 설정 2.9 Bugzilla 설정파일생성 2.10 Bugzilla 설정파일수정 2.11 Bugzilla 설정확인 2.12 Bugzilla 사이트접속 4
2. 설치및실행 2.1 설치개관 (1/2) Bugzilla 는웹기반시스템으로구성요소하나하나를직접설치해야하므로설치가까다로운편이다. Bugzilla 홈페이지에서는 Linux 에설치해서운영하는것을권장하고있으므로, 본자료에서는 Ubuntu 리눅스에 Bugzilla 를설치한다. ( 윈도우에도설치및운영가능 ) Bugzilla 는 DBMS 를필요로하며현재 MySQL, PostgreSQL, Oracle, SQLite 를지원한다. 본자료에서는 MySQL 을 DBMS 로사용한다. 웹서버는 Apache 를사용한다. bugzilla 라는계정을임의로만들고, 비밀번호도 bugzilla 로설정 5
2. 설치및실행 2.1 설치개관 (2/2) 권한문제발생을막기위해터미널에서 sudo su 를실행해서 root 권한으로설치한다. 6
2. 설치및실행 2.2 사전설치사항 - Perl 설치 설치전권한문제를없애기위해 root 권한으로설치를시작 Perl 버전은 5.10.1 이상이어야하므로 Version 을먼저확인 perl v Perl 이설치되어있지않는경우에는아래명령으로설치한다. apt-get install perl 7
2. 설치및실행 2.3 사전설치사항 - DBMS 설치 (1/5) mysql v 로기존설치버전확인 설치되어있지않으면 apt-get install mysql-server mysql-client 로설치 8
2. 설치및실행 2.3 사전설치사항 - DBMS 설치 (2/5) root 사용자비밀번호설정 9
2. 설치및실행 2.3 사전설치사항 - DBMS 설치 (3/5) bugzilla 에서사용할 DB 생성 10
2. 설치및실행 2.3 사전설치사항 - DBMS 설치 (4/5) DB 생성후, bugzilla 계정에해당 DB 에대한권한을지정 grant all on bugzilla.* to bugzilla@localhost identified by 1111 ; grant 명령에서 on 뒤의 bugzilla.* 는 bugzilla 로이름된모든 DB 를의미하며, bugzilla@localhost 는 Linux 계정을, 끝의 1111 은비밀번호를의미 flush privileges; 실행 11
2. 설치및실행 2.3 사전설치사항 - DBMS 설치 (5/5) quit 으로 MySQL 콘솔빠져나온후 bugzilla 계정으로다시로그인확인 mysql -u bugzill -p 실행후비밀번호 1111 입력하여로그인확인후 quit 로 MySQL 콘솔을빠져나온다. 12
2. 설치및실행 2.5 사전설치사항 - 기타모듈설치 Bugzilla 는아래와같이 Bugzilla 홈페이지에명시된기타모듈설치필요 (apache2-mpm-prefork 가설치되지않을경우아래명령에서 apache2-mpm-prefork 를제외하고다시실행한다.) sudo apt-get install git sendmail apache2 libappconfig-perl libdate-calcperl libtemplate-perl libmime-perl build-essential libdatetime-timezoneperl libdatetime-perl libemail-sender-perl libemail-mime-perl libemailmime-modifier-perl libdbi-perl libdbd-mysql-perl libcgi-pm-perl libmathrandom-isaac-perl libmath-random-isaac-xs-perl libapache2-mod-perl2 apache2-mpm-prefork libapache2-mod-perl2-dev libchart-perl libxml-perl libxml-twig-perl perlmagick libgd-graph-perl libtemplate-plugin-gd-perl libsoap-lite-perl libhtml-scrubber-perl libjson-rpc-perl libdaemon-genericperl libtheschwartz-perl libtest-taint-perl libauthen-radius-perl libfile-slurpperl libencode-detect-perl libmodule-build-perl libnet-ldap-perl libauthensasl-perl libtemplate-perl-doc libfile-mimeinfo-perl libhtml-formattextwithlinks-perl libgd-dev libmysqlclient-dev lynx-cur graphviz pythonsphinx 13
2. 설치및실행 2.5 사전설치사항 - 기타모듈설치 14
2. 설치및실행 2.6 Bugzilla 설치 Bugzilla 의 git 저장소에서직접소스를 /var/www/html 에내려받는다. 15
2. 설치및실행 2.7 Bugzilla-MySQL 설정 MySQL 은 full-text 인덱싱을위해적어도 4 글자가필요하지만, Bugzilla 는 cc, ftp, uri 등 4 글자미만의키워드가사용되므로, /etc/mysql/mysql.conf.d/mysqld.cnf 에서 ft_min_word_len 파라미터값을 2 로설정 16
2. 설치및실행 2.8 Bugzilla-Apache 설정 Bugzilla 는기본으로 apache 의 mod_cgi 모듈을사용해서운영되는데, 아주많은사용자가빈번하게 Bugzilla 를사용한다면, 자원은많이소모하지만속도가더빠른 mod_perl 을사용할수도있다. Bugzilla-Apache 설정을위해 /etc/apache2/apache2.conf 파일을수정한다. sudo gedit /etc/apache2/apache2.conf 17
2. 설치및실행 2.8 Bugzilla-Apache 설정 REST/XMLRPC/JSONRPC 등의웹서비스를통해외부시스템이 Bugzilla 와연동되는경우 URL 에사용자의인증정보가쿼리스트링형태로전달된다. 서버에비밀번호가남지않도록로그포맷수정 vhost_combined 관련로그포맷의 %r 을 %m %U 로수정 18
2. 설치및실행 2.8 Bugzilla-Apache 설정 bugzilla 폴더연결처리를 /etc/apache2/sites-available/bugzilla.conf 라는파일을아래와같이새로생성한다. 19
2. 설치및실행 2.8 Bugzilla-Apache 설정 bugzilla 사이트를활성화하고, cgi, headers, expires 모듈을활성화한후, 아파치를재시작한다. 20
2. 설치및실행 2.9 Bugzilla 설정파일생성./checksetup.pl 으로모듈설치상태확인및설정 DB 접근정보를설정할수있는 localconfig 파일생성 21
2. 설치및실행 2.9 Bugzilla 설정파일생성 설치되지않은모듈확인 22
2. 설치및실행 2.9 Bugzilla 설정파일생성 설치되지않은모듈설치 23
2. 설치및실행 2.9 Bugzilla 설정파일생성 설치되지않은모듈설치완료 24
2. 설치및실행 2.10 Bugzilla 설정파일수정 gedit /var/www/html/bugzilla/localconfig 파일을아래와같이수정한다. 25
2. 설치및실행 2.10 Bugzilla 설정파일수정 localconfig 파일을아래와같이수정한다. 26
2. 설치및실행 2.11 Bugzilla 설정확인./checksetup.pl 실행 27
2. 설치및실행 2.11 Bugzilla 설정확인 Bugzilla 관리자정보입력및설정완료 28
2. 설치및실행 2.11 Bugzilla 설정확인 Bugzilla 사이트테스트 29
2. 설치및실행 2.12 Bugzilla 사이트접속 http://localhost 30
3. 주요기능 세부목차 3.1 버그등록 3.2 버그처리 3.3 이메일통지 3.4 버그통계및도표 3.5 버그검색 3.6 실습사이트제공 31
3. 주요기능 3.1 버그등록 Bugzilla 화면에서신규버그를등록할수있다. 32
3. 주요기능 3.2 버그처리 버그를처리하고 Bugzilla 화면에서버그상태를변경할수있다. 33
3. 주요기능 3.3 이메일통지 관심버그의상태변경을이메일로통지를받을수있다. 34
3. 주요기능 3.4 버그통계및도표 버그통계를표및차트형태로확인할수있다. 35
3. 주요기능 3.5 버그검색 단순검색및고급검색으로버그를검색할수있다. 36
3. 주요기능 3.6 실습사이트제공 Bugzilla 를설치하지않고도인터넷에공개된실습사이트를통해, Bugzilla 의사용법을익힐수있다.(https://landfill.bugzilla.org) 37
4. 활용예제 세부목차 4.1 예제소개 4.2 초기환경설정 4.3 프로덕트, 컴포넌트생성 4.4 버그신고 4.5 버그검색 4.6 버그조치완료처리 38
4. 활용예제 4.1 예제소개 본예제는 Bugzilla 의주요기능과실제사용방법을설명한다. Bugzilla 운영을위한초기환경설정을수행하고, 프로덕트와컴포넌트생성 버그등록, 버그검색, 버그투표, 버그수정등 Bugzilla 를통한버그추적활동을통해버그관리라이프사이클을알아본다. 39
4. 활용예제 4.2 초기환경설정 Bugzilla 설치시입력했던관리자정보로 Login - email : bug@swbank.kr - password : bugzilla 40
4. 활용예제 4.2 초기환경설정 Bugzilla 운영에반드시필요한 urlbase, cookiepath 값을설정하기위해 Parameters 클릭 41
4. 활용예제 4.2 초기환경설정 urlbase : http://localhost/bugzilla/ cookiepath : /bugzilla/ Save Changes 클릭 42
4. 활용예제 4.2 초기환경설정 maintainer 값을설정하기위해 General 클릭 43
4. 활용예제 4.2 초기환경설정 maintainer : bug@swbank.kr 입력후화면하단 Save Changes 클릭 44
4. 활용예제 4.2 초기환경설정 Email 설정 - mail_delivery_method 항목은 Sendmail 을선택 - mailfrom 항목에는올바른메일주소입력 ( 여기서는 bug@swbank.kr) 45
4. 활용예제 4.2 초기환경설정 Email 설정 - use_mailer_queue 항목을 On 으로설정 - 이설정을하지않으면 Bugzilla 가메일발송성공후에사용자등록, 버그신고등의내부처리를하게되며, 1 분이상씩소요됨 46
4. 활용예제 4.2 초기환경설정 모듈설치재확인 -./checksetup.pl 실행으로관련모듈설치확인 47
4. 활용예제 4.2 초기환경설정 jobqueue 서비스등록및서비스시작 -./jobqueue.pl install -./jobqueue.pl start 48
4. 활용예제 4.2 초기환경설정 실습을위한사용자추가 관리자가사용자를추가할수있으며, 사용자가직접가입할수도있다. 실습에서는편의상관리자로추가한다. 49
4. 활용예제 4.2 초기환경설정 실습을위한사용자추가 관리자가사용자를추가할수있으며, 사용자가직접가입할수도있다. 실습에서는편의상관리자로추가한다. 50
4. 활용예제 4.2 초기환경설정 Login name, Real name, Password 항목에실제사용할정보를입력한다. Login name 에는이메일주소를입력한다. 51
4. 활용예제 4.2 초기환경설정 계정이생성되면, 아래와같이권한을설정할수있는화면이나온다. 권한을설정하지말고, 개발자계정을추가하기위해바로 Administration 화면으로이동해서, 앞에서와같은방법으로 Real name 이 Developer01 인계정을추가로생성한다. 52
4. 활용예제 4.2 초기환경설정 계정생성시메일확인옵션을선택하면, 아래와같이메일이발송된다. 53
4. 활용예제 4.3 프로덕트, 컴포넌트생성 Administrator 화면에서 Products 클릭 54
4. 활용예제 4.3 프로덕트, 컴포넌트생성 Product 화면에는 Bugzilla 설치시자동으로만들어진 Dummy 프로덕트인 TestProduct 이이미만들어져있다. Add 를클릭한다. 55
4. 활용예제 4.3 프로덕트, 컴포넌트생성 Product, Description, Version, Component, Component Description, Default Assignee 를입력하고 Add 를클릭한다. - Default Assignee 는자동완성기능이지원된다. 56
4. 활용예제 4.3 프로덕트, 컴포넌트생성 입력내용을확인한다 ( 잘못된사항이없으면 Save Changes 클릭불필요 ) 57
4. 활용예제 4.4 버그신고 사용자 (User01) 입장에서신규버그를신고한다. - 로그아웃후 User01 로로그인하고아래의 File a bug 클릭 58
4. 활용예제 4.4 버그신고 Simple Login 프로덕트를클릭한다. 59
4. 활용예제 4.4 버그신고 버그내용작성및제출 blocker, critical, major, normal, minor, trivial, enhancement 중택일 All, PC, Macintosh, Other 중택일 All, Windows, Mac OS, Linux, Other 중택일 입력한 Summary 에따라 Bugzilla 가자동으로중복후보버그를보여준다. 버그상세내역입력 60
4. 활용예제 4.4 버그신고 버그신고완료. 완료화면에서추가정보를등록할수도있다. 61
4. 활용예제 4.4 버그신고 버그신고자에게버그신고완료에대한알림메일이발송된다. 62
4. 활용예제 4.5 버그검색 홈화면으로이동후검색어입력후 Quick Search 클릭 63
4. 활용예제 4.5 버그검색 검색결과목록이표시된다. 64
4. 활용예제 4.6 버그조치완료처리 버그조치완료처리는개발자가수행하므로, 버그등록시 Asignee 로지정했던 Developer01 계정으로로그인 왼쪽하단에할당된버그가있다고표시된다. 링크를클릭한다. 65
4. 활용예제 4.6 버그조치완료처리 할당된버그목록이표시된다. Summary 항목아래의링크를클릭한다. 66
4. 활용예제 4.6 버그조치완료처리 버그내용을확인한다. 67
4. 활용예제 4.6 버그조치완료처리 조치내용을입력하고 Status 를 RESOLVED, FIXED 로변경한다. 68
4. 활용예제 4.6 버그조치완료처리 완료처리가되면버그를등록한사용자에게메일이발송된다. 69