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.

Bugzilla
Thiết kế bởiTerry Weissman
Phát triển bởiMozilla Foundation
Phát hành lần đầu26 tháng 8 năm 1998; 25 năm trước (1998-08-26)[1]
Phiên bản ổn định
Bản mẫu:Latest stable software release/Bugzilla
Kho mã nguồn
Viết bằngPerl
Hệ điều hànhĐa nền tảng
Ngôn ngữ có sẵnĐa ngôn ngữ
Thể loạiHệ thống theo dõi lỗi
Giấy phépMozilla Public License
Websitewww.bugzilla.org
Trạng tháiĐang phát triển

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,[2] GNOME, KDE, Apache, Red Hat, EclipseLibreOffice.[3] Nó cũng là tự sử dụng chính mình.[4]

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 đó.[5]

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 Tính đến năm 2013.[6]

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:[7]

Yêu cầu

Yêu cầu hệ thống của Bugzilla bao gồm:

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:[8]

  • 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.[9] "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",[10] đượ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[11]

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.[12] 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.[13][14]

Chú thích

Liên kết ngoài