SlideShare a Scribd company logo

Making Testability Our Mission Redux

This is a call to action. On our cross functional teams and during our devops transformations we talk about how testing is for the whole team. Quality is everyone's responsibility. How much are we really doing to make this happen? Often we are working on systems that are hard to test for many reasons, but if we simply do more testing, write more automation we are neglecting what should be our main mission, advocating for increasing levels of testability, to truly get everyone involved in testing. We all have stories about how something is difficult to test, often never being tested or certainly left with the tester to figure it out. It doesn't have to be this way. During my talk, I want to introduce a set of principles for testability engineering. A new way to approach our work as testers. These principles will tackle how we make our systems more observable, controllable, how we share knowledge across teams and improve the testability of our dependencies. I believe it is time to create a new focus on testability, as it affects everything we do, what our teams do and beyond into how value is delivered for customers. I want you to take away from the talk: * Why a focus on testability can multiply your effectiveness as a tester * What the principles of testability engineering are and how to advocate for them * How you can make iterative changes to what you do in order to embrace testability New technology and complexity is rendering many software development techniques and paradigms obsolete at an increasing rate. We already exist in a space where an infinite number of tests of an array of different types can be performed. A new mission is needed, one that leverages the varied talents of all kinds of testers and culminates in a new focus on the exponential benefits that testability brings.

1 of 32
Download to read offline
Ash Winter
@northern_tester
https://testingatelier.community
https://diagramindustries.com/blog/
Recognise these?
@northern_tester
Our testing
models are bad
@northern_tester
They barely mention
testability
(And we should all feel bad about it)
(all models are wrong and so on)
Its about time we
made testability our
mission
@northern_tester
Lets drop some truth
bombs
@northern_tester Q449
If its hard to test…
…it won’t get tested
…the tester will test it
…it won’t work
…you will drive your ops
people mad
…your team testing culture will
be a distant dream
@northern_tester

Recommended

Testability Advocacy Canvas
Testability Advocacy CanvasTestability Advocacy Canvas
Testability Advocacy CanvasAsh Winter
 
Testability Sales Pitch
Testability Sales PitchTestability Sales Pitch
Testability Sales PitchAsh Winter
 
Architectural Testability Workshop for Test Academy Barcelona
Architectural Testability Workshop for Test Academy BarcelonaArchitectural Testability Workshop for Test Academy Barcelona
Architectural Testability Workshop for Test Academy BarcelonaAsh Winter
 
Testability Squad Health Check
Testability Squad Health CheckTestability Squad Health Check
Testability Squad Health CheckAsh Winter
 
Testability is Everyone's Responsibility
Testability is Everyone's ResponsibilityTestability is Everyone's Responsibility
Testability is Everyone's ResponsibilityAsh Winter
 
Testers Guide to the Illusions of Unit Testing
Testers Guide to the Illusions of Unit TestingTesters Guide to the Illusions of Unit Testing
Testers Guide to the Illusions of Unit TestingAsh Winter
 
10 P's of Testability
10 P's of Testability10 P's of Testability
10 P's of TestabilityAsh Winter
 
The Wheel of Testing
The Wheel of TestingThe Wheel of Testing
The Wheel of TestingAsh Winter
 

More Related Content

More from Ash Winter

Making testability our mission
Making testability our missionMaking testability our mission
Making testability our missionAsh Winter
 
A Testers Guide to the Myths, Legends and Tales of Unit Testing
A Testers Guide to the Myths, Legends and Tales of Unit TestingA Testers Guide to the Myths, Legends and Tales of Unit Testing
A Testers Guide to the Myths, Legends and Tales of Unit TestingAsh Winter
 
Testing Below the Application
Testing Below the ApplicationTesting Below the Application
Testing Below the ApplicationAsh Winter
 
Shift Testability
Shift TestabilityShift Testability
Shift TestabilityAsh Winter
 
Part of the Pipeline
Part of the PipelinePart of the Pipeline
Part of the PipelineAsh Winter
 
Scroll Based Testing Strategy
Scroll Based Testing StrategyScroll Based Testing Strategy
Scroll Based Testing StrategyAsh Winter
 
Bullseye or The Testing Wheel
Bullseye or The Testing WheelBullseye or The Testing Wheel
Bullseye or The Testing WheelAsh Winter
 
Ash_Winter-DEWT7_V1
Ash_Winter-DEWT7_V1Ash_Winter-DEWT7_V1
Ash_Winter-DEWT7_V1Ash Winter
 
Ash_Winter-Forgotten-ility_V1
Ash_Winter-Forgotten-ility_V1Ash_Winter-Forgotten-ility_V1
Ash_Winter-Forgotten-ility_V1Ash Winter
 
Main Talk v1.1
Main Talk v1.1Main Talk v1.1
Main Talk v1.1Ash Winter
 
Ash Winter - What is testing?
Ash Winter - What is testing?Ash Winter - What is testing?
Ash Winter - What is testing?Ash Winter
 
Turbo Mindmapping Your App
Turbo Mindmapping Your AppTurbo Mindmapping Your App
Turbo Mindmapping Your AppAsh Winter
 
NWEWT_Slides_Ash_Winter_04_2016
NWEWT_Slides_Ash_Winter_04_2016NWEWT_Slides_Ash_Winter_04_2016
NWEWT_Slides_Ash_Winter_04_2016Ash Winter
 
Coaching Model for Unrecognised Internal Models
Coaching Model for Unrecognised Internal ModelsCoaching Model for Unrecognised Internal Models
Coaching Model for Unrecognised Internal ModelsAsh Winter
 
Ash_Winter_Tested_to_Death
Ash_Winter_Tested_to_DeathAsh_Winter_Tested_to_Death
Ash_Winter_Tested_to_DeathAsh Winter
 
Ash_Winter_Testing_Mobile_Apocalypse_Online
Ash_Winter_Testing_Mobile_Apocalypse_OnlineAsh_Winter_Testing_Mobile_Apocalypse_Online
Ash_Winter_Testing_Mobile_Apocalypse_OnlineAsh Winter
 
Critical Thinking for Consultants-External
Critical Thinking for Consultants-ExternalCritical Thinking for Consultants-External
Critical Thinking for Consultants-ExternalAsh Winter
 
Ash Versus Consulting V1 - External
Ash Versus Consulting V1 - ExternalAsh Versus Consulting V1 - External
Ash Versus Consulting V1 - ExternalAsh Winter
 

More from Ash Winter (18)

Making testability our mission
Making testability our missionMaking testability our mission
Making testability our mission
 
A Testers Guide to the Myths, Legends and Tales of Unit Testing
A Testers Guide to the Myths, Legends and Tales of Unit TestingA Testers Guide to the Myths, Legends and Tales of Unit Testing
A Testers Guide to the Myths, Legends and Tales of Unit Testing
 
Testing Below the Application
Testing Below the ApplicationTesting Below the Application
Testing Below the Application
 
Shift Testability
Shift TestabilityShift Testability
Shift Testability
 
Part of the Pipeline
Part of the PipelinePart of the Pipeline
Part of the Pipeline
 
Scroll Based Testing Strategy
Scroll Based Testing StrategyScroll Based Testing Strategy
Scroll Based Testing Strategy
 
Bullseye or The Testing Wheel
Bullseye or The Testing WheelBullseye or The Testing Wheel
Bullseye or The Testing Wheel
 
Ash_Winter-DEWT7_V1
Ash_Winter-DEWT7_V1Ash_Winter-DEWT7_V1
Ash_Winter-DEWT7_V1
 
Ash_Winter-Forgotten-ility_V1
Ash_Winter-Forgotten-ility_V1Ash_Winter-Forgotten-ility_V1
Ash_Winter-Forgotten-ility_V1
 
Main Talk v1.1
Main Talk v1.1Main Talk v1.1
Main Talk v1.1
 
Ash Winter - What is testing?
Ash Winter - What is testing?Ash Winter - What is testing?
Ash Winter - What is testing?
 
Turbo Mindmapping Your App
Turbo Mindmapping Your AppTurbo Mindmapping Your App
Turbo Mindmapping Your App
 
NWEWT_Slides_Ash_Winter_04_2016
NWEWT_Slides_Ash_Winter_04_2016NWEWT_Slides_Ash_Winter_04_2016
NWEWT_Slides_Ash_Winter_04_2016
 
Coaching Model for Unrecognised Internal Models
Coaching Model for Unrecognised Internal ModelsCoaching Model for Unrecognised Internal Models
Coaching Model for Unrecognised Internal Models
 
Ash_Winter_Tested_to_Death
Ash_Winter_Tested_to_DeathAsh_Winter_Tested_to_Death
Ash_Winter_Tested_to_Death
 
Ash_Winter_Testing_Mobile_Apocalypse_Online
Ash_Winter_Testing_Mobile_Apocalypse_OnlineAsh_Winter_Testing_Mobile_Apocalypse_Online
Ash_Winter_Testing_Mobile_Apocalypse_Online
 
Critical Thinking for Consultants-External
Critical Thinking for Consultants-ExternalCritical Thinking for Consultants-External
Critical Thinking for Consultants-External
 
Ash Versus Consulting V1 - External
Ash Versus Consulting V1 - ExternalAsh Versus Consulting V1 - External
Ash Versus Consulting V1 - External
 

Recently uploaded

Unleash the Solace Pub Sub connector | Banaglore MuleSoft Meetup #31
Unleash the Solace Pub Sub connector | Banaglore MuleSoft Meetup #31Unleash the Solace Pub Sub connector | Banaglore MuleSoft Meetup #31
Unleash the Solace Pub Sub connector | Banaglore MuleSoft Meetup #31shyamraj55
 
Cultivating Entrepreneurial Mindset in Product Management: Strategies for Suc...
Cultivating Entrepreneurial Mindset in Product Management: Strategies for Suc...Cultivating Entrepreneurial Mindset in Product Management: Strategies for Suc...
Cultivating Entrepreneurial Mindset in Product Management: Strategies for Suc...Product School
 
Revolutionizing The Banking Industry: The Monzo Way by CPO, Monzo
Revolutionizing The Banking Industry: The Monzo Way by CPO, MonzoRevolutionizing The Banking Industry: The Monzo Way by CPO, Monzo
Revolutionizing The Banking Industry: The Monzo Way by CPO, MonzoProduct School
 
KUBRICK Graphs: A journey from in vogue to success-ion
KUBRICK Graphs: A journey from in vogue to success-ionKUBRICK Graphs: A journey from in vogue to success-ion
KUBRICK Graphs: A journey from in vogue to success-ionNeo4j
 
Introducing the New FME Community Webinar - Feb 21, 2024 (2).pdf
Introducing the New FME Community Webinar - Feb 21, 2024 (2).pdfIntroducing the New FME Community Webinar - Feb 21, 2024 (2).pdf
Introducing the New FME Community Webinar - Feb 21, 2024 (2).pdfSafe Software
 
AI for Educators - Integrating AI in the Classrooms
AI for Educators - Integrating AI in the ClassroomsAI for Educators - Integrating AI in the Classrooms
AI for Educators - Integrating AI in the ClassroomsPremsankar Chakkingal
 
How AI and ChatGPT are changing cybersecurity forever.pptx
How AI and ChatGPT are changing cybersecurity forever.pptxHow AI and ChatGPT are changing cybersecurity forever.pptx
How AI and ChatGPT are changing cybersecurity forever.pptxInfosec
 
HBR SERIES METAL HOUSED RESISTORS POWER ELECTRICAL ABSORBS HIGH CURRENT DURIN...
HBR SERIES METAL HOUSED RESISTORS POWER ELECTRICAL ABSORBS HIGH CURRENT DURIN...HBR SERIES METAL HOUSED RESISTORS POWER ELECTRICAL ABSORBS HIGH CURRENT DURIN...
HBR SERIES METAL HOUSED RESISTORS POWER ELECTRICAL ABSORBS HIGH CURRENT DURIN...htrindia
 
SKY Paradigms, change and cake: the steep curve of introducing new technologies
SKY Paradigms, change and cake: the steep curve of introducing new technologiesSKY Paradigms, change and cake: the steep curve of introducing new technologies
SKY Paradigms, change and cake: the steep curve of introducing new technologiesNeo4j
 
AI improves software testing to be more fault tolerant, focused and efficient
AI improves software testing to be more fault tolerant, focused and efficientAI improves software testing to be more fault tolerant, focused and efficient
AI improves software testing to be more fault tolerant, focused and efficientKari Kakkonen
 
Mastering Play Store App Listing and Optimization
Mastering Play Store App Listing and OptimizationMastering Play Store App Listing and Optimization
Mastering Play Store App Listing and OptimizationAppsthentic Technology
 
National Institute of Standards and Technology (NIST) Cybersecurity Framework...
National Institute of Standards and Technology (NIST) Cybersecurity Framework...National Institute of Standards and Technology (NIST) Cybersecurity Framework...
National Institute of Standards and Technology (NIST) Cybersecurity Framework...MichaelBenis1
 
Improving IT Investment Decisions and Business Outcomes with Integrated Enter...
Improving IT Investment Decisions and Business Outcomes with Integrated Enter...Improving IT Investment Decisions and Business Outcomes with Integrated Enter...
Improving IT Investment Decisions and Business Outcomes with Integrated Enter...Cprime
 
My Journey towards Artificial Intelligence
My Journey towards Artificial IntelligenceMy Journey towards Artificial Intelligence
My Journey towards Artificial IntelligenceVijayananda Mohire
 
Building Bridges: Merging RPA Processes, UiPath Apps, and Data Service to bu...
Building Bridges:  Merging RPA Processes, UiPath Apps, and Data Service to bu...Building Bridges:  Merging RPA Processes, UiPath Apps, and Data Service to bu...
Building Bridges: Merging RPA Processes, UiPath Apps, and Data Service to bu...DianaGray10
 
Automation Ops Series: Session 1 - Introduction and setup DevOps for UiPath p...
Automation Ops Series: Session 1 - Introduction and setup DevOps for UiPath p...Automation Ops Series: Session 1 - Introduction and setup DevOps for UiPath p...
Automation Ops Series: Session 1 - Introduction and setup DevOps for UiPath p...DianaGray10
 
Launching New Products In Companies Where It Matters Most by Product Director...
Launching New Products In Companies Where It Matters Most by Product Director...Launching New Products In Companies Where It Matters Most by Product Director...
Launching New Products In Companies Where It Matters Most by Product Director...Product School
 
Mind your App Footprint 🐾⚡️🌱 (@FlutterHeroes 2024)
Mind your App Footprint 🐾⚡️🌱 (@FlutterHeroes 2024)Mind your App Footprint 🐾⚡️🌱 (@FlutterHeroes 2024)
Mind your App Footprint 🐾⚡️🌱 (@FlutterHeroes 2024)François
 
AGFM - Toyota Coaster 1HZ Install Guide.pdf
AGFM - Toyota Coaster 1HZ Install Guide.pdfAGFM - Toyota Coaster 1HZ Install Guide.pdf
AGFM - Toyota Coaster 1HZ Install Guide.pdfRodneyThomas28
 

Recently uploaded (20)

Unleash the Solace Pub Sub connector | Banaglore MuleSoft Meetup #31
Unleash the Solace Pub Sub connector | Banaglore MuleSoft Meetup #31Unleash the Solace Pub Sub connector | Banaglore MuleSoft Meetup #31
Unleash the Solace Pub Sub connector | Banaglore MuleSoft Meetup #31
 
Cultivating Entrepreneurial Mindset in Product Management: Strategies for Suc...
Cultivating Entrepreneurial Mindset in Product Management: Strategies for Suc...Cultivating Entrepreneurial Mindset in Product Management: Strategies for Suc...
Cultivating Entrepreneurial Mindset in Product Management: Strategies for Suc...
 
Revolutionizing The Banking Industry: The Monzo Way by CPO, Monzo
Revolutionizing The Banking Industry: The Monzo Way by CPO, MonzoRevolutionizing The Banking Industry: The Monzo Way by CPO, Monzo
Revolutionizing The Banking Industry: The Monzo Way by CPO, Monzo
 
KUBRICK Graphs: A journey from in vogue to success-ion
KUBRICK Graphs: A journey from in vogue to success-ionKUBRICK Graphs: A journey from in vogue to success-ion
KUBRICK Graphs: A journey from in vogue to success-ion
 
Introducing the New FME Community Webinar - Feb 21, 2024 (2).pdf
Introducing the New FME Community Webinar - Feb 21, 2024 (2).pdfIntroducing the New FME Community Webinar - Feb 21, 2024 (2).pdf
Introducing the New FME Community Webinar - Feb 21, 2024 (2).pdf
 
AI for Educators - Integrating AI in the Classrooms
AI for Educators - Integrating AI in the ClassroomsAI for Educators - Integrating AI in the Classrooms
AI for Educators - Integrating AI in the Classrooms
 
How AI and ChatGPT are changing cybersecurity forever.pptx
How AI and ChatGPT are changing cybersecurity forever.pptxHow AI and ChatGPT are changing cybersecurity forever.pptx
How AI and ChatGPT are changing cybersecurity forever.pptx
 
HBR SERIES METAL HOUSED RESISTORS POWER ELECTRICAL ABSORBS HIGH CURRENT DURIN...
HBR SERIES METAL HOUSED RESISTORS POWER ELECTRICAL ABSORBS HIGH CURRENT DURIN...HBR SERIES METAL HOUSED RESISTORS POWER ELECTRICAL ABSORBS HIGH CURRENT DURIN...
HBR SERIES METAL HOUSED RESISTORS POWER ELECTRICAL ABSORBS HIGH CURRENT DURIN...
 
SKY Paradigms, change and cake: the steep curve of introducing new technologies
SKY Paradigms, change and cake: the steep curve of introducing new technologiesSKY Paradigms, change and cake: the steep curve of introducing new technologies
SKY Paradigms, change and cake: the steep curve of introducing new technologies
 
AI improves software testing to be more fault tolerant, focused and efficient
AI improves software testing to be more fault tolerant, focused and efficientAI improves software testing to be more fault tolerant, focused and efficient
AI improves software testing to be more fault tolerant, focused and efficient
 
Mastering Play Store App Listing and Optimization
Mastering Play Store App Listing and OptimizationMastering Play Store App Listing and Optimization
Mastering Play Store App Listing and Optimization
 
National Institute of Standards and Technology (NIST) Cybersecurity Framework...
National Institute of Standards and Technology (NIST) Cybersecurity Framework...National Institute of Standards and Technology (NIST) Cybersecurity Framework...
National Institute of Standards and Technology (NIST) Cybersecurity Framework...
 
Improving IT Investment Decisions and Business Outcomes with Integrated Enter...
Improving IT Investment Decisions and Business Outcomes with Integrated Enter...Improving IT Investment Decisions and Business Outcomes with Integrated Enter...
Improving IT Investment Decisions and Business Outcomes with Integrated Enter...
 
My Journey towards Artificial Intelligence
My Journey towards Artificial IntelligenceMy Journey towards Artificial Intelligence
My Journey towards Artificial Intelligence
 
Building Bridges: Merging RPA Processes, UiPath Apps, and Data Service to bu...
Building Bridges:  Merging RPA Processes, UiPath Apps, and Data Service to bu...Building Bridges:  Merging RPA Processes, UiPath Apps, and Data Service to bu...
Building Bridges: Merging RPA Processes, UiPath Apps, and Data Service to bu...
 
Automation Ops Series: Session 1 - Introduction and setup DevOps for UiPath p...
Automation Ops Series: Session 1 - Introduction and setup DevOps for UiPath p...Automation Ops Series: Session 1 - Introduction and setup DevOps for UiPath p...
Automation Ops Series: Session 1 - Introduction and setup DevOps for UiPath p...
 
Launching New Products In Companies Where It Matters Most by Product Director...
Launching New Products In Companies Where It Matters Most by Product Director...Launching New Products In Companies Where It Matters Most by Product Director...
Launching New Products In Companies Where It Matters Most by Product Director...
 
Mind your App Footprint 🐾⚡️🌱 (@FlutterHeroes 2024)
Mind your App Footprint 🐾⚡️🌱 (@FlutterHeroes 2024)Mind your App Footprint 🐾⚡️🌱 (@FlutterHeroes 2024)
Mind your App Footprint 🐾⚡️🌱 (@FlutterHeroes 2024)
 
In sharing we trust. Taking advantage of a diverse consortium to build a tran...
In sharing we trust. Taking advantage of a diverse consortium to build a tran...In sharing we trust. Taking advantage of a diverse consortium to build a tran...
In sharing we trust. Taking advantage of a diverse consortium to build a tran...
 
AGFM - Toyota Coaster 1HZ Install Guide.pdf
AGFM - Toyota Coaster 1HZ Install Guide.pdfAGFM - Toyota Coaster 1HZ Install Guide.pdf
AGFM - Toyota Coaster 1HZ Install Guide.pdf
 

Making Testability Our Mission Redux

Editor's Notes

  1. Lets add models here. Quadrants, THSM, Pyramid etc. Then a big cross. If its hard to test. Your strategy is for shit. Sorry.
  2. Im not sure testing is really working out that well. We always seem to be in the middle of existential angst. Agile, DevOps, what shall we fail to embrace next? Lets change our footing.
  3. We’ve all worked on hard to test systems. If you think you haven’t then you are or were in such denial that you were a captive reliant on their captor. Stockholm syndrome. So, lets drop some truth bombs on our candy asses.
  4. Simply won’t get tested - here’s a secret for you. IF IT HASN’T BEEN TESTED IT DOESN’T WORK, new stuff rarely does. You the tester will be burdened with it. Volunteers will be hard to find. Automation will target the areas that don’t break, or will just cover new stuff, rather than old fragile areas. Even if you can do performance and load testing, it will be brittle, late and on inappropriate environments. Probably mislead you more than lead you. One of the key indicators of poor testability is lack of diversity within your testing. IMPORTANT - your poor ops people. Sys Admin, DBA’s and App Support will be driven mad by your application. Hard to test means hard to operate in live, where it matters. Finally - your team will be divided by this system that you all hate, right down the lines of role. Unchecked, this will persist FOREVER.
  5. Reverse inspiration Core concepts Testability Engineering Its about YOU
  6. 2000 bugs in 2 years Communicated through tickets Longs test cycles against builds on long lived environments Mastered weirdly named tooling “Quality Centre” Left with a weird feeling - we did tons of testing, but we never got any faster, no one got what they wanted…
  7. Superset as in, other ililities are contained within it Which makes it ethereal at times which is part of its problem, it his hard to describe but makes the world better. For me this is true of a lot of aspects of testing, where we co-opt other technologies to enhance our testing. One of the things that makes testability so intuitive as a direction for the craft of testing. But also makes it important, it is telling us to focus on the whole system, rather than making local optimisations. Let’s make this a bit more real, by talking about 4 core ilities of testability. In no particular order though.
  8. Observability allows us to understand the system as it actually is - we can explore and ask questions of the system Observability determines what problems we can detect and how we evaluate if they are problems observability tools and techniques are the lens to view and filter that information. Tracing through a micro service architecture is a great example of this. Seeing the whole transaction throughout a set of dependent services. Great for seeing effects and side effects of a behaviour.
  9. Controllability determines the dept and breath of our testing efforts - how deep you can go while still knowing what breadth you have covered. Without this you can go down the rabbit hole and miss the bigger picture. Without control testing is pushed later and later, Controllability determines what scenarios we can exercise - whether it be setting test data to the right state or ensuring a dependency returns a specific response.
  10. Controllability determines the dept and breath of our testing efforts - how deep you can go while still knowing what breadth you have covered. Without this you can go down the rabbit hole and miss the bigger picture. Without control testing is pushed later and later, Controllability determines what scenarios we can exercise - whether it be setting test data to the right state or ensuring a dependency returns a specific response.
  11. The ability to isolate components from one another - to truly know the effects that either being connected to (or not connected to will have an impact on the component you are testing) - more importantly knowing that you can develop and test wherever you want and isolate problematic areas. Being able to isolate problems easily speeds the development effort, moving from guessing where problems are, to isolating components and interactions, to chase problems to their origin https://martinfowler.com/bliki/CircuitBreaker.html
  12. The ability to isolate components from one another - to truly know the effects that either being connected to (or not connected to will have an impact on the component you are testing) - more importantly knowing that you can develop and test wherever you want and isolate problematic areas. Being able to isolate problems easily speeds the development effort, moving from guessing where problems are, to isolating components and interactions, to chase problems to their origin https://martinfowler.com/bliki/CircuitBreaker.html
  13. The ability to isolate components from one another - to truly know the effects that either being connected to (or not connected to will have an impact on the component you are testing) - more importantly knowing that you can develop and test wherever you want and isolate problematic areas. Being able to isolate problems easily speeds the development effort, moving from guessing where problems are, to isolating components and interactions, to chase problems to their origin https://martinfowler.com/bliki/CircuitBreaker.html
  14. The ability to isolate components from one another - to truly know the effects that either being connected to (or not connected to will have an impact on the component you are testing) - more importantly knowing that you can develop and test wherever you want and isolate problematic areas. Being able to isolate problems easily speeds the development effort, moving from guessing where problems are, to isolating components and interactions, to chase problems to their origin https://martinfowler.com/bliki/CircuitBreaker.html
  15. The ability to isolate components from one another - to truly know the effects that either being connected to (or not connected to will have an impact on the component you are testing) - more importantly knowing that you can develop and test wherever you want and isolate problematic areas. Being able to isolate problems easily speeds the development effort, moving from guessing where problems are, to isolating components and interactions, to chase problems to their origin https://martinfowler.com/bliki/CircuitBreaker.html
  16. Controllability determines the dept and breath of our testing efforts - how deep you can go while still knowing what breadth you have covered. Without this you can go down the rabbit hole and miss the bigger picture. Without control testing is pushed later and later, Controllability determines what scenarios we can exercise - whether it be setting test data to the right state or ensuring a dependency returns a specific response.
  17. The more complex the system, the harder it is to test. Sounds intuitive right? The harder it is to reason around a system, how many technology types, transport mechanisms, input, outputs, dependencies it has, the more problems can occur. Lots and lots of problems means lots of time spent testing, clarifying, checking, asking, exploring, re-exploring. You get the picture.
  18. ## People The people in our team possess the mindset, skill set & knowledge to do great testing and they are aligned in their pursuit of a shared quality goal. ### Mindset Each member of the team feels motivated, fulfilled and is focused on delivering a high-quality product. Team members understand that quality is a whole team responsibility, appreciate that testing provides critically valuable feedback, strive to facilitate better testing, shorten the feedback loop and endeavour to prevent defects over finding them. ### Skillset Each member of the team has the skills and experience necessary to perform risk analysis, exploratory testing, write unit, integration and end to end tests. The team also has access to a testing specialist with deep testing expertise should their expertise be required. ### Knowledge Each member of the team either has adequate knowledge or has a means of accessing adequate knowledge of the problem domain, technical domain, testing tools and techniques required to do great testing. ### Alignment No one individual on the team is responsible for quality, the team has a shared vision of quality and work together to build quality in, facilitate better testing and to improve the team's way of working.
  19. ## Philosophy The philosophy of our team encourages whole team responsibility for quality while building trusting, collaborative relationships across team roles, the business and with the customer. ### Whole team responsibility for quality All team members actively identify and mitigate risks, consider testability during architectural discussions, collaborate on testing, prioritise the investigation and resolution of automation failures over new feature work and distil as much learning as possible from customer impacting issues. ### Collaborative relationships Team members work really closely making changes to the code to facilitate better testing as well as helping each other complete testing and automation tasks. Each team member talks regularly with people from the wider business and the customer in order to gain a better understanding of the stakeholders' needs.
  20. ## Product The product is designed to facilitate great exploratory testing and automation at every level of the product. ### Designed to facilitate exploratory testing Team members can quickly and easily set-up whichever test scenarios they wish to explore and evaluate whether or not the system is behaving as desired. ### Designed to facilitate automation Team members can write fast, simple and reliable automation that is targeted at the appropriate level. The majority of the automation is written at unit and integration level with only a bare minimum written at end to end level.
  21. ## Process The process helps the team recognise risk, decompose work into small testable chunks, and discourages the accumulation of testing debt while promoteing working at a sustainable pace. ### Recognise risk Team members are encouraged to identify risks as early as possible so that they may be mitigated in the most appropriate manner. ### Small testable chunks The team works together to create a shared understanding of what needs to be built and slices the work into small testable chunks with clearly defined acceptance criteria. ### Testing debt Team members work together to ensure all the necessary testing activities are completed and findings are addressed before moving onto the next iteration. ### Sustainable pace The team works together to ensure each chunk of work is adequately tested before moving onto new work. Overtime and out of hours work is actively discouraged.
  22. ## Project The team is provided with the time, resources, space and autonomy to do great testing. ### Time The team is provided with the freedom required to think, prepare and perform all the testing activities deemed necessary to mitigate the risks identified without being put under time pressure or working outside of normal working hours. ### Resources The team has access to the information, test data, tooling, infrastructure, training and skills necessary to achieve their testing goals. ### Space The team is provided with the space to focus on completing their testing tasks without too many distractions and minimal context switching. ### Autonomy The team is given the autonomy to find their own solutions to testing challenges.
  23. ## Problem The team has a deep understanding of the problem the product solves for their customer and actively identifies, analyses and mitigates risk. ### Customer problem Each team member is constantly improving their understanding of who the customer is, what the customer values, their challenges, needs and goals. This knowledge enables team members to better recognise potential threats to the value of the solution. ### Risk Team members have a deep understanding of their context which allows them to analyse business and technical risk, consider the potential impact of failure and mitigate it with the most appropriate techniques.
  24. ## Pipeline The team's pipeline provides fast, trustworthy and accessible feedback on every change as it moves through each environment towards production. ### Feedback The team members are confident that the various forms of automated testing provide comprehensive test coverage, detect functional regressions and provide feedback that's reliable, timely and actionable. ### Environment The team can deploy a change into a production-like environment on demand and can safely perform a range of testing activities including resiliency testing, performance testing, exploratory testing, and so on.
  25. ## Productivity The team considers and applies the appropriate blend of testing to facilitate continuous feedback and unearth important problems as quickly as possible. ### An appropriate blend of testing The team works together to identify risk and take a holistic approach to mitigating risk using the appropriate combination of pre-production and production testing. The team uses a blend of targeted unit, integration, end to end, exploratory and nonfunctional testing to find problems as quickly as possible. These approaches are supplemented with the appropriate level of logging, monitoring, alerting and observability in production. ### Continuous feedback The team breaks their work down into tiny testable chunks, pairs or mobs on coding, automation and testing tasks and seeks stakeholder feedback as early as possible.
  26. ## Production Issues The team has very few customer impacting issues but when they do occur the team can very quickly recover. ### Customer impacting issues The team uses an effective test strategy that ensures the majority of issues are either prevented or detected before escaping into production. This means that the team spends very little time firefighting customer impacting issues. ### Recovery The team has built the system with monitoring and alerting that allows team members to detect production issues before they impact the customer. When issues are detected adequate logging, observability and reversibility is in place to quickly debug and remediate.
  27. ## Proactivity The team proactively seeks to continuously improve their test approach, learn from their mistakes and experiment with new tools and techniques. ### Continuously improve The whole team regularly reflects on how effective their test approach is, discussing activities that are valuable, wasteful or need improvement and taking action where necessary. ### Learn from their mistakes The whole team reviews each costly mistake in an effort to distill as much learning as possible, to identify and address gaps in the team's testing efforts. ### Experiment Each team member is encouraged to learn about testing tools, techniques and is supported in experimenting with new ideas that they believe may benefit the team.
  28. You will find the principles of testability engineering here