Difference between revisions of "Bug Triage"

From ADempiere
Jump to: navigation, search
This Wiki is read-only for reference purposes to avoid broken links.
(summary of options for tables)
(Explanation of Bug Triage Process: trunk is now a experimental branch)
Line 11: Line 11:
 
Bug Triage is the process of reviewing a reported bug.
 
Bug Triage is the process of reviewing a reported bug.
  
# '''Try to Reproduce''': You try to reproduce the bug on the latest trunk.<br>
+
# '''Try to Reproduce''': You try to reproduce the bug on the latest release repository.<br>
 
#: For example you can try to reproduce the bug on the test site http://www.testadempiere.com/webui.<br>
 
#: For example you can try to reproduce the bug on the test site http://www.testadempiere.com/webui.<br>
 
#: As a result of your trial to reproduce one of these three things can happen:
 
#: As a result of your trial to reproduce one of these three things can happen:
Line 22: Line 22:
 
###: When the user that opened the tracker add a comment the status is changed back to Open automatically.
 
###: When the user that opened the tracker add a comment the status is changed back to Open automatically.
 
## '''Bug cannot be reproduced''':
 
## '''Bug cannot be reproduced''':
##: When you find the bug is clearly explained but you cannot reproduce it in current trunk then it's recommended that you:
+
##: When you find the bug is clearly explained but you cannot reproduce it in current release repository then it's recommended that you:
 
### Change resolution to Works for me
 
### Change resolution to Works for me
 
### Add a comment describing the steps you followed and stating that you could not reproduce the bug (possibly is an outdated bug, or reported for an old version)
 
### Add a comment describing the steps you followed and stating that you could not reproduce the bug (possibly is an outdated bug, or reported for an old version)
 
### Change status to Pending
 
### Change status to Pending
## '''Bug is reproducible in trunk''':
+
## '''Bug is reproducible in release repository''':
 
##: You find the bug is valid, so it's recommended that you:
 
##: You find the bug is valid, so it's recommended that you:
 
### Change resolution to None.  Or change the resolution to Remind in case the tracker has a proposed patch or solution.
 
### Change resolution to None.  Or change the resolution to Remind in case the tracker has a proposed patch or solution.

Revision as of 09:37, 5 March 2010

Here we document the meaning of the priority levels assigned to reported bugs.

Where the bugs are

SourceForge Bug Tracker

SourceForge UI Tracker

Explanation of Bug Triage Process

Bug Triage is the process of reviewing a reported bug.

  1. Try to Reproduce: You try to reproduce the bug on the latest release repository.
    For example you can try to reproduce the bug on the test site http://www.testadempiere.com/webui.
    As a result of your trial to reproduce one of these three things can happen:
    1. Bug is unclear:
      You can find that redaction of the bug is not clear enough to allow research of the problem, in this case it's recommended that you:
      1. Change resolution to Invalid
      2. Add a comment asking for better explanation and steps to reproduce
      3. Change status to Pending
        Note that Pending status will change to Closed if the user doesn't add comments in 14 days (configurable in sourceforge) or somebody else change the status back to Open.
        When the user that opened the tracker add a comment the status is changed back to Open automatically.
    2. Bug cannot be reproduced:
      When you find the bug is clearly explained but you cannot reproduce it in current release repository then it's recommended that you:
      1. Change resolution to Works for me
      2. Add a comment describing the steps you followed and stating that you could not reproduce the bug (possibly is an outdated bug, or reported for an old version)
      3. Change status to Pending
    3. Bug is reproducible in release repository:
      You find the bug is valid, so it's recommended that you:
      1. Change resolution to None. Or change the resolution to Remind in case the tracker has a proposed patch or solution.
      2. Leave status in Open
      3. Try to assign proper category in case it's not assigned
      4. Add a comment like "reproduced by _name_of_triager_". It's also recommended to add steps to reproduce when the tracker doesn't have them.
      5. Assign priority according to the table described below
      6. Assign group according to the table described below
        Please note that assigning correct priority and group are the MOST IMPORTANT steps of this process. With correctly triaged bugs we can plan better the stabilization of releases.

Helping with Triage

  1. Anyone can help. It is a matter of looking at bug reports, trying to reproduce in the daily build, then setting the priority of the bug.
  2. Sign up to review a small section of bug reports, at the latest link underneath the heading Volunteering below.
  3. Get the latest code/db.
    1. use the ready-to-run NX client at testadempiere.com (hosted by Idalica)
    2. or use the ready-to-run zkwebui client at testadempiere.com (hosted by Idalica)
    3. or download the daily adempiere binary from testadempiere.com
    4. or download and build the sources yourself, and apply all the latest migration scripts.
  4. If you can reproduce the bug in the latest build, set the priorities as noted below.
  5. If there is not enough information to reproduce, then you can ask for more details.
  6. If you can not reproduce the error, then close the bug, and say 'Works in latest version'  ;)

How to Prioritize

The Project Management Committee has established guidelines for using the priority field in the SF bug tracker. This was discussed in the PMC meeting of 03/06/2007, the notes are here: CC_Meeting_Full_20070306

If you are filling out a report, you can assign priority and group according to the following guidelines:

Resolution

  • Remind - In some cases, there is already a patch or code snippet in the bug report that has not yet been applied. In these cases, set the Resolution to "Remind" and these can be looked at first on a bug day.

Priority

Priority must be assigned to 1, 3, 7 or 9.

  • Priority 9
    System stopper
    Problems leading to data corruption
    Presentation of wrong data to the user
    Please note that even if the bug is not in core, if it corrupts data or show corrupted data, it must be prioritized as 9
  • Priority 7
    Security issues
    This priority is intended exclusively to mark security issues
  • Priority 5
    Not prioritized
    This is the default priority assigned to trackers by sourceforge. Meaning the tracker has not been triaged or prioritized.
  • Priority 3
    Problems with workarounds
    Performance problems (unless the performance is so slow that it becomes a system stopper)
  • Priority 1
    Presentation problems (unless it's presenting wrong data to the user)
    for example, documentation problems
  • Please don't assign even priorities (2, 4, 6 or 8)

Group

Group can be assigned to Core, Module specific, Report or Beta

It's very important also to assign the group for the bug:

  • Core
    If the bug is related to a core functionality, like:
    • Application Dictionary
    • Security
    • Workflows
    • Core definition (Client, Organization, Business Partners, Products, etc)
    • Quote-to-Invoice (Sales)
    • Requisition-to-Invoice (Procurement)
    • Open Items
    • Material Management
    • Accounting and Financial Reporting
    • Costing (standard and average)
  • Module specific
    If the bug is related to a non-core specific module of functionality
    • Requests
    • Dashboard
    • Web Store
  • Report
    If the bug is related to presentation or reports
  • Beta
    If the bug is related to a beta functionality
    At this moment (march/2010) beta functionalities in Adempiere are:
    • Fixed Assets
    • Project Management
    • Replication
    • Manufacturing
    • Payroll
    • Collaboration (Content Management)
    • Knowledge Base
    • Market Place
    • Other costing methods than standard and average (like FIFO, LIFO, etc)
    • functionalities explicitly marked as beta
    • other functionalities can be considered beta when they're recently implemented

Release

From time to time, the bugs will be triaged to re-prioritize them according to these standards.

Priority and group are important, because we will not announce a stable release while there are known priority 9 bugs on core.

Volunteering

Triage December 2007

Triage March 2010