Agile Defect management
Functional defects vs Regression defects

              Shirly Ronen-Harel
                   Oct 2010
                shirly@agilesparks.com

http://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 defects

Functional 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 immediately




A user story cannot be 'Done' unless all of its bugs are fixed or
approved 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 1
First 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

Shirly Ronen - Agile defect management - Functional Defects versus Regression Defects

  • 1.
    Agile Defect management Functionaldefects vs Regression defects Shirly Ronen-Harel Oct 2010 shirly@agilesparks.com http://il.linkedin.com/pub/shirly-ronen-harel/0/653/249
  • 2.
    An example ofan agile bug management by an agile team/s
  • 3.
    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.
  • 4.
    Identify two typesof defects Functional 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.
  • 5.
    Functional Defect • Developmentprocess: – A defect is a user story child. – It is born from a task testing or user story acceptance, regression, sanity testing
  • 6.
    User story Task Task in Defect testing Defect Epic User story User story User story Acceptance tests - scenarios Defect Defect
  • 7.
    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.
  • 8.
    User story Task Fix immediately Task in Defect Test again before testing commit/integration Defect
  • 9.
    What is done: User story PO decides: Defect Approve as open Fix before done Fix immediately A user story cannot be 'Done' unless all of its bugs are fixed or approved as open.
  • 10.
    • Functional defectsare 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 1 First fixed Defect Defect approve as Priority 2 open
  • 11.
    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
  • 12.
    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