Bugzilla

Bugzilla là một hệ thống giám sát lỗi và công cụ kiểm tra lỗi mục đích chung dựa trên web ban đầu được phát triển và sử dụng bởi dự án Mozilla và được cấp phép theo Mozilla Public License.
Phát hành dưới dạng phần mềm nguồn mở bởi Netscape Communications năm 1998, nó đã được nhiều tổ chức khác nhau sử dụng làm hệ thống theo dõi lỗi cho cả các dự án và sản phẩm tự do nguồn mở cũng như độc quyền. Bugzilla được sử dụng bởi Mozilla Foundation, WebKit, Linux kernel, FreeBSD, GNOME, KDE, Apache, Red Hat, Eclipse và LibreOffice. Nó cũng là tự sử dụng chính mình.

**Lịch sử**
Bugzilla ban đầu được Terry Weissman nghĩ ra vào năm 1998 cho dự án Mozilla.org mới thành lập, như là một ứng dụng nguồn mở để thay thế hệ thống nội bộ đang được sử dụng tại Netscape Communications để theo dõi các khiếm khuyết trong bộ Netscape Communicator. Bugzillaban đầu được viết bằng Tcl, nhưng Weissman đã quyết định chuyển nó sang Perl trước khi phát hành nó, với hy vọng rằng nhiều người sẽ có thể đóng góp cho nó, vì Perl dường như là một ngôn ngữ phổ biến tại thời điểm đó.
Bugzilla 2.0 là kết quả của port này tới Perl, và phiên bản đầu tiên được phát hành ra công chúng thông qua CVS ẩn danh. Tháng 4 năm 2000, Weissman đã bàn giao quyền kiểm soát dự án Bugzilla cho Tara Hernandez. Dưới sự lãnh đạo của bà, một số người đóng góp thường xuyên đã bị ép buộc phải chịu trách nhiệm nhiều hơn và sự phát triển của Bugzilla trở nên hướng đến cộng đồng nhiều hơn. Tháng 7 năm 2001, đối mặt với sự phân tâm từ các trách nhiệm khác của mình tại Netscape, Hernandez trao quyền kiểm soát cho Dave Miller, người vẫn đang chịu trách nhiệm 2013.
Bugzilla 3.0 phát hành ngày 10 tháng 5 năm 2007 và được làm mới giao diện người dùng, XML-RPC, custom fields and resolutions, mod_perl support, shared saved searches, và cải tiến các hỗ trợ UTF-8, cùng với các thay đổi khác.
Bugzilla 4.0 được phát hành ngày 15 tháng 1 năm 2011 và Bugzilla 5.0 được phát hành tháng 7 năm 2015.

**Dòng thời gian**
Dòng thời gian của Bugzilla:
Define $now = 15/05/2019
Define $width = 556
Define $warning = 436 # $width – 120
ImageSize  = width:800 height:500
PlotArea   = left:40 right:10 bottom:100 top:10
DateFormat = dd/mm/yyyy
Period     = from:01/01/1998 till:$now
TimeAxis   = orientation:hor
Alignbars  = justify
Legend = orientation:vertical position:bottom columns:1
##################################################
# Color definitions                              #
##################################################
Colors =
id:col2.0     value:orange         Legend:Bugzilla_2.0-2.12
id:col2.14    value:blue           Legend:Bugzilla_2.14
id:col2.16    value:green          Legend:Bugzilla_2.16
id:col2.18    value:magenta        Legend:Bugzilla_2.18
id:col2.20    value:teal           Legend:Bugzilla_2.20
id:col2.22    value:orange         Legend:Bugzilla_2.22
id:col3.0     value:blue           Legend:Bugzilla_3.0
id:col3.2     value:green          Legend:Bugzilla_3.2
id:col3.4     value:magenta        Legend:Bugzilla_3.4
id:col3.6     value:teal           Legend:Bugzilla_3.6
id:col4.0     value:orange         Legend:Bugzilla_4.0
id:col4.2     value:blue           Legend:Bugzilla_4.2
id:col4.4     value:green          Legend:Bugzilla_4.4
id:col5.0     value:magenta        Legend:Bugzilla_5.0
id:col2.0-l1  value:gray(0.2)
id:col2.0-l2  value:gray(0.3)
id:colbg      value:gray(0.98)
id:colgrmaj   value:gray(0.5)
id:colgrmin   value:gray(0.8)
id:lighttext  value:rgb(0.5,0.5,0.5)
ScaleMajor = gridcolor:colgrmaj unit:year increment:1 start:01/01/1998
ScaleMinor = gridcolor:colgrmin unit:month increment:3 start:01/01/1998
BackgroundColors = canvas:colbg
PlotData=
##################################################
# 2.0 filled bar                                 #
##################################################
bar:2.0 width:35 from:26/08/1998 till:27/04/2001 color:col2.0 mark:(line,col2.0)
##################################################
# 2.0 line & text for first version every year   #
##################################################
bar:2.0 mark:(line,col2.0-l1) align:center fontsize:S
at:26/08/1998 text:"2.0" shift:(0,-15)
at:20/01/1999 text:"2.2"
at:09/05/2000 text:"2.10"
at:27/04/2001 text:"2.12" shift:(0,5)
##################################################
# 2.0 line for all other versions                #
##################################################
bar:2.0 mark:(line,col2.0-l2)
at: 30/04/1999 # 2.4
at: 30/08/1999 # 2.6
at: 19/11/1999 # 2.8
##################################################
# 2.14 filled bar                                #
##################################################
bar:2.14 width:35 from:29/08/2001 till:02/01/2003 color:col2.14 mark:(line,col2.14)
##################################################
# 2.14 line & text for first version every year  #
##################################################
bar:2.14 mark:(line,col2.0-l1) align:center fontsize:S
at:29/08/2001 text:"2.14" shift:(0,-15)
at:05/01/2002 text:"2.14.1"
at:02/01/2003 text:"2.14.5" shift:(0,5)
##################################################
# 2.14 line for all other versions               #
##################################################
bar:2.14 mark:(line,col2.0-l2)
at: 07/06/2002 # 2.14.2
at: 28/07/2002 # 2.14.3
at: 30/09/2002 # 2.14.4
##################################################
# 2.16 filled bar                                #
##################################################
bar:2.16 width:35 from:28/07/2002 till:20/02/2006 color:col2.16 mark:(line,col2.16)
##################################################
# 2.16 line & text for first version every year  #
##################################################
bar:2.16 mark:(line,col2.0-l1) align:center fontsize:S
at:28/07/2002 text:"2.16" shift:(0,-15)
at:02/01/2003 text:"2.16.2"
at:03/05/2004 text:"2.16.5"
at:15/01/2005 text:"2.16.8"
at:20/02/2006 text:"2.16.11" shift:(0,5)
##################################################
# 2.16 line for all other versions               #
##################################################
bar:2.16 mark:(line,col2.0-l2)
at: 30/09/2002 # 2.16.1
at: 25/04/2003 # 2.16.3
at: 03/11/2003 # 2.16.4
at: 10/07/2004 # 2.16.6
at: 24/10/2004 # 2.16.7
at: 11/05/2005 # 2.16.9
at: 18/05/2005 # 2.16.10
##################################################
# 2.18 filled bar                                #
##################################################
bar:2.18 width:35 from:15/01/2005 till:15/10/2006 color:col2.18 mark:(line,col2.18)
##################################################
# 2.18 line & text for first version every year  #
##################################################
bar:2.18 mark:(line,col2.0-l1) align:center fontsize:S
at: 15/01/2005 text:"2.18" shift:(0,-15)
at: 20/02/2006 text:"2.18.5"
at: 15/10/2006 text:"2.18.6" shift:(0,5)
##################################################
# 2.18 line for all other versions               #
##################################################
bar:2.18 mark:(line,col2.0-l2)
at: 11/05/2005 # 2.18.1
at: 07/07/2005 # 2.18.2
at: 09/07/2005 # 2.18.3
at: 30/09/2005 # 2.18.4
##################################################
# 2.20 filled bar                                #
##################################################
bar:2.20 width:35 from:30/09/2005 till:06/11/2008 color:col2.20 mark:(line,col2.20)
##################################################
# 2.20 line & text for first version every year  #
##################################################
bar:2.20 mark:(line,col2.0-l1) align:center fontsize:S
at: 30/09/2005 text:"2.20" shift:(0,-15)
at: 20/02/2006 text:"2.20.1"
at: 02/02/2007 text:"2.20.4"
at: 04/05/2008 text:"2.20.6"
at: 06/11/2008 text:"2.20.7" shift:(0,5)
##################################################
# 2.20 line for all other versions               #
##################################################
bar:2.20 mark:(line,col2.0-l2)
at: 22/04/2006 # 2.18.2
at: 15/10/2006 # 2.18.3
at: 23/08/2007 # 2.18.5
##################################################
# 2.22 filled bar                                #
##################################################
bar:2.22 width:35 from:22/04/2006 till:02/02/2009 color:col2.22 mark:(line,col2.22)
##################################################
# 2.22 line & text for first version every year  #
##################################################
bar:2.22 mark:(line,col2.0-l1) align:center fontsize:S
at: 22/04/2006 text:"2.22" shift:(0,-15)
at: 02/02/2007 text:"2.22.2"
at: 04/05/2008 text:"2.22.4"
at: 02/02/2009 text:"2.22.7" shift:(0,5)
##################################################
# 2.22 line for all other versions               #
##################################################
bar:2.22 mark:(line,col2.0-l2)
at: 23/08/2007 # 2.18.3
at: 12/08/2008 # 2.18.5
at: 06/11/2008 # 2.18.6
##################################################
# 3.0 filled bar                                 #
##################################################
bar:3.0 width:35 from:09/05/2007 till:31/01/2010 color:col3.0 mark:(line,col3.0)
##################################################
# 3.0 line & text for first version every year   #
##################################################
bar:3.0 mark:(line,col2.0-l1) align:center fontsize:S
at: 09/05/2007 text:"3.0" shift:(0,-15)
at: 08/01/2008 text:"3.0.3"
at: 02/02/2009 text:"3.0.7"
at: 31/01/2010 text:"3.0.11" shift:(0,5)
##################################################
# 3.0 line for all other versions                #
##################################################
bar:3.0 mark:(line,col2.0-l2)
at: 23/08/2007 # 3.0.1
at: 18/09/2007 # 3.0.2
at: 04/05/2008 # 3.0.4
at: 12/08/2008 # 3.0.5
at: 06/11/2008 # 3.0.6
at: 03/02/2009 # 3.0.8
at: 11/09/2009 # 3.0.9
at: 05/11/2009 # 3.0.10
##################################################
# 3.2 filled bar                                 #
##################################################
bar:3.2 width:35 from:29/11/2008 till:24/01/2011 color:col3.2 mark:(line,col3.2)
##################################################
# 3.2 line & text for first version every year   #
##################################################
bar:3.2 mark:(line,col2.0-l1) align:center fontsize:S
at: 29/11/2008 text:"3.2" shift:(0,-15)
at: 02/02/2009 text:"3.2.1"
at: 31/01/2010 text:"3.2.6"
at: 24/01/2011 text:"3.2.10" shift:(0,5)
##################################################
# 3.2 line for all other versions                #
##################################################
bar:3.2 mark:(line,col2.0-l2)
at: 03/02/2009 # 3.2.2
at: 30/03/2009 # 3.2.3
at: 08/07/2009 # 3.2.4
at: 11/09/2009 # 3.2.5
at: 24/06/2010 # 3.2.7
at: 05/08/2010 # 3.2.8
at: 02/11/2010 # 3.2.9
##################################################
# 3.4 filled bar                                 #
##################################################
bar:3.4 width:35 from:28/07/2009 till:31/01/2012 color:col3.4 mark:(line,col3.4)
##################################################
# 3.4 line & text for first version every year   #
##################################################
bar:3.4 mark:(line,col2.0-l1) align:center fontsize:S
at: 28/07/2009 text:"3.4" shift:(0,-15)
at: 31/01/2010 text:"3.4.5"
at: 24/01/2011 text:"3.4.10"
at: 31/01/2012 text:"3.4.14" shift:(0,5)
##################################################
# 3.4 line for all other versions                #
##################################################
bar:3.4 mark:(line,col2.0-l2)
at: 01/08/2009 # 3.4.1
at: 11/09/2009 # 3.4.2
at: 05/11/2009 # 3.4.3
at: 18/11/2009 # 3.4.4
at: 08/03/2010 # 3.4.6
at: 24/06/2010 # 3.4.7
at: 05/08/2010 # 3.4.8
at: 02/11/2010 # 3.4.9
at: 27/04/2011 # 3.4.11
at: 04/08/2011 # 3.4.12
at: 28/12/2011 # 3.4.13
##################################################
# 3.6 filled bar                                 #
##################################################
bar:3.6 width:35 from:13/04/2010 till:24/05/2013 color:col3.6 mark:(line,col3.6)
##################################################
# 3.6 line & text for first version every year   #
##################################################
bar:3.6 mark:(line,col2.0-l1) align:center fontsize:S
at: 13/04/2010 text:"3.6" shift:(0,-15)
at: 24/01/2011 text:"3.6.4"
at: 31/01/2012 text:"3.6.8"
at: 31/01/2013 text:"3.6.13"
##################################################
# 3.6 line for all other versions                #
##################################################
bar:3.6 mark:(line,col2.0-l2)
at: 24/06/2010 # 3.6.1
at: 05/08/2010 # 3.6.2
at: 02/11/2010 # 3.6.3
at: 27/04/2011 # 3.6.5
at: 04/08/2011 # 3.6.6
at: 28/12/2011 # 3.6.7
at: 18/04/2012 # 3.6.9
at: 26/07/2012 # 3.6.10
at: 30/08/2012 # 3.6.11
at: 19/02/2013 # 3.6.12
##################################################
# 4.0 filled bar                                 #
##################################################
bar:4.0 width:35 from:15/02/2011 till:07/07/2015 color:col4.0 mark:(line,col4.0)
##################################################
# 4.0 line & text for first version every year   #
##################################################
bar:4.0 mark:(line,col2.0-l1)
at: 15/02/2011 text:"4.0" shift:(0,-15) # 4.0
at: 31/01/2012 text:"4.0.4"
at: 19/02/2013 text:"4.0.10"
at: 17/04/2014 text:"4.0.12"
at: 21/01/2015 text:"4.0.16"
##################################################
# 4.0 line for all other versions                #
##################################################
bar:4.0 mark:(line,col2.0-l2)
at: 27/04/2011 # 4.0.1
at: 04/08/2011 # 4.0.2
at: 28/12/2011 # 4.0.3
at: 22/02/2012 # 4.0.5
at: 18/04/2012 # 4.0.6
at: 26/07/2012 # 4.0.7
at: 30/08/2012 # 4.0.8
at: 13/11/2012 # 4.0.9
at: 16/10/2013 # 4.0.11
at: 18/04/2014 # 4.0.13
at: 24/07/2014 # 4.0.14
at: 06/10/2014 # 4.0.15
at: 27/01/2015 # 4.0.17
at: 15/04/2015 # 4.0.18
##################################################
# 4.2 filled bar                                 #
##################################################
bar:4.2 width:35 from:22/02/2012 till:22/12/2015 color:col4.2 mark:(line,col4.2)
##################################################
# 4.2 line & text for first version every year   #
##################################################
bar:4.2 mark:(line,col2.0-l1)
at: 22/02/2012 text:"4.2" shift:(0,-15) # 4.2
at: 19/02/2013 text:"4.2.5"
at: 17/04/2014 text:"4.2.8"
at: 21/01/2015 text:"4.2.12"
##################################################
# 4.2 line for all other versions                #
##################################################
bar:4.2 mark:(line,col2.0-l2)
at: 18/04/2012 # 4.2.1
at: 26/07/2012 # 4.2.2
at: 30/08/2012 # 4.2.3
at: 13/11/2012 # 4.2.4
at: 24/05/2013 # 4.2.6
at: 16/10/2013 # 4.2.7
at: 18/04/2014 # 4.2.9
at: 24/07/2014 # 4.2.10
at: 06/10/2014 # 4.2.11
at: 27/01/2015 # 4.2.13
at: 15/04/2015 # 4.2.14
at: 10/09/2015 # 4.2.15
at: 22/12/2015 # 4.2.16
##################################################
# 4.4 filled bar                                 #
##################################################
bar:4.4 width:35 from:24/05/2013 till:$now color:col4.4 mark:(line,col4.4)
##################################################
# 4.4 line & text for first version every year   #
##################################################
bar:4.4 mark:(line,col2.0-l1)
at: 24/05/2013 text:"4.4" shift:(0,-15)
at: 27/01/2014 text:"4.4.2"
at: 21/01/2015 text:"4.4.7"
at: 16/05/2016 text:"4.4.12"
at: 16/02/2018 text:"4.4.13"
##################################################
# 4.4 line for all other versions                #
##################################################
bar:4.4 mark:(line,col2.0-l2)
at: 16/10/2013 # 4.4.1
at: 17/04/2014 # 4.4.3
at: 18/04/2014 # 4.4.4
at: 24/07/2014 # 4.4.5
at: 06/10/2014 # 4.4.6
at: 27/01/2015 # 4.4.8
at: 15/04/2015 # 4.4.9
at: 10/09/2015 # 4.4.10
at: 22/12/2015 # 4.4.11
##################################################
# 5.0 filled bar                                 #
##################################################
bar:5.0 width:35 from:07/07/2015 till:$now color:col5.0 mark:(line,col5.0)
##################################################
# 5.0 line & text for first version every year   #
##################################################
bar:5.0 mark:(line,col2.0-l1) align:center fontsize:S
at: 07/07/2015 text:"5.0" shift:(0,-15)
at: 16/05/2016 text:"5.0.3"
at: 16/02/2018 text:"5.0.4"
at: 30/01/2019 text:"5.0.5"
##################################################
# 5.0 line for all other versions                #
##################################################
bar:5.0 mark:(line,col2.0-l2)
at: 10/09/2015 # 5.0.1
at: 22/12/2015 # 5.0.2
at: 09/02/2019 # 5.0.6
TextData =
fontsize:S
textcolor:lighttext
pos:($warning, 80)
text:Updated on $now.

**Yêu cầu**
Yêu cầu hệ thống của Bugzilla bao gồm:- Một hệ quản trị cơ sở dữ liệu tương thích- Một bản phát hành phù hợp của Perl 5- Các modules Perl tương ứng- Một web server tương thích- Một hệ thống truyền tải thư điện tử, hoặc bất kỳ server SMTP nào
Hiện tại các hệ sơ sở dữ liệu được hỗ trợ bao gồm MySQL, PostgreSQL, Oracle, và SQLite. Bugzilla thường được cài đặt trên Linux dùng Apache HTTP Server, nhưng bất kỳ web server hỗ trợ CGI như Lighttpd, Hiawatha, Cherokee đều có thể dùng. Quá trình cài đặt của Bugzilla được thực hiện bằng dòng lệnh và chạy qua một loạt các bước trong đó các yêu cầu hệ thống và tương thích phần mềm được kiểm tra.

**Thiết kế**
Vòng đời của một Bugzilla bug
Mặc dù tiềm năng tồn tại trong mã để biến Bugzilla thành hệ thống tickets hỗ trợ kỹ thuật, công cụ quản lý tác vụ hoặc công cụ quản lý dự án, các nhà phát triển của Bugzilla đã chọn tập trung vào nhiệm vụ thiết kế hệ thống để theo dõi lỗi phần mềm. Yêu cầu thiết kế bắt buộc bao gồm:- Khả năng chạy trên các công cụ nguồn mở có sẵn miễn phí. Trong khi Bugzilla phát triển bao gồm các hỗ trợ cơ sở dữ liệu, công cụ và hệ điều hành thương mại.- Việc duy trì tốc độ và hiệu quả bằng mọi giá. Một trong những điểm thu hút chính của Bugzilla đối với các nhà phát triển là triển khai nhẹ và tốc độ, do đó, các lời gọi vào cơ sở dữ liệu được giảm thiểu bất cứ khi nào có thể, việc tìm nạp dữ liệu được giữ càng nhẹ càng tốt và tránh tạo ra HTML nặng.- Tickets. Chẳng hạn, Mozilla.org cũng sử dụng nó để theo dõi các yêu cầu tính năng. Trong trường hợp này, các mục (được gọi là lỗi) có thể được gửi bởi bất kỳ ai và sẽ được chỉ định cho một nhà phát triển cụ thể. Cập nhật trạng thái khác nhau cho từng lỗi được cho phép, cùng với ghi chú người dùng và ví dụ lỗi.
Trong thực tế, hầu hết các dự án Bugzilla đều cho phép công chúng gửi các lỗi bug, chẳng hạn như cơ sở dữ liệu lỗi Bugzilla cho chính Bugzilla, gán tất cả các lỗi cho một gatekeeper, có nhiệm vụ là phân công trách nhiệm và mức độ ưu tiên.

**Zarro Boogs**
Theo thiết kế, Bugzilla được lập trình để trả về chuỗi "zarro boogs found" thay vì "0 bugs found" khi không tìm thấy lỗi. "Zarro Boogs" là một tuyên bố tổng hợp về bản chất của gỡ lỗi phần mềm. Các hệ thống theo dõi lỗi như Bugzilla dễ dàng mô tả có bao nhiêu lỗi đã biết là nổi bật. Phản hồi "zarro boogs", được dự định là một tuyên bố lỗi (một lỗi chính tả của "zero bugs"), ngụ ý rằng ngay cả khi không có lỗi nào được tìm thấy, phần mềm vẫn có khả năng chứa các lỗi chưa được xác định.
Nhận xét sau đây được cung cấp trong mã nguồn Bugzilla cho các nhà phát triển có thể bị nhầm lẫn bởi hành vi này:
 Zarro Boogs Found
 Đây chỉ là một cách ngớ ngẩn để nói rằng không có lỗi nào được tìm thấy phù hợp với truy vấn của bạn. Khi được yêu cầu giải thích thông điệp này, Terry Weissman (một nhà phát triển Bugzilla) đã nói như sau:
 Tôi đã được yêu cầu giải thích điều này... quay trở lại khi Netscape phát hành phiên bản 4.0 của trình duyệt, chúng tôi đã có một bữa tiệc phát hành. Đương nhiên, đã có một nỗ lực lớn để thử và sửa mọi lỗi đã biết trước khi phát hành. Đương nhiên, điều đó đã không thực sự xảy ra. (Điều này không phải là duy nhất đối với Netscape hoặc 4.0; điều tương tự cũng xảy ra với mọi dự án phần mềm tôi từng thấy.) Dù sao, tại bữa tiệc phát hành, áo phông đã được trao đi có nội dung "Netscape 4.0: Zarro Boogs". Cũng giống như phần mềm, áo phông không có lỗi. Uh-huh. Vì vậy, khi bạn truy vấn danh sách các lỗi và không có kết quả, bạn có thể coi đây là một lời nhắc nhở thân thiện. Tất nhiên * có những lỗi phù hợp với truy vấn của bạn, chúng chỉ chưa có trong hệ thống lỗi...
 — Terry Weissman
 Trích The Bugzilla Guide – 2.16.10 Release: Glossary

**WONTFIX**
WONTFIX được sử dụng làm nhãn cho các vấn đề trong Bugzilla và các hệ thống khác. Nó chỉ ra rằng một vấn đề đã được xác minh sẽ không được giải quyết vì những lý do có thể bao gồm như sửa chữa sẽ quá tốn kém, phức tạp hoặc rủi ro.

**Chú thích**

**Liên kết ngoài**
 www.bugzilla.org
** BugzillaProject
Thể loại:Mozilla
Thể loại:Phần mềm thập niên 1990
Thể loại:Phần mềm nguồn mở