Transcript Orangedric

An Introduction to Bugzilla

Software Engineering Laboratory

Aideen NasiriShargh (Aug 10, 2008)

What is a “Bug”!

Unexpected Problem!

Technically, a software defect Where from?

Programmer’s mistake Tired!

Misunderstanding problem definition (user request) Low Quality Software!

Meet the Bug

How a bug is found?

Before Final Release (TESTING!)

Bug is one of the result of testing

Alpha Release Developers inside Beta Release Testers (volunteers)

Let is hurt! (exit(-1))

After Final Release

Don’t let it crash the system! (try {} catch())

A Bug’s Life

A Bug’s LifeCycle

How to report a bug?

Traditionally Manual – see developer in the street and tell him or SMS him when he is at cinema!

Face to face Communication Result: No Recording Official report : ( Email, email group Not formatted, Not traceable, Not referable (lose of the topic in gmail-thread!)

Developer’s unclear Response

Feel uncomfortable, even angry!

Why don ’ t you try to write some codes?

I don ’ t believe you can do better than me.

QA or Tester is trouble maker No one will use my system in this way Can you speak English?

I will response to User directly, no QA

Better Solution: Manage Bugs

Manage, rather than kill!

Why to manage?

Clear communication

Be sure that everything is reported

Remembers issues long after they've been fixed Referable Keeps track of what you need to do

Comments in the bug report record all the reasoning, experimentation, and discussion that went into fixing a bug

Search for bugs

Bugs can be searched by keyword, package, dates, names of the people involved

Users contribution is logged (motivation!)

Meet Bugzilla

A World’s Pick BugManager

Bugzilla!

Web (http) interface (CGI and Perl) Free & open source MySQL back end Used by many major projects Mozilla, Linux kernel, Gentoo, Apache, many others: http://bugzilla.org/installation-list/ bugzilla can also track enhancements, todo items, etc.

What is Bugzilla?

Bugzilla is a “defect tracking system” that allows individuals or groups of developers to keep track of outstanding bugs in their product effectively.

It was developed using free open source tools and is itself free.

Despite being free, Bugzilla has many features its expensive counterparts lack.

Currently in use by Mozilla, Gnome, Open Office, Apache, Eclipse, Red Hat, Nasa, AMD and many more!

More of Bugzilla Users

Free Software Projects

Mozilla: https://bugzilla.mozilla.org/ Linux Kernel: http://bugzilla.kernel.org/ Gnome: http://bugzilla.gnome.org/ KDE: http://bugs.kde.org/ Apache Project: http://issues.apache.org/bugzilla/ Open Office: http://www.openoffice.org/issues/query.cgi

Eclipse: http://bugs.eclipse.org/bugs/

Linux Distributions

Red Hat: https://bugzilla.redhat.com/bugzilla/ Mandriva: http://qa.mandriva.com/ Gentoo: http://bugs.gentoo.org/ TurboLinux: https://bts.turbolinux.co.jp/bugtraq/ Novell: https://bugzilla.novell.com/

Companies

NASA: http://itos.gsfc.nasa.gov/~bugzilla/ Facebook: http://bugs.developers.facebook.com/ Plus Akamai, Nokia, The New York Times, Yahoo! and many more...

What does Bugzilla do?

Track bugs and code changes.

Communication with teammates.

Submit and review patches.

Manage quality assurance.

“Bugzilla can help you get a handle on the software development process. Successful projects often are the result of successful organization and communication. Bugzilla is a powerful tool that will help your team get organized and communicate effectively.”

What sorts of things can get filed as bugs?

Broken code: a traditional bug feature requests redesign/rearchitecting requests JavaNLP todo items your own personal todo items (for things you don't mind other people seeing)

Features

Advanced Search Capabilities

- New users can use a simple Google-like search for bugs while more advanced users can filter searched for very specific queries.

Email Notifications

- Users can choose to be notified by email about any changes made to any bugs in bugzilla.

File/Modify Bugs By Email

- Users can send Bugzilla an email that will create a new bug, or will modify an existing bug.

Time Tracking

- Users can display the time they think they will need to fix a bug, time spent on a bug, and deadline to fix the bug.

Features (continued)

Strong Security

- Bugzilla runs under Perl's "taint" mode to prevent SQL Injection, and has a very careful system in place to prevent Cross-Site Scripting.

Customization

- Everything in Bugzilla is done using templates, from emails to the user interface. These templates are written in HTML, CSS, and Java Script so they are easy to edit.

Localization

- Depending on the browser and language a user is connecting to Bugzilla from, they will be served in their language. This is great for global open source projects.

Bugzilla counts features

For Users

Advanced Search Capabilities

For Administrators

Excellent Security Email Notifications Controlled By User Preferences Bug Lists in Multiple Formats (Atom, iCal, etc.) Scheduled Reports (Daily, Weekly, Hourly, etc.) by Email Reports and Charts File/Modify Bugs By Email Time Tracking Request System Private Attachments and Comments Automatic Username Completion or Drop Down User Lists Patch Viewer "Watch" Other Users Move Bugs Between Installs Save and Share Searches Highly Customizable Custom Fields Full Unicode Support Localization mod_perl Support for Excellent Performance Webservices (XML-RPC) Interface Control Bug Visibility/Editing with Groups Impersonate Users Multiple Authentication Methods Support for Multiple Database Engines Sanity Check

Is Bugzilla better than SourceForge.Net Trackers?

SourceForge.Net is often slow Bugzilla on our own server offers: More customization More control of database Ability to make corrections Many other benefits

Bugzilla and CVS

Cross-reference bugs with cvs log entries In the bug: What changes were made to the source code to fix this bug?

In the CVS log: Why was this change made?

Reference bug number (and summary) in the CVS log Paste the CVS revision list into the bug comments

Report a Bug!

A Bugs Life by Bugzilla 3.0

A Bugs Life by Bugzilla 3.0

NEW ASSIGNED (ACCEPTED) Dev. Accept bug Dev. Lead assigned to some Dev.

RESOLVED FIXED INVALID WONTFIX LATER REMIND DUPLICATE WORKFORME VERIFIED

A Bugs Life by Bugzilla 3.0

FIXED

A fix for this bug is checked into the tree and tested.

INVALID

The problem described is not a bug

WONTFIX

The problem described is a bug which will never be fixed.

LATER

The problem described is a bug which will not be fixed in this version of the product.

A Bugs Life by Bugzilla 3.0

REMIND

The problem described is a bug which will probably not be fixed in this version of the product, but might still be.

DUPLICATE

The problem is a duplicate of an existing bug. Marking a bug duplicate requires the bug# of the duplicating bug and will at least put that bug number in the description field.

WORKSFORME

All attempts at reproducing this bug were futile, reading the code produces no clues as to why this behavior would occur. If more information appears later, please re-assign the bug, for now, file it.

Severity: impact of a bug

Blocker

Blocks development and/or testing work

Critical (S2 fatal error)

crashes, loss of data, severe memory leak

Major (S3 error)

major loss of function

Minor (S4 Warning)

minor loss of function, or other problem where easy workaround is present

Trivial (S5 Light Warning)

cosmetic problem like misspelled words or misaligned text

Enhancement (S6 it’s better if…)

Request for enhancement

An Example Bug Page

Any Question?

Thanks for your attention!