Difference between revisions of "Bug tracker"

Jump to: navigation, search
(Process for Resolving, Testing, and Closing Bugs)
(redirect edit)
(2 intermediate revisions by 2 users not shown)
Line 1: Line 1:
#redirect [[dev:Tracker introduction]]
Bug tracking is a very important part of a continous quality control process.  Unlike most proprietary software programs, Moodle bug reporting and bug tracking information is open to everyone.  Moodle's bug tracking sytem is called '''Tracker'''. 
If you're a new Tracker user create a user account [http://tracker.moodle.org here].  It is strongly suggested your Tracker username is the same name you use at Moodle.org.  If your Tracker login account doesn't work, try recovering the password. 
"Bugs" not only include software problems with current versions of Moodle, but requests for new features (enhancements), changes in functionality, even constructive criticism of existing features is welcome.
The beauty of open source is that anyone can participate and help to create a better product for all of us to enjoy. In this project, your input is very welcome!
== Tracker Groups and Permissions ==
'''Standard Users''' [groupname=jira-user] - This is the default group.  New user accounts are placed in this group at the time of creation, and users must be a member of this group in order to log into Tracker.  Members of this group can browse bugs, create new bugs, comment on bugs, create attachments, create sub-tasks, create filters, watch bugs, and vote for bugs.  Members of this group can also resolve bugs, which is primarily a way of closing bugs that are no longer relevant (eg duplicates, or logged in error).  Standard Users can configure their Tracker workspace by using the "Configure your Issue Navigator" button.  This feature allows users to view watch & voting lists and to manage preferences, profile, and password.
'''Developers''' [groupname=jira-developer] - Developers can do everything Standard Users can do.  In addition they can clone bugs, close bugs, edit bugs, link bugs, and assign bugs.  Members of this group can also use the Bulk Edit function which allows bulk updated to multiple bugs.
'''Testers''' [groupname=moodle-testers] - Testers can do everything a Developer can do.
== Report a bug ==
#Once you have loged in and are at the [http://tracker.moodle.org Moodle Tracker home page]
#Select "Create New Issue" from the menu under the Moodle Tracker logo
#On Step 1, from the dropdown menu select the "Issue type": Bug, New Feature, Task or Improvement
#On Step 2, you will see a series of dropdown and blank content areas.
##Summary: A headline summary of the problem. Try to make it as precise as possible without making it too long. "It doesn't work" is completely useless. Think about keywords people might type into the search box if looking for this issue, and try to include them.
##Components: Use the Ctrl key with a mouse click to select one or more areas in Moodle.  For example, you might have found an issue with a question that impacts: Lesson, Quiz and Question components
##Select the Version but if it is not listed, put it in the description
##Environment is for Operating Systems and other stuff. See general guidlines below
##Description tells what is the issue.  See general guidelines below for the best description
##Database, if it is not listed put it in environment with its version number
==Process for Resolving, Testing, and Closing Bugs==
#Bugs are assinged by developers or Component Leads.
#After a bug has been fixed, that is to say the code has been modified and checked back into CVS, add appropriate comments and update  status in Tracker to '''Resolved'''.  To do this use the "Resolve Issue" button.  When resolving bugs also idicate what version the change is destined for by selecting the appropriate Moodle version in '''Fix Version/s'''.  The only exception to not moving a bug to Resolved is if a developer believes there is no value in testing the issue, in which case the bug status can be changed to Closed.
#Testers test bugs with Status=Resolved.  Global filters have been created based on upcoming relases (eg Resolved Bugs for 1.7). 
#Select a bug you want to test by changing the assingee to yourself. 
#If the bug passes testing, close the bug using the "Close Issue" button.  It's important to add appropriate '''comments''' describing your testing methods, any issues that were found, etc.
#If the bug fails testing or if you feel the fix is incomplete, '''reopen''' the bug using the "Reopen Issue" button.  Remember to reassign the bug to the developer.
#A release will be deemed ready when all bugs fixed for a particular version have been closed.
== General reporting guidelines ==
The best bug reports contain these elements in the form:
#'''Steps to reproduce'''. That is, a detailed sequence of steps a developer can follow to see the problem.  It is very hard to fix a bug that is not reproducible. If possible, provide a URL so we can see the problem with one click.
#'''What I expected to happen'''. Again, provide as much detail as possible. Your expectation might mean that our instructions need to be improved or our interface should be changed.
#'''What actually happened''' (with detail).
Here is an example of a [http://tracker.moodle.org/browse/MDL-6030 good bug report] in browse view, [http://tracker.moodle.org/browse/MDL-5688 and here is another].
*If you have an error message, or information in your PHP or web server logs, copy and paste it into the bug report. If you can, turn on "debug" in your Admin configuration page and reproduce the problem to get the best possible error message.
*Screen shots are very helpful for some bugs, but please write a textual description of the problem too.
*Make sure we know everything we need to know about your setup including operating system, database, etc. If you run out of room in the environment section, add more detail in the description. The full set of information that might be relevant is:
**Server operating system type and version number
**Web server type and version number
**PHP version number (and whether you are using an accellerator)
**Database type and version number
**Moodle version (there is a dropdown menu on the top of the form, if that does not have what you want, add it in the description)
**Client-side operating system type and version number
**Web browser type and version number
You don't need to give all those details all the time. For example, for a layout rendering problem, you need to give only the client-side OS and browser info, and if it is a server-side problem you only need to describe the setup there. Use your judgement. Here are some examples:
::I see this bug with the latest Moodle HEAD running on PHP5.1.2/Apache 2.2.3 on Linux. My database is Postgres 8.1.
::This rendering problem happens using Internet Explorer 6.0 on Windows XP.
In summary stick with facts and present enough facts so someone else can duplicate the problem.
==What the priority levels mean==
Bugs can be assigned to one of five priority levels. Here is some guidance as to which one to use:
:This bug completely breaks Moodle, and the next release must be considered "blocked" until this is done.
:This bug is causing data loss, serious visible errors for uses, or major parts of Moodle to cease to function.
:Somthing is broken and there is no way round it, although it is not a serious as a Critical bug, we can't live with it for long.
:Something is wrong, but it is possible to live with it for a while, maybe because there is a workaround.
:Something is wrong, and should be fixed eventually when someone has the time, but it is not a big deal to live with it.
==Tracking progress of bugs you have reported==
You will receive email reports of updates to bugs you report.
==Tracking bugs reported by others==
You can monitor, or "watch" bugs reported by others.  To do this, open the bug, then select "Watch it" from the left hand navigation panel.
To add others to the watchlist for your bug, open the bug, select the option "Watching" from the left hand navigation panel.  These people will recevie email notification when updates are made to this bug.
== Developer comments ==
"What’s the hardest thing about a bug report?"  Most of the time fixing the problem is the easy part, the hard part is reproducing the bug.  The developer needs to see how it is broke to be able to fix it.  If they can't reproduce the error you can be sure they won't be able to fix it!
Good bug reports contain as much detail as possible and are specific.  Don't generalise or leap to conclusions.
For example, a bug report that only says "The RSS feed doesn’t support UTF-8" is not helpful. The developer knows that UTF-8 and RSS feeds are compatible.  The developer has no idea of what the person sees and why they reported this bug.  In this case more time and effort needs to be expended to determine the problem.
Consider a bug report which says that the descriptions for the specific RSS feed XYZ@abc shows unrecognisable characters rather than expected characters.
==See also==
*Using Moodle [http://moodle.org/mod/forum/discuss.php?d=43952 How to manipulate Moodle developers] forum discussion
*Here is one [http://en.wikipedia.org/wiki/Software_bug definition of a bug.]
[[Category:Developer tools]]
[[es:Sistema de bugs]]

Latest revision as of 13:15, 15 October 2013