Difference between revisions of "Bug Triage"

From ADempiere
Jump to: navigation, search
This Wiki is read-only for reference purposes to avoid broken links.
(Explanation of Bug Triage Process: trunk is now a experimental branch)
(Updated to reflect the use of JIRA for issue tracking.)
 
(4 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 +
{{Breadcrumb|Table of Contents|Quality Assurance and Problem Reporting Guidelines|next=Joining the ADempiere Community}}
 +
[[Category:User documentation]]
 +
[[Category:Developer documentation]]
 +
 
Here we document the meaning of the priority levels assigned to reported bugs.
 
Here we document the meaning of the priority levels assigned to reported bugs.
  
 
== Where the bugs are ==
 
== Where the bugs are ==
  
[http://sourceforge.net/tracker/?atid=879332&group_id=176962&func=browse SourceForge Bug Tracker]
+
* [https://adempiere.atlassian.net/secure/Dashboard.jspa JIRA - ADempiere's Issue Tracker]
  
[http://sourceforge.net/tracker/?atid=955896&group_id=176962&func=browse SourceForge UI Tracker]
+
Legacy trackers:
 +
* [http://sourceforge.net/tracker/?atid=879332&group_id=176962&func=browse SourceForge Bug Tracker]
 +
* [http://sourceforge.net/tracker/?atid=955896&group_id=176962&func=browse SourceForge UI Tracker]
  
 
== Explanation of Bug Triage Process ==
 
== Explanation of Bug Triage Process ==
Line 48: Line 54:
 
# If you can not reproduce the error, then close the bug, and say 'Works in latest version'  ;)
 
# If you can not reproduce the error, then close the bug, and say 'Works in latest version'  ;)
  
== How to Prioritize ==
+
== Priority Levels ==
 
+
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 <font color=red>'''9'''</font>
+
*: 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 [http://sourceforge.net/search/index.php?words=group_artifact_id%3A%28879332%29+AND+priority%3A%289%29+AND+status_id%3A%281%29+AND+artifact_group%3A%28%22Core%22%29&group_id=176962&type_of_search=artifact&pmode=0&limit=100&offset=0&sort=open_date&sortdir=desc priority 9 bugs on core].
+
If you are filling out a report, you can assign the priority according to the following guidelines:
  
==Volunteering==
+
* Blocker - Blocks development and/or testing work, production could not run.
===[[Triage December 2007]]===
+
* Critical - Crashes, loss of data, severe memory leak.
===[[Bug_Triage_March_2010|Triage March 2010]]===
+
* Major - Major loss of function.
 +
* Minor - Minor loss of function, or other problem where easy workaround is present.
 +
* Trivial - Cosmetic problem like misspellings or misaligned text.

Latest revision as of 20:54, 28 February 2012

Table of Contents{{#if: Quality Assurance and Problem Reporting Guidelines| | Quality Assurance and Problem Reporting Guidelines }}{{#if: | | [[{{{3}}}]] }}{{#if: | | [[{{{4}}}]] }}{{#if: | | [[{{{5}}}]] }} | Bug Triage{{#if: Joining the ADempiere Community| | Joining the ADempiere Community }} ⇒

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

Where the bugs are

Legacy trackers:

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'  ;)

Priority Levels

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

  • Blocker - Blocks development and/or testing work, production could not run.
  • Critical - Crashes, loss of data, severe memory leak.
  • Major - Major loss of function.
  • Minor - Minor loss of function, or other problem where easy workaround is present.
  • Trivial - Cosmetic problem like misspellings or misaligned text.