버그질라
버그질라(Bugzilla)는 강력하고 기능이 풍부하며 성숙한 결함 추적 시스템 또는 버그 추적 시스템이다. 결함 추적 시스템을 통해 개발자 팀은 제품의 뛰어난 버그, 문제, 문제 개선 및 기타 변경 요청을 효과적으로 추적할 수 있다. 간단한 결함 추적 기능은 종종 깃허브(GitHub) 또는 기타 웹 기반 또는 로컬 설치와 같은 통합 소스코드 관리 환경에 내장된다.
목차
개요
버그질라(Bugzilla)는 유명한 소프트웨어 개발자인 모질라(Mozilla)가 소개한 특별한 버그 추적 도구이다. 이 도구는 방대한 양의 버그를 추적할 수 있다. 지난 기간 동안 버그질라(Bugzilla)는 모든 소프트웨어 개발 프로세스의 잠재적 버그를 탐지하는 것으로 유명해졌다. 결과적으로 개발자는 프로세스가 끝나면 오류가 없는 제품을 생산할 수 있다. 오늘날 시장에는 많은 버그 추적 도구가 있지만 대부분 유료에 비싸다. 하지만 버그질라(Bugzilla)의 경우 값 비싼 버그 추적 도구에 대한 무료 대안이라는 점에서 주목을 받았다. 즉, 버그질라(Bugzilla)는 모든 필수 기능과 함께 제공되는 완전 무료 버그 추적 도구로 매우 인기 있는 버그 추적 도구이며, 현재 전 세계 수천 명의 개발자가 사용하고 있다.[1]
역사
- 1998년 4월 6일: mozilla.org가 처음 온라인에 등장하여 출시 한 제품
- 1998년 8월 26일: 공개 배포 후 테스트 및 수정을 거쳐 익명의 CVS를 통해 오픈 소스로 출시
- 1998년 9월 15일: Terry가 버그질라(Bugzilla)를 대중적인 언어 인 것처럼 보이기 위해 Peral로 이식하기로 결정
- 1998년 9월 19일: 버그질라(Bugzilla) 2.0 출시
- 2000년 4월: Terry는 버그질라(Bugzila)의 프로젝트 제어권을 Tara Hernandez에게 넘김
- 2007년 5월: 버그질라(Bugzilla) 3.0 출시
- 2011년 2월: 버그질라(Bugzilla) 4.0 출시
- 2015년 7월: 버그질라(Bugzilla) 5.0 출시[2]
특징
장점
버그질라(Bugzilla)는 라이센스가 필요없는 오픈 소스 소프트웨어이다. 설치가 쉽고 유지 관리가 쉬우며, 특히, 새 버전으로 마이그레이션 할 때 특별한 노력을 기울일 필요가 없이 자신의 사용자 그룹을 가질 수 있다. 잠재적인 소프트웨어 버그를 기록하는데 필요한 모든 필수 기능으로 구성되어 있으며, 여러 첨부 파일과 호환되어 다양한 형식도 지원한다. 특히, 버그질라(Bugzilla)의 경우 보고 목적에 이상적인데, 필터링 메커니즘 덕분에 다양한 매개 변수를 사욯아여 버그를 쿼리하는데 사용할 수 있다.
단점
버그질라(Bugzilla)는 영향을 받는 여러 테스트 사례에 대해 연관 방법이 있는 것이 좋다. 우리가 알다시피 회귀 테스트 슈트를 위한 장소는 별로 없다. 따라서, 모든 회귀 테스트 실행 후 발견된 버그는 회귀 테스트 실패의 형태로 식별된다. 또한, 버그와 관련된 무서는 매우 제한적이며, 스프린트 연결이 없기때문에 민첩한 메소드와 호환되지 않는다.
요구사항
운영체제
서버에 버그질라(Bugzilla)를 설치하고 실행하기위한 핵심 요구사항은 Perl을 설치하는 것이다. 즉, 버그질라(Bugzilla)는 Window, Linux 및 Mac OS X를 포함하여 Perl을 설치할 수 있는 모든 플랫폼에 설치할 수 있다. Linux는 적극 권장되며 1급 시민 운영체제이다.[2]
하드웨어
하드웨어 요구 사항은 사용자 기반의 규모와 데이터베이스의 버그 수에 따라 크게 달라진다. 버그가 거의 없는 소규모 팀의 경우 좋은 기계라면 작업을 잘 수행할 것이다. 중요한 부분은 충분한 RAM과 빠른 프로세스를 갖추는 것이다. 수천명의 사용자와 수십만개의 버그가 있는 대규모 팀에는 더 많은 하드웨어가 필요하다. 아이디어를 제공하기 위해 Mozilla의 버그질라(Bugzilla) 설치에서는 웹 하드 3개, 1개 마스터 데이터베이스, 3개 슬렝티브 데이터베이스 및 1개의 이메일 릴레이 등 8개의 서버를 사용한다. 또한, mod_perl은 성능 향상을 위해 활성화되며, 매우 높은 동시 액세스를 위해 설계되었으므로 요구 사항이 그것보다 낮을 수 있다.[2]
소프트웨어
버그질라(Bugzilla)에는 데이터베이스 서버, 웹 서버 및 Perl이 필요하다. 아래의 모든 권장 사항에서 버그질라(Bugzilla)에는 버전 X 필요가 버그질라(Bugzilla)에는 버전 X 이상 필요로 이해되어야 한다. 모든 경우에, 최신 릴리스에는 더 많은 버그 수정이 있고 여전히 지원되며 보안 수정이 계속 적용되므로 최신 일수록 좋다.[2]
기능
사용자
- 고급 검색 기능: 버그질라(Bugzilla)에서는 두 가지 검색 형식을 제공한다. 신규 사용자에게 간단하고 버그의 전체 텍스트를 검색하는 구글과 유사한 기본 버그 검색과 시간 기반 검색 및 구체적인 쿼리를 포함하여 원하는 검색을 할 수 있는 시스템을 가지고 있다.
- 사용자 기본 설정에 의해 제어되는 이메일 알림: 버그질라(Bugzilla)에서 변경된 사항과 개임 사용자 환경 설정에 의해 완전히 제어되는 버그에 대한 알림을 받을 수 있다.
- 다양한 형식의 버그 목록(Atom, iCal등): 버그를 검색 할때, 기본 HTML 레이아웃이 아닌 다양한 형식으로 결과를 얻을 수 있다. 피드처럼 검색을 구독하려는 경우 Atom에서 버그 목록을 사용할 수 있다. 또한 iCalendar 형식으로 제공되기 때문에 버그질라(Bugzilla)의 시간 추적 기능을 사용하는 경우 버그가 캘린더에 들어가는 위치를 확인할 수 있다. 모든 버그의 세부 정보를 포함하는 길고 인쇄 가능한 보고서 형식, 스프레드 시트로 가져오기 위한 CSV 형식 및 다양한 XML 형식과 같은 더 많은 형식을 사용할 수 있다.
- 이메일로 예약된 보고서: 버그질라(Bugzilla)에는 지정한 일정에 따라 특정 검색 결과를 지정하는 사용자, 다른 사용자 또는 그룹을 보내는 시스템이 있다. 하루 중 언제라도 발생 가능하며 15분마다 발생할 수 있는데, 이 시스템에 대한 액세스는 그룹 시스템에 의해 제어되므로 액세스 권한이 있는 사용자와 자신이 아닌 다른 사용자에게 보고서를 보낼 수 있는 사용자를 개별적으로 제한할 수 있다.
- 보고서 및 차트: 버그 데이터베이스가 지금 어떻게 보이는지 알고 싶다면 X축 및 Y 축으로 두 필드를 사용하고 검색 기준을 사용하여 원하는 버그를 제한하는 테이블을 만들 수 있다. 즉, 각 제품의 각 상태에 몇 개의 버그가 있는지를 보고서를 통해 볼 수 있는 것이다.
- 자동 중복 버그 감지: 버그질라(Bugzilla)에서 버그를 제출할 때 간단한 요약을 입력하기 시작하자마자 시스템에서 유사한 버그를 자동으로 찾고 사용자가 새로운 버그를 제출하는 대신 해당 버그 중 하나의 CC 목록에 자신을 추가할 수 있도록 한다.
- 이메일로 버그 파일/수정: 웹 인터페이스 외에도 새로운 버그를 생성하거나 기존 버그를 수정할 이메일을 버그질라(Bugzilla)에 보낼 수 있으며, 버그에 파일을 매우 쉽게 첨부할 수도 있다.
- 시간 추적: 버그를 수정하는데 걸리는 시간을 추정한 다음 작업에 소요되는 시간을 추적할 수 있다. 버그를 완료해야 하는 기한을 설정할 수도 있다.
- 시스템 요청: 요청 시스템은 다른 사용자에게 특정 버그 또는 첨부 파일로 작업을 요청하는 방법이다. 다른 사용자가 요청을 승인하거나 거부할 수 있으며, 버그질라(Bugzilla)는 응답을 추적한다. 이것은 다양한 용도로 사용할 수 있는데, 코드 검토를 요청하거나 특정 사용자의 정보를 요청하거나 관리자의 승인을 받아야 하는 경우 시스템은 매우 유연하며 필요한 작업을 수행할 수 있다.
- 개인 첨부 파일 및 주석: 내부자 그룹에 있는 경우 특정 첨부 파일과 댓글을 비공개로 표시하면 내부자 그룹에 속하지 않은 사용자에게는 보이지 않는다. 사용자는 코멘트가 숨겨졌다는 것을 알지만 그 내용에 접근할 수 없다.
- 자동 사용자 이름 완성 또는 드롭 다운 사용자 목록: 소규모 버그질라(Bugzilla) 설치의 경우 버그질라(Bugzilla)는 선택 가능한 드롭 다운 목록에 모든 사용자 표시, 다른 사용자에게 버그 재 할당, CC 목록에 사용자 추가 또는 기타 여러 영역을 지원한다. 관리자는 특정 사용자가 다른 사용자의 존재를 알지 못하도록 사용자 가시성 제어를 사용하여 각 사용자의 드롭 다운 목록에 나타나는 사람을 제어할 수 있다. 대규모 설치의 경우 버그질라(Bugzilla)는 담당자, CC 목록 또는 사용자 이름을 사용하는 기타 필드의 사용자 이름을 입력할 때 자동 완성을 지원한다. 이 필드 중 하나에 3 자 이상을 입력하면 버그질라(Bugzilla)는 사용자 이름이나 실제 이름에 해당 문자가 있는 사용자 목록을 제안한다.
- 패치 뷰어: 버그에 첨부된 패치를 멋지고 다채로운 보기로 제공한다. 또한, LXR, CVS 및 Bonsai와 통합되어 패치에 대한 더 많은 정보를 제공하는데, 특히 코드 검토가 훨씬 쉬워진다.
- 다른 사용자 보기: 버그질라(Bugzilla)에서 다른 사용자를 '보고 싶다'라고 말할 수 있다. 그러면 그 사용자가 마치 당신인 것처럼 버그질라(Bugzilla)에서 받는 모든 이메일을 받게 된다. 이것은 한 개발자가 휴가를 가고 다른 개발자가 휴가를 보내는 동안 다른 개발자가 해당 개발자의 버그를 처리해야 할 때 특히 유용하게 사용된다. 단, 보안을 우회하는 것을 허용하지 않고, 버그에 접근할 수 없다면 어떤 상황에서도 이에 대한 알림을 받지 못한다.
- 설치 간에 버그 이동: 버그질라(Bugzilla)는 한 버그질라(Bugzilla) 설치에서 다른 설치로 버그를 이동하는 기능을 지원한다. 이것은 버전 간에도 작동하며, 수동 작업을 하지 않고도 버그질라(Bugzilla) 2.16 설치에서 버그질라(Bugzilla) 3.0 설치로 버그를 이동할 수 있습니다.
- 검색 저장 및 공유: 검색을 수행 한 후에는 모든 페이지의 바닥 글에 나타나도록 저장할 수 있으며, 다시 실행하려면 링크를 클릭하기 만하면 된다. 검색을 저장한 후 올바른 권한이 있으면 해당 검색을 버그질라(Bugzilla)에 속한 모든 그룹과 공유할 수도 있다. 그런 다음 검색과 함께 바닥글에 검색을 표시하는 옵션이 있다.[2]
관리자
- 뛰어난 보안: 버그질라(Bugzilla) 프로젝트는 보안을 중요하게 생각한다. 버그질라(Bugzilla)는 SQL 인젝션을 방지하기 위해 Perl의 taint 모드에서 실행되며, 교차 사이트 스크립팅을 방지하기 위해 매우 신중한 시스템을 갖추고 있다. 버그질라(Bugzilla)의 보안 취약성 패치 기록은 훌륭하며 시스템은 보안을 염두에 두고 모든 단계에서 설계되었다. 또한, 정보 유출에 대해 매우 조심스러워 그룹 시스템을 사용하여 무언가를 숨기면 아무도 그것에 대한 정보를 얻을 수 없다. 누군가가 비밀번호를 추측하여 계정을 악용하려고 시도하면 무차별 대입을 방지하기 위해 몇 번의 시도 후 계정이 자동으로 잠기게 된다.
- 고도로 사용자 정의 가능한 설치를 위한 확장 메커니즘: 버그질라(Bugzilla)의 모든 사용자 인터페이스와 모든 이메일은 대부분 HTML, CSS 및 JavaScript만 포함하는 파일인 템플릿에서 생성된다. 사용자 정의를 위해 Perl을 알 필요가 없으며 템플릿을 편집하기 만하면 된다. 좀 더 복잡한 작업을 위해 버그질라(Bugzilla)는 모든 버그질라(Bugzilla) 설치에 파일을 드롭하고 다양한 방식으로 동작을 변경할 수있는 고급 확장 시스템을 가지고 있다. 확장 기능은 버그질라(Bugzilla)의 주요 릴리스에서도 거의 변경없이 유지할 수 있는 사용자 정의를 작성하는 좋은 방법이다.
- 사용자 정의 필드: 버그질라(Bugzilla)는 버그 데이터베이스에 사용자 정의 필드를 추가하여 조직에 고유 한 데이터를 캡처하고 검색할 수 있도록 지원한다. 다양한 유형의 사용자 정의 필드가 지원되며 다른 필드의 값을 기반으로 표시하여 관련성이 있을 때만 사용할 수도 있다.
- 사용자 정의 워크 플로우: 버그질라(Bugzilla)는 기본 워크 플로뿐만 아니라 버그 상태 및 해결 방법의 기본 목록과 함께 제공된다. 그것은 필요에 더 잘 맞도록 편집 이 가능하다. 즉, 버그 상태 및 해결 방법을 매우 쉽게 생성하거나 삭제할 수 있으며 워크 플로를 완전히 사용자 지정할 수 있다.
- 완전한 유니코드 지원': 모든 버그질라(Bugzilla)는 일본어 및 중국어와 같은 멀티 바이트 언어를 포함하여 유니 코드를 완벽하게 지원한다. 버그질라(Bugzilla)에 유니코드로 데이터를 입력 할 수 있으며 모든 데이터를 유니코드로 정확하게 검색하고 정렬할 수 있다.
- 현지화: 버그질라(Bugzilla) 관리자는 설치 시 지원되는 언어를 구성하고 사용자 브라우저에서 보낸 HTTP 'Accept-Language'헤더를 기반으로 사용자에게 올바른 현지화된 콘텐츠를 자동으로 제공할 수 있다.
- 뛰어난 성능을 위한 mod_perl 지원: 버그질라(Bugzilla)는 아파치(Apache)의 mod_perl에서 실행할 수 있으며 개별 페이지 로드 속도를 크게 향상시킨다. 버그질라(Bugzilla) 페이지는 mod_perl에서 실행될 때 종종 1초 이내에 로드된다. 버그질라(Bugzilla)는 또한 non-mod_perl 환경에서도 실행되므로 아파치(Apache)의 일반 mod_cgi, IIS 또는 원하는 웹 서버에서 실행할 수 있다.
- 웹 서비스 (XML-RPC 및 JSON-RPC) 인터페이스: 버그질라(Bugzilla)는 XML-RPC 또는 JSON-RPC Webservices 인터페이스를 통해 액세스하고 수정 할 수 있다 . 이를 통해 버그질라(Bugzilla)와 쉽게 상호 작용하는 외부 도구를 작성할 수 있다. 버그질라(Bugzilla) 프로젝트는 웹 서비스 인터페이스를 릴리스 간에 안정적으로 유지하기 위해 작동하므로 버그질라(Bugzilla)의 XML-RPC 또는 JSON-RPC 인터페이스의 한 버전에 대해 작성된 애플리케이션은 향후 버그질라(Bugzilla) 버전에서도 계속 작동해야 한다.
- 그룹으로 버그 가시성 / 편집 제어: 버그질라(Bugzilla)를 사용하면 어떤 사용자 그룹이 어떤 버그를 편집하거나 볼 수 있는지 정의할 수 있다. 이러한 제어는 매우 고급이며 전체 엔터프라이즈 그룹 시스템에 대한 소그룹 요구를 지원하도록 설계되었다.
- 사용자 가장: 버그질라(Bugzilla) 관리자는 시스템에있는 모든 사용자를 가장 할 수 있다(다른 관리자 제외). 이는 문제 해결에 도움이 되며 다른 경우에도 유용하다.
- 여러 인증 방법: 버그질라(Bugzilla)는 내장 사용자 데이터베이스 또는 LDAP 서버에 대한 인증을 지원한다. 또한, 폴 스루 인증을 지원하므로 아파치(Apache)(또는 웹 서버)에서 지원하는 모든 인증 방법을 사용할 수 있다. 또한, 이러한 인증 방법을 스택 하여 사용자가 LDAP에서 발견되지 않는 경우 버그질라(Bugzilla) 데이터베이스로 대체되도록 할 수 있다.
- 여러 데이터베이스 엔진 지원: 버그질라(Bugzilla)는 MySQL, PostgreSQL 및 Oracle에서 실행할 수 있다. MS-SQL은 현재 진행 중이며 가까운 시일 내에 지원 될 예정이다. 또한, 선택한 데이터베이스 용 드라이버를 작성할 수도 있다.
- 위생 점검: 버그질라(Bugzilla)의 Sanity Check는 데이터베이스의 불일치를 스캔한다. 오류를 보고하고 자동으로 수정하도록 제안하거나 문제 해결에 도움이 되는 링크를 제공한다.[2]
각주
- ↑ 〈Bugzilla 대 지라 – 종합 비교〉, 《iStarsoft》, 2020-03-04
- ↑ 2.0 2.1 2.2 2.3 2.4 2.5 버그질라 공식홈페이지 - https://www.bugzilla.org/
참고자료
- 〈Bugzilla 대 지라 – 종합 비교〉, 《iStarsoft》, 2020-03-04
- 버그질라 공식홈페이지 - https://www.bugzilla.org/