Agile Defect managementFunctional defects vs Regression defects Shirly Ronen-Harel Oct 2010 firstname.lastname@example.org://il.linkedin.com/pub/shirly-ronen-harel/0/653/249
An example of an agile bug management by an agile team/s
Life cycle principles • Defects management is one of Highly important process to manage efficiently and effectively. • Managing and resolving defects in a timely and efficient manner. • Outstanding defects can hold up the release of functionality to the business. • Defect should be related to functionality – not to a module. • Finding Defects Early. • Quality in – fixing and testing early.
Identify two types of defectsFunctional Defect :• Related to a specific user story and found during testing a specific user story . – A fault (Defect) will be traced to this user story . – In this case the fault (Defect) at the moment detected, is already in the iteration backlog , waiting for a decision.Regression defect :• Regression fault : a fault that was found during regression tests with no specific user story related or when a specific user story related is already delivered and close. – In this case it will be an independent regression fault (regression defect) – In this case fault (regression defect) will be added to the backlog as an item with priority and decision , unless it was fixed on the spot when detected.
Functional Defect• Development process: – A defect is a user story child. – It is born from a task testing or user story acceptance, regression, sanity testing
User story Task Task in Defect testing Defect Epic User story User story User story Acceptance tests - scenarios Defect Defect
Managing functional defects During the iteration : • Peering testers with developers; functional Defects are fixed immediately. • For every functional defect detected there should be a decision on fix or approved as open. • In case of ‘check-in’ to a branch fails – defect should be immediately fixed. • No additional code is integrated in cases of failed integration into a branch till the defects are fixed. • Defects fix are high priority against continue to code for a new functionality. • After the team creates a build the team performs sanity tests : Sanity defects – should be fixed immediately. • Code integrated Defects should not be left to the hardening phase. • End of iteration target – zero functional defects (either fixed or approved as open by PO for example : minor bugs). • As a result of acceptance tests, all defects decisions should be closed.
User story Task Fix immediately Task in Defect Test again before testing commit/integration Defect
What is done: User story PO decides: Defect Approve as open Fix before done Fix immediatelyA user story cannot be Done unless all of its bugs are fixed orapproved as open.
• Functional defects are fixed according to User story priority. • And not according to the defects priority between themselves. • Our goal is to finish user stories functionality first. User story User story User story priority 1 priority 2 priority 3 Defect Defect Defect Priority 1 Priority 1 Priority 1First fixed Defect Defect approve as Priority 2 open
Managing Regression defects Should be added to the sprint/ product backlog and prioritized as part of a backlog item. User story 1 User story 2 Regression defect 3 Regression defect 4 User story 5 Regression defect 6 User story 7 User story 8
Defects work flow – regression & customer related: Regression defect detected at customer Reproduced in our site site priority Product/ Regression defect not release reproduced or reproduced backlog as requirements Iteration backlog Regression defect during Customer lab iteration Version release development Production