.. sectnum:: :prefix: 5. :start: 1 .. footer:: \- ###Page### - ================= 5. Issue Tracking ================= :Authors: Fred Vos, Sjoerd Schunselaar :Date: 2009-09-28 J-Trac ++++++ NEEO uses J-Trac for issue tracking. In this software package we keep track of issues (things we must solve) and tasks (things we must build). J-Trac is highly configurable. The description of statuses, fields, roles et cetera is the configuration we've choosen for NEEO. Types of issues +++++++++++++++ We have three types of issues: Issue, Task and Suggestion. Issue A bug (defect) in the software. Task Something that must be built because of the Description Of Work of the NEEO project. Suggestion Possible improvement to the software. We use the term 'issue' for all these types and 'Issue' (with capital 'I') for issues of type Issue (bug, defect). Users and roles +++++++++++++++ The right to change the status of an issue is limited to certain roles. We have the following roles for NEEO: User, Developer, Tester, Manager and Admin. Any user can have more than one role. User Adds issues to the tracking system and can reopen closed issues. Tester Tests if new issues can be reproduced and, if so, confirms these issues. Tests if issues, solved by a Developer, cannot be reproduced anymore in a newer version of the software and closes such issues. For tasks of suggestions, a Tester also verifies if features or components have been built according to the specifications. Developer Solves issues and builds components and features. Manager Decides whether or not a task or suggestion will get built by a Developer and can close issues that other users cannor close. Statuses ++++++++ New issues undergo a series of statuses, from Open, where every issue starts, via other statuses to Closed. Every status change is logged. The status can change to itself, to add a note or to set or change a setting. For most status changes fields, can or must be filled or changed. For each issue, the current status is shown and its history can be viewed. In J-Trac we have the following statuses: Open, Accepted, Testing and Closed. The following graph shows the statuses and which roles can change them. .. image:: ../../resources/images/tracking_statuses.png :align: left The statuses explained: Open New issues or tasks start here. Reopened issues end up here too. Accepted For issues this means that a Tester has confirmed the problem. A Developer can now start to solve the problem. For tasks or suggestions this means that a Manager has accepted the task or suggestion and a Developer can start building the compnent or feature. Testing A Developer has fixed a bug or built a feature or component and the issue waits for a Tester to close the issue. Closed A Tester has confirmed the bug is fixed or that a component or feature has been built according to the specification. A Tester accepts issues and a Manager accepts tasks and suggestions. Normal flow for an Issue (bug) is as follows. A new Issue must first be confirmed by a Tester before a Developer starts fixing it. When the Developer thinks the Issue is fixed, a Tester can verify this and close it. If the Tester cannot verify the bug as fixed, the Isssue gets status Accepted again. For Tasks or Suggestions, a Manager accepts an issue. Then the developer builds or improves some code and sets the status to testing as soon as he or she thinks it is ready. The tester verifies it's okay and if it is, the status is set to closed. There are some bypasses for the Manager and a User can set the status from closed to open if he or she is not happy with the result.