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 .

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:

== 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ế ==
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:

== 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.