Quality Engineering in the DevOps time period. The new way of Testing

Geoffrey van der Tas @Gavdtas DevOps Time Period

Definition of Testing

Old “Independent judgement about the quality of the testobject”

New “Means of getting fast feedback on your product”

2 DevOps Time Period

Waterfall DevOps

SpecsSpecs

FeedbackTest FeedbackTest Design FeedbackTest Code FeedbackTest TestTest FeedbackTest FeedbackTest MaintainMaintain

3 DevOps Time Period

4 DevOps Time Period

From Assurance towards Engineering

“Quality Engineering is the management, development, operation and maintenance of IT systems and enterprise architectures with a high quality standard.” - New Perspectives on Software Quality by Ruth Breu; Annie Kuntzmann-Combelles; Michael Felderer (January–February 2014).

5 QA/ Testing to Quality Engineering

What needs to happen

• Testers becoming Quality Engineers • Quality from the start • Automation, Automation, Automation • Explore to test • The Grand Tour

6 Testers becoming Quality Engineers

7 Testers becoming Quality Engineers

What is changing The Team

Dev Ops Analist

Dev Ops Test Quality Engineer Quality Assistant Agile Test Coach Quality

8 Testers becoming Quality Engineers

At other companies

Quality Engineering at Spotify “The Quality Engineer will help developers and teams cultivate a quality mindset, advocating for quality while assisting engineers with and best practices.”

Quality Assistance at Atlassian “They optimised the process by empowering and educating developers to test their own features to production quality standards.”

9 Testers becoming Quality Engineers

Quality Engineer

• Advocate for quality • Actively coach developers/business • Make testing part of Development Process • Coordinate testing efforts • Maintain test reporting and visualization • Spot opportunities for (Test) Automation

10 Quality from the start

11 Quality from the start

Backlog Items – Sprint Backlog Items

Crap in, Crap out

12 Quality from the start

Tell the story

13 Quality from the start

14 Quality from the start

Techniques

Impact Mapping Mapping

15 Quality Engineering in Scrum

Understanding the big picture

16 Quality from the start

Big Picture to User Stories

Specifications: Spec one Spec two … Acceptance Criteria: Criteria one Criteria two Criteria three …..

17 Quality from the start

Communication

18 Quality from the start

Refinements by examples

19 Quality from the start

Specification By Example User story: As an employee I want to find other employees so I can find more information about employees.

Example ATDD: Search parameter Result Peter Peter Janssen Jan Annie Jansen Jan van Buren Peter Janssen Jans Annie Jansen Peter Janssen Bakkr (geen)

20 Quality from the start

Techniques

21 Quality Engineering in Scrum

Powerful Refinements

Understanding the big picture

22 Quality from the start

ATDD TDD

Failing Acceptance Test Failing Passing test test

Passing Acceptance Test Refactor

23 Quality Engineering in Scrum

Powerful Refinements

Understanding the big picture

Good Development Practices

24 Automation, Automation, Automation

25 Automation, Automation, Automation

Why Automate Automation vs Manual

 Fast  Reliable  Repeatable  Reuseable  Control  Money  Fun

Manual Automation

26 Automation, Automation, Automation

How to approach it

User Interface Slow, Big, Many Dependencies & 10 % High Maintenance

Fast, Bit Bigger, Some 20 % Integration Dependecies, Easy Maintenance ATDD

Fast, Small, Easy Maintenance Unit/Component 70 % TDD

27 Automation, Automation, Automation

What to automate

 Context is key

 Self build vs bought software User Interface  Java, Javascript, C++, C# Employee vs Client facing Integration

Unit/Component

28 Automation, Automation, Automation

Quality goes further then Test Automation

Continuous Delivery Pipeline - Xebia

29 Automation, Automation, Automation

Even further

30 Quality Engineering in Scrum

Powerful Refinements

Understanding the big picture

Good Development Practices Automation

31 Explore to test

32 Explore to test

33 Explore to test

Testing helps Checks

https://findingdeefex.com/2016/05/20/the-testing-checkingsynergy/ 34 Explore to test

Exploratory Testing

“Exploratory Testing is a style of testing in which you explore the software while simultaneously designing and executing tests, using feedback from the last test to inform the next.” – Elisabeth Hendrickson

• Timeboxed • Charters • Debrief • In Pairs

35 Explore to test

Exploratory Testing

Design

Charters Steer Execute Debrief

Learn

36 Explore to test

Release Strategy

Customers

Product Customer Selection

Canaries #Feature Toggles

Pilot

37 Explore to test

Examples

38 Explore to test

Examples

39 Quality Engineering in Scrum

Powerful Refinements

Understanding the big picture

Good Development Practices Automation Explore Explore

40 41 The Grand Tour

About the experience

42 The Grand Tour

Quality Engineering

 Functionality  Other software components  Performance  Infrastructure  Resilience  Servers  Security  Databases  Usability  Monitoring  Accesability  Build pipeline

43 The Grand Tour

Quality Engineering with the customer in mind

44 Quality Engineering in Scrum

Powerful Refinements

Understanding Quality the big picture Engineers Grand Tour

Good Development Practices Automation Explore Explore

45 Quality Engineering Values

Key Principles

 Customer first  Whole team is responsible for quality  Tested = Checked + Explored  Bugs are fixed when they are found  ‘Done’ means fully tested  Quality before new functionality  Collaboration is key for quality

46 How do I get from here to there?

Study and practice, years of it.

47 Geoffrey van der Tas Explorer and Advocate for Quality!

E-mail: [email protected] Twitter: @Gavdtas LinkedIn: https://nl.linkedin.com/in/geoffreyvdtas