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 software development and test automation 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 User Story 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