We started using TFS 2013 as bug tracker some time ago (about 3 months). Before this we used TFS only as source control (bug tracking was performed in another software). For now we have developed some processes. We would greatly appreciate any comments, that would help us to understand, whether this processes are right, or not. So, here they are:
General info:
This is how we use TFS:
Here goes work process description for Bug:
-->QA (or dev) creates a bug (State: New)
-->QA (or dev) assigns this bug to some dev (State: Approved)
-->When dev starts to fix a bug, he does the following:
---->changes state of bug to Committed
---->creates child task and changes its state to InProgress
-->When dev commits some code, that should fix the bug, he bounds checkin to task (created on previous step)
-->QA understands, that bug is fixed and ready for testing, when bug is in Committed state and EACH child task is in Done state
-->QA tests fixing of bug:
---->if bug is not fixed he changes state of bug to Approved
---->if bug is fixed he changes state of bug to Done
This process looks not bad, and somehow works. But there is a problem with standalone tasks, which is created for improvements and new features.
And here goes process description for standalone Task:
-->QA (or dev) creates a task (State: ToDo)
-->QA (or dev) assigns this task to some dev (State: ToDo)
-->When dev starts working on this task, he changes its state to InProgress
-->When dev has finished working on task, he changes its state to Done
-->QA tests this task:
---->if new features work fine ?
---->if new features work with errors ?
Here is the main problem: how can QA mark Task as passed or not passed the tests? How we resolved it for now: QA's marks tested tasks with tag "Closed", if all is ok, and creates child bugs for task if there are some errors. But working with tags this way seems not to be good.
EDIT One more question: Which state of Bug/PBI is most suitable for state, when bug was assigned to developer, but he did not started working on this bug yet?
Any comments and suggestions will be greatly appreciated.
You are not using the Scrum template as intended.
The typical approach is to use Product Backlog Items to represent features, and child Tasks to represent the work necessary for PBI's or Bugs.
Teams will often have one (or more) tasks that represent the testing work that needs to be performed for each PBI/Bug. Then you can track if testing is done or not by looking at the status of the tasks.