A Whole Team Approach to Testing in Continuous Delivery

A presentation at eXperience Agile 2020 in September 2020 in Lisbon, Portugal by Areti Panou

Slide 1

Slide 1

A Whole Team Approach to Testing in Continuous Delivery XA 2020 Lisa Crispin and Areti Panou @lisacrispin Copyright 2020 Lisa Crispin and Areti Panou @UnremarkableQA

Slide 2

Slide 2

About us Test Automation U Lisa Crispin Lisa@agiletester.ca Helping to build observability at @lisacrispin Areti Panou areti.panou@gmail.com Product Owner of internal tools at @UnremarkableQA

Slide 3

Slide 3

Learning intentions • Get your team engaged to deploy frequently, with • • • • confidence Learn the language of continuous delivery Exercises you can do with your team to shorten feedback loops Ways to build a quality culture We’ll talk and demonstrate. Then live Q&A! @lisacrispin @UnremarkableQA

Slide 4

Slide 4

We’ve encountered a few obstacles… We’ll each share some ideas & materials to get your team talking Write down your questions as we go! Live Q&A follows! Photo by Zé Ferrari Careto on Unsplash

Slide 5

Slide 5

Building quality in @lisacrispin @UnremarkableQA

Slide 6

Slide 6

Whole team ownership of quality @lisacrispin Graphic by Janet Gregory, inspired by Dan Ashby @UnremarkableQA

Slide 7

Slide 7

Share common goals Whole team ownership of quality Build relationships across roles, teams Continuously learn and improve Take advantage of multiple skill sets, perspectives Continuous, holistic testing

Slide 8

Slide 8

Guidelines for continual improvement • Small slices, learning releases • Iterative improvement • Build towards your goal @lisacrispin @UnremarkableQA

Slide 9

Slide 9

Prioritize! • How does it align with the business? • Is it valuable to the customer? • Are the stories small and testable? Note: see resources slide for more on this @lisacrispin @UnremarkableQA

Slide 10

Slide 10

Continuous improvement… Let’s look at some tools, techniques and frameworks that can help @lisacrispin @UnremarkableQA

Slide 11

Slide 11

Infrastructure …… for fast feedback and frequent delivery @lisacrispin @UnremarkableQA

Slide 12

Slide 12

DevOps isn’t only about infrastructure • • • • • • Collaboration Continuous improvement Continuous learning Build quality in Small batches Everyone is responsible © Libby VanderPloeg @lisacrispin @UnremarkableQA

Slide 13

Slide 13

Let’s agree on some common terminology @lisacrispin @UnremarkableQA

Slide 14

Slide 14

Metrics for success – per State of DevOps Survey • Lead time for changes • Re-work slows us down • Shared understanding speeds us up • Change failure rate • Time to restore service (MTTR) • Deployment frequency @lisacrispin @UnremarkableQA

Slide 15

Slide 15

Continuous Integration (CI) Multiple times per day: • Integrate code into a shared repository • All code is integrated into the same branch @lisacrispin @UnremarkableQA

Slide 16

Slide 16

Validating each change • Typically the start of a pipeline • Each check-in can be verified by an automated build with automated regression tests @lisacrispin @UnremarkableQA

Slide 17

Slide 17

Deployment pipeline • • • • Break the build into stages to speed up feedback Early stages can find most problems -> faster feedback Later stages probe more thoroughly Automated deployment pipelines are central to continuous delivery From A Practical Guide to Testing in DevOps, Katrina Clokie @lisacrispin @UnremarkableQA

Slide 18

Slide 18

Continuous Delivery (CD) @lisacrispin @UnremarkableQA

Slide 19

Slide 19

Continuous Deployment (also CD) @lisacrispin @UnremarkableQA

Slide 20

Slide 20

Deployment Pipeline Developer Commit Stage Stage Stage Stage Stage Stage Deployed to Production

Slide 21

Slide 21

Deployment Pipeline Developer Commit Code is merged Stage (master/trunk) Continuous Integration (CI) Stage Stage Stage Stage Deployed to Production

Slide 22

Slide 22

Deployment Pipeline Developer Commit Code is merged Compilation/ unit testing (master/trunk) Create deployment artifact Testing stage 1 Continuous Integration (CI) Continuous Delivery (CD) Testing stage 2 Business approval Deployed to Production

Slide 23

Slide 23

Deployment Pipeline Developer Commit Code is merged Compilation/ unit testing (master/trunk) Create deployment artifact Testing stage 1 Testing stage 2 Continuous Integration (CI) Continuous Delivery (CD) Continuous Deployment (confusingly, this is also CD) Busines s approva l Deployed to Production

Slide 24

Slide 24

Demo: Visualizing your current pipeline @lisacrispin @UnremarkableQA

Slide 25

Slide 25

Try it later with your team Make your own copy of the “Visualize Pipeline Template” from https://tinyurl.com/XA202CD into a folder shared with your team • Together in a video meeting, use the stage cards to create a model of your pipeline • • • • Think about how to shorten feedback loops You don’t have to use all the virtual step cards Create new step cards as needed Discuss! @lisacrispin @UnremarkableQA

Slide 26

Slide 26

So far we’ve talked about: • The whole team approach to testing in CD • Some terminology to help communication • Ideas for visualizing your pipelines • Start conversations to shorten feedback loops Now, Areti will share more ideas to get your team engaged & improving! @lisacrispin @UnremarkableQA

Slide 27

Slide 27

About Areti Tester @lisacrispin Quality Responsible Quality Coach Product Ower @UnremarkableQA

Slide 28

Slide 28

Look into your pipeline steps • Value • Team acceptance • Identify constraints @lisacrispin @UnremarkableQA

Slide 29

Slide 29

Analyze each pipeline step Purpose Alerting Importance Automation Trustworthiness Dependencies Duration Expansions @lisacrispin Maintainability Frequency @UnremarkableQA

Slide 30

Slide 30

Demo: Analyze your pipeline steps @lisacrispin @UnremarkableQA

Slide 31

Slide 31

Try it later with your team • Make a copy of the Analyze a Pipeline Step Exercise in • • • • • https://tinyurl.com/XA202CD into a folder shared with your team Choose a pipeline step you want to discuss as a team. Each team member notes down answers to the questions in each dimension in a virtual sticky note. Everyone puts their answers in the dimensions. Discuss the results gathered in each dimension. Get an overview on the points that the team agrees on and the ones that can be improved. @lisacrispin @UnremarkableQA

Slide 32

Slide 32

Sharing pipeline steps knowledge Identify pipeline steps Visualize all the steps in your deployment pipeline @lisacrispin @UnremarkableQA

Slide 33

Slide 33

Sharing pipeline steps knowledge Identify pipeline steps Visualize all the steps in your deployment pipeline @lisacrispin Discuss pipeline steps Optimize the steps by engaging the knowledge of the team @UnremarkableQA

Slide 34

Slide 34

Sharing pipeline steps knowledge Identify pipeline steps Visualize all the steps in your deployment pipeline @lisacrispin Discuss pipeline steps Optimize the steps by engaging the knowledge of the team Share ownership of pipeline steps At least 2 people know each step equally well @UnremarkableQA

Slide 35

Slide 35

Rinse & Repeat Identify Share @lisacrispin Discuss @UnremarkableQA

Slide 36

Slide 36

“Continuous” without automation Like driving at night without your headlights, it’s possible… but headlights reduce the risk. Automated regression tests are one headlight. Operability – monitoring, observability, testing in prod – is the other. — from Ashley Hunsberger @lisacrispin @UnremarkableQA

Slide 37

Slide 37

DevOps is about building a quality culture @lisacrispin @UnremarkableQA

Slide 38

Slide 38

Build relationships • • • • • @lisacrispin DevOps culture includes all roles Get to know people in and outside of your team Ask for help, offer help Do food! Build trust so you can learn @UnremarkableQA

Slide 39

Slide 39

Show the benefits of engagement in Quality @lisacrispin @UnremarkableQA

Slide 40

Slide 40

Getting management support • • • • @lisacrispin Speak their language – what’s the bottom line for the company? Help them learn why quality matters Help them learn the value of building quality in Make testing activities and their value visible @UnremarkableQA

Slide 41

Slide 41

Building a quality culture • • • • @lisacrispin Culture change is hard! Transforming leadership is needed Trust and psychological safety are prerequisites to high-performing teams Production ownership: the delivery team cares for the product in production Focus on quality, not speed, to go faster in the long run @UnremarkableQA

Slide 42

Slide 42

Resources for more learning ● Testing in DevOps community site, https://testingInDevOps.org ● Agile Testing Condensed, Agile Testing and More Agile Testing, Lisa Crispin and ● ● ● ● ● ● ● @lisacrispin Janet Gregory, https://agiletester.ca Continuous Delivery by Jez Humble and David Farley, https://continuousdelivery.com A Practical Guide to Testing in DevOps by Katrina Clokie Accelerate by Nicole Forsgren, Jez Humble, Gene Kim “Value streams are made of people”, Liz Keogh, (Also see her work on BDD, Cynefin ™ & Real Options) https://lizkeogh.com/value-streams-are-made-ofpeople/ More Fearless Change by MaryLynn Manns and Linda Rising Learn about behavior-driven development, example mapping: https://docs.cucumber.io/bdd/ Trunk-based development, Paul Hammant, https://trunkbaseddevelopment.com/ @UnremarkableQA

Slide 43

Slide 43

Download the exercise templates & more to share with your team! https://tinyurl.com/XA202CD @lisacrispin @UnremarkableQA

Slide 44

Slide 44

Let’s keep the conversation going… @lisacrispin Gratitude to Abby Bangser, Ashley Hunsberger, Elizabeth Zagroba, Janet Gregory for their contributions @UnremarkableQA

Slide 45

Slide 45

Pictures credits • Slide 28 • • • • • • @lisacrispin Slide 29a, Slide 29b, Slide 29c, Slide 29d, Slide 29e, Slide 29f, Slide 29g, Slide 29h, Slide 29i, Slide 29j Slide 32 Slide 33 Slide 34 Slide 38 Slide 39 @UnremarkableQA