Bug lifecycle

Τα states του lifecycle ενός Bug που χρησιμοποιούμε στo testing & development.

To lifecycle ενός Bug item καθορίζεται απο το State property.

Which state should I use?

Όπως περιγράψαμε στην προηγούμενη, όταν ο tester δημιουργήσει ένα Bug ως default state τίθεται το Active. Στο testing process μας χρησιμοποιούμε συνολικά τέσσερα Bug states.

Αναλυτικά:

  1. Ready For Deployment state *

Active state

Το default state όταν ο tester δημιουργεί ένα Bug. Ως Active χαρακτηρίζεται ένα bug το οποίο έχει γίνει accept από τον Solution Manager και είναι σε διαδικασία επίλυσης locally από το development team. O SM αναλαμβάνει να κάνει assign το Bug στο κατάλληλο engineer για την επίλυσή του.

Στο Azure Boards το default state ενός Bug είναι το New και για να γίνει Active απαιτείται το accept απο τον Solution Manager. Στα projects μας η διαδικασία του bug acceptance παραλείπεται, για αυτό τα bugs χαρακτηρίζονται αυτόματα ως Active με χρήση custom Working Item rule.

Ready For Deployment state

Εφόσον το development team έχει επιλύσει το Βug locally το επόμενο βήμα είναι το deployment στο testing enviroment. Υπάρχουν 2 περιπτώσεις αναλόγως του deployment flow που χρησιμοποιείται:

Continuous Delivery supported (deployment via CI/CD)

Αν το project υποστηρίζει CI/CD το state Ready For Deployment παραλείπεται. Σε αυτήν την περίπτωση το Bug χαρακτηρίζεται αυτόματα ως Resolved μέσα απο την Pull request διαδικασία. Βλέπετε ενότητα Set Resolved in Pull request .

Manually deployment

Αν το deployment πραγματοποιείται manually, ο dev engineer όταν ολοκληρώσει την επίλυση του Bug θέτει το state του Bug ως Ready For Deployment και κάνει assign το Bug στον SM. Στοv προκαθορισμό χρόνο του deployment στο test env, ο SM μπορεί να φιλτράρει τα working items με Ready For Deployment state και κατόπιν της ολοκλήρωσης του deployment να τα χαρακτηρίσει ως Resolved statemanually (Δείτε ενότητα Create Queries)

Το Ready For Deployment state αποτελεί custom Working Item state για τις ανάγκες του φιλτραρίσματος των Bugs που έχουν είναι fixed locally.

Resolved state

Ως Resolved χαρακτηρίζεται ένα Bug που έχει γίνει fixed locally & deployed στο test enviroment. Το Βug fix πλέον είναι visible στο test env και έτοιμο για retesting. Εφόσον το state τεθεί σε Resolved , τo working item γίνεται αυτόματα assign στον creator (συνήθως tester) για retesting.

Set Resolved in Pull request

Στα projects που υποστηρίζεται Continuous Integration ο χαρακτηρισμός του Bug ως Resolved μπορεί να γίνει αυτόματα μέσω των Pull Requests.

Υπάρχουν 2 τρόποι να αλλάξουμε το state σε ένα Pull Request και εξαρτώνται απο τον τρόπο που δημιουργήθηκε το branch που περιέχει το fix:

Bug item is linked to branch (branch created via Working Item)

Αν ο developer δημιουργήσει το branch μέσα απο το Development section του Bug item, τότε το Azure προσθέτει αυτόματα το Bug στα linked items του branch.

Create branch via Bug Workiing Item development tools

Στην συνέχεια ο reviewer επιλέγοντας "Complete associated work items after merging" στο Complete του pull request , το Bug χαρακτηρίζεται αυτόματα ως Resolved.

Bug item has no connection to branch (branch created manually)

Στην περίπτωση που το branch έχει δημιουργηθεί manually και δεν είναι linked σε κάποιο Working Item, τότε ο developer όταν δημιουργήσει το pull request πρέπει να ορίσει στο Description τα Bugs θα γίνουν Resolved ακολουθώντας την παρακάτω σύνταξη:

{state value}: #ID

Στο παρακάτω παράδειγμα τα Working Items #300 και #301 θα τεθούν σε Resolved state όταν το pull request γίνει Completed απο τους reviewers.

Change state using Pull request

Το auto assignment του Resolved Bug στον creator αποτελεί custom action που υλοποιείται με χρήση custom Working Item rule.

Closed state

Ως Closed χαρακτηρίζεται ένα Bug όταν έχει γίνει retest και έχει γίνει verified απο τους testers ότι πληροί τα acceptance criteria. Τα Bugs μπορούν να χαρακτηριστούν Closed μόνο απο τους testers ή τον Solution Manager. To Bug δεν θα πρέπει να χαρακτηρίζεται Closed από το development team.

Σε αντίθετη περίπτωση που το Bug δεν πληροί τα acceptance criteria, τότε χαρακτηρίζεται ξανά ως Active και γίνεται assign στον SM για redevelop. Το Active item θα πρέπει να ακολουθήσει τα states του lifecycle απο την αρχή.

Azure Bug lifecycle example: https://learn.microsoft.com/en-us/azure/devops/boards/work-items/guidance/media/alm-pt-scrum-wf-bug.png?view=azure-devops

Azure DevOps documentation

Last updated