SlideShare a Scribd company logo
Ash Winter
@northern_tester
https://testingatelier.community
https://diagramindustries.com/blog/
Your system is
hard to test
@northern_tester
Your testers are at
the sharp end
(And you should feel bad about it)
(I don’t know you but its true)
#expandconf
Lets drop some
truth bombs
@northern_tester #expandconf
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 #expandconf
Its about time that
testability became
everyone’s
responsibility
@northern_tester #expandconf
Coverage…
• Testability smells
• Testable architecture
• Power of operability
• Maintaining the mission
• Polished sales pitch
@northern_tester #expandconf
What is that subtle yet over
powering smell…
@northern_tester
Release
Management
Theatre
Mono
strategies
Fear of
change
Teams
looking for
more testers
Too many
user
interface
tests
Valuable
scenarios
not tested
Lack of
resilience
testing
“Sunny”
days only
Cluttered
logging
with no
insights
Excessive
test
repetition
Issues hard to
isolate and
debug
Tests that
don’t die
Lengthy
build
times
Too many
persistent
environments
Environments no
one cares about
Inanimate
documentation
Customer
hand
holding
Poor relations with
Ops
Long lists of
deferred bugs
Hard to test
dependencies
Wrangling
over scale
95th
Percentile?
Tester
turnover
#expandconf
That’ll be your system
architecture…
@northern_tester
(And your team
structures…)
No big deal
#expandconf
Get the right people in
the room…
@northern_tester #expandconf
The rooms where architectural
decisions are made…
@northern_tester #expandconf
But what do you do when
you get in the room…
@northern_tester #expandconf
20 000
transactions
per second
@northern_tester #expandconf
@northern_tester #expandconf
@northern_tester #expandconf
Operability
Operability
Operability
Operability
Logs to
events
Retired
unused
API’s
New services
for high
throughput
API’s
Circuit
breakers
Throttling
Tracing
ID’s
Actionable
alerts
Architectural
Decision
Records
Feature
Toggle
Dashboard
Operability matters…
@northern_tester
Thanks to Matthew Skelton for this awesome template and research
#expandconf
After some hard work…
• A useful run book
• Isolatable services for load testing
• Less services to melt our brains
• Ask questions of the system
• Closer to production
• More sleep, less stress
• Better testing experience!
@northern_tester #expandconf
Maintaining focus…
@northern_tester #expandconf
@northern_tester #expandconf
@northern_tester #expandconf
@northern_tester #expandconf
@northern_tester #expandconf
@northern_tester #expandconf
@northern_tester #expandconf
@northern_tester #expandconf
@northern_tester #expandconf
@northern_tester #expandconf
@northern_tester #expandconf
@northern_tester #expandconf
This is all very nice but sales…
@northern_tester
https://blackswanfarming.com/cost-of-delay/
https://martinfowler.com/bliki/TechnicalDebtQuadrant.html
• Predictable
• Known quality
• Testing debt
• Tests you trust
#expandconf
Sounds like a testers problem…
@northern_tester
• Fast
feedback
• Less context
switching
• Customers
• Claims
• Build the
right thing
• Resilience
• Configuration
• Observability
• Less toil
https://en.wikipedia.org/wiki/Margaret_Ha
milton_(software_engineer)
https://twitter.com/mipsytipsyhttps://twitter.com/lissijean
#expandconf
It affects us all, especially our
friends in operations.
Testability makes software
better. It is a collective
responsibility.
Testers are often seen as responsible for testability.
Not alone. They need advocates.
@northern_tester #expandconf
Thank you for
your attention.
http://leanpub.com/s
oftwaretestability
@northern_tester #expandconf

More Related Content

What's hot

DevOps Security Coffee - Lazy hackers who think out of the box, but stay in t...
DevOps Security Coffee - Lazy hackers who think out of the box, but stay in t...DevOps Security Coffee - Lazy hackers who think out of the box, but stay in t...
DevOps Security Coffee - Lazy hackers who think out of the box, but stay in t...
Freek Kauffmann
 
Solano Labs presented at MassTLC's automated testing
Solano Labs presented at MassTLC's automated testingSolano Labs presented at MassTLC's automated testing
Solano Labs presented at MassTLC's automated testing
MassTLC
 
How google-tests-software
How google-tests-softwareHow google-tests-software
How google-tests-software
Bhawna Tuteja
 
Cross functional peer review preso 10-01-2013
Cross functional peer review preso 10-01-2013Cross functional peer review preso 10-01-2013
Cross functional peer review preso 10-01-2013
SmartBear
 
ალექსანდრე ნემსაძე - Release it
ალექსანდრე ნემსაძე - Release itალექსანდრე ნემსაძე - Release it
ალექსანდრე ნემსაძე - Release it
unihack
 
Developer + tester = quality++
Developer + tester = quality++Developer + tester = quality++
Developer + tester = quality++
Mikalai Alimenkou
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
Sergey Aganezov
 
CNUG TDD June 2014
CNUG TDD June 2014CNUG TDD June 2014
CNUG TDD June 2014
Mayank Srivastava
 
On Rapid Releases and Software Testing
On Rapid Releases and Software TestingOn Rapid Releases and Software Testing
On Rapid Releases and Software Testing
Foutse Khomh
 
SDET approach for Agile Testing
SDET approach for Agile TestingSDET approach for Agile Testing
SDET approach for Agile Testing
Gopikrishna Kannan
 
What is the difference between manual testing and automation testing
What is the difference between manual testing and automation testingWhat is the difference between manual testing and automation testing
What is the difference between manual testing and automation testing
Er Mahednra Chauhan
 
Unit Testing, TDD and the Walking Skeleton
Unit Testing, TDD and the Walking SkeletonUnit Testing, TDD and the Walking Skeleton
Unit Testing, TDD and the Walking Skeleton
Seb Rose
 
Avoiding test hell
Avoiding test hellAvoiding test hell
Avoiding test hell
Yun Ki Lee
 
How QA engineers could affect quality?
How QA engineers could affect quality?How QA engineers could affect quality?
How QA engineers could affect quality?
Mikalai Alimenkou
 
Predictive Analytics in Software Testing
Predictive Analytics in Software TestingPredictive Analytics in Software Testing
Predictive Analytics in Software Testing
Pavan Kumar Kodedela
 
Gamification in outsourcing company: experience report.
Gamification in outsourcing company: experience report.Gamification in outsourcing company: experience report.
Gamification in outsourcing company: experience report.
Mikalai Alimenkou
 
Writing acceptable patches: an empirical study of open source project patches
Writing acceptable patches: an empirical study of open source project patchesWriting acceptable patches: an empirical study of open source project patches
Writing acceptable patches: an empirical study of open source project patches
Yida Tao
 
Shift-Left Testing: QA in a DevOps World by David Laulusa
Shift-Left Testing: QA in a DevOps World by David LaulusaShift-Left Testing: QA in a DevOps World by David Laulusa
Shift-Left Testing: QA in a DevOps World by David Laulusa
QA or the Highway
 
TDD Basics with Angular.js and Jasmine
TDD Basics with Angular.js and JasmineTDD Basics with Angular.js and Jasmine
TDD Basics with Angular.js and Jasmine
Luis Sánchez Castellanos
 

What's hot (19)

DevOps Security Coffee - Lazy hackers who think out of the box, but stay in t...
DevOps Security Coffee - Lazy hackers who think out of the box, but stay in t...DevOps Security Coffee - Lazy hackers who think out of the box, but stay in t...
DevOps Security Coffee - Lazy hackers who think out of the box, but stay in t...
 
Solano Labs presented at MassTLC's automated testing
Solano Labs presented at MassTLC's automated testingSolano Labs presented at MassTLC's automated testing
Solano Labs presented at MassTLC's automated testing
 
How google-tests-software
How google-tests-softwareHow google-tests-software
How google-tests-software
 
Cross functional peer review preso 10-01-2013
Cross functional peer review preso 10-01-2013Cross functional peer review preso 10-01-2013
Cross functional peer review preso 10-01-2013
 
ალექსანდრე ნემსაძე - Release it
ალექსანდრე ნემსაძე - Release itალექსანდრე ნემსაძე - Release it
ალექსანდრე ნემსაძე - Release it
 
Developer + tester = quality++
Developer + tester = quality++Developer + tester = quality++
Developer + tester = quality++
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
CNUG TDD June 2014
CNUG TDD June 2014CNUG TDD June 2014
CNUG TDD June 2014
 
On Rapid Releases and Software Testing
On Rapid Releases and Software TestingOn Rapid Releases and Software Testing
On Rapid Releases and Software Testing
 
SDET approach for Agile Testing
SDET approach for Agile TestingSDET approach for Agile Testing
SDET approach for Agile Testing
 
What is the difference between manual testing and automation testing
What is the difference between manual testing and automation testingWhat is the difference between manual testing and automation testing
What is the difference between manual testing and automation testing
 
Unit Testing, TDD and the Walking Skeleton
Unit Testing, TDD and the Walking SkeletonUnit Testing, TDD and the Walking Skeleton
Unit Testing, TDD and the Walking Skeleton
 
Avoiding test hell
Avoiding test hellAvoiding test hell
Avoiding test hell
 
How QA engineers could affect quality?
How QA engineers could affect quality?How QA engineers could affect quality?
How QA engineers could affect quality?
 
Predictive Analytics in Software Testing
Predictive Analytics in Software TestingPredictive Analytics in Software Testing
Predictive Analytics in Software Testing
 
Gamification in outsourcing company: experience report.
Gamification in outsourcing company: experience report.Gamification in outsourcing company: experience report.
Gamification in outsourcing company: experience report.
 
Writing acceptable patches: an empirical study of open source project patches
Writing acceptable patches: an empirical study of open source project patchesWriting acceptable patches: an empirical study of open source project patches
Writing acceptable patches: an empirical study of open source project patches
 
Shift-Left Testing: QA in a DevOps World by David Laulusa
Shift-Left Testing: QA in a DevOps World by David LaulusaShift-Left Testing: QA in a DevOps World by David Laulusa
Shift-Left Testing: QA in a DevOps World by David Laulusa
 
TDD Basics with Angular.js and Jasmine
TDD Basics with Angular.js and JasmineTDD Basics with Angular.js and Jasmine
TDD Basics with Angular.js and Jasmine
 

Similar to Testability is Everyone's Responsibility

DevOpsDays Houston 2019 -Kevin Crawley - Practical Guide to Not Building Anot...
DevOpsDays Houston 2019 -Kevin Crawley - Practical Guide to Not Building Anot...DevOpsDays Houston 2019 -Kevin Crawley - Practical Guide to Not Building Anot...
DevOpsDays Houston 2019 -Kevin Crawley - Practical Guide to Not Building Anot...
DevOpsDays Houston
 
Bigger Unit Test Are Better
Bigger Unit Test Are BetterBigger Unit Test Are Better
Bigger Unit Test Are Better
Peter Schuler
 
Using MLOps to Bring ML to Production/The Promise of MLOps
Using MLOps to Bring ML to Production/The Promise of MLOpsUsing MLOps to Bring ML to Production/The Promise of MLOps
Using MLOps to Bring ML to Production/The Promise of MLOps
Weaveworks
 
DockerCon SF 2019 - TDD is Dead
DockerCon SF 2019 - TDD is DeadDockerCon SF 2019 - TDD is Dead
DockerCon SF 2019 - TDD is Dead
Kevin Crawley
 
How we integrate Machine Learning Algorithms into our IT Platform at Outfittery
How we integrate Machine Learning Algorithms into our IT Platform at OutfitteryHow we integrate Machine Learning Algorithms into our IT Platform at Outfittery
How we integrate Machine Learning Algorithms into our IT Platform at Outfittery
OUTFITTERY
 
Resiliency through Failure @ OSCON 2013
Resiliency through Failure @ OSCON 2013Resiliency through Failure @ OSCON 2013
Resiliency through Failure @ OSCON 2013
Ariel Tseitlin
 
Tips for Writing Better Charters for Exploratory Testing Sessions by Michael...
 Tips for Writing Better Charters for Exploratory Testing Sessions by Michael... Tips for Writing Better Charters for Exploratory Testing Sessions by Michael...
Tips for Writing Better Charters for Exploratory Testing Sessions by Michael...
TEST Huddle
 
The art of system and solution testing
The art of system and solution testingThe art of system and solution testing
The art of system and solution testing
gaoliang641
 
Beyond TDD: Enabling Your Team to Continuously Deliver Software
Beyond TDD: Enabling Your Team to Continuously Deliver SoftwareBeyond TDD: Enabling Your Team to Continuously Deliver Software
Beyond TDD: Enabling Your Team to Continuously Deliver Software
Chris Weldon
 
Resiliency through failure @ QConNY 2013
Resiliency through failure @ QConNY 2013Resiliency through failure @ QConNY 2013
Resiliency through failure @ QConNY 2013
Ariel Tseitlin
 
EVOLVE'16 | Keynote | Cat Reusswig | Taking Your AEM Implementation to The RO...
EVOLVE'16 | Keynote | Cat Reusswig | Taking Your AEM Implementation to The RO...EVOLVE'16 | Keynote | Cat Reusswig | Taking Your AEM Implementation to The RO...
EVOLVE'16 | Keynote | Cat Reusswig | Taking Your AEM Implementation to The RO...
Evolve The Adobe Digital Marketing Community
 
JUC Europe 2015: How to Optimize Automated Testing with Everyone's Favorite B...
JUC Europe 2015: How to Optimize Automated Testing with Everyone's Favorite B...JUC Europe 2015: How to Optimize Automated Testing with Everyone's Favorite B...
JUC Europe 2015: How to Optimize Automated Testing with Everyone's Favorite B...
CloudBees
 
Ruby codebases in an entropic universe
Ruby codebases in an entropic universeRuby codebases in an entropic universe
Ruby codebases in an entropic universe
Niranjan Paranjape
 
DefCore: The Interoperability Standard for OpenStack
DefCore: The Interoperability Standard for OpenStackDefCore: The Interoperability Standard for OpenStack
DefCore: The Interoperability Standard for OpenStack
Mark Voelker
 
InteropWG Intro & Vertical Programs (May. 2017)
InteropWG Intro & Vertical Programs (May. 2017)InteropWG Intro & Vertical Programs (May. 2017)
InteropWG Intro & Vertical Programs (May. 2017)
Mark Voelker
 
Canary Analyze All The Things: How We Learned to Keep Calm and Release Often
Canary Analyze All The Things: How We Learned to Keep Calm and Release OftenCanary Analyze All The Things: How We Learned to Keep Calm and Release Often
Canary Analyze All The Things: How We Learned to Keep Calm and Release Often
C4Media
 
HFM, Workspace, and FDM – Voiding your warranty
HFM, Workspace, and FDM – Voiding your warrantyHFM, Workspace, and FDM – Voiding your warranty
HFM, Workspace, and FDM – Voiding your warranty
Charles Beyer
 
Completely Test-Driven
Completely Test-DrivenCompletely Test-Driven
Completely Test-Driven
Ian Truslove
 
Automated testers agile evangelist
Automated testers agile evangelistAutomated testers agile evangelist
Automated testers agile evangelist
Arrows Group
 
Test driven infrastructure development (2 - puppetconf 2013 edition)
Test driven infrastructure development (2 - puppetconf 2013 edition)Test driven infrastructure development (2 - puppetconf 2013 edition)
Test driven infrastructure development (2 - puppetconf 2013 edition)
Tomas Doran
 

Similar to Testability is Everyone's Responsibility (20)

DevOpsDays Houston 2019 -Kevin Crawley - Practical Guide to Not Building Anot...
DevOpsDays Houston 2019 -Kevin Crawley - Practical Guide to Not Building Anot...DevOpsDays Houston 2019 -Kevin Crawley - Practical Guide to Not Building Anot...
DevOpsDays Houston 2019 -Kevin Crawley - Practical Guide to Not Building Anot...
 
Bigger Unit Test Are Better
Bigger Unit Test Are BetterBigger Unit Test Are Better
Bigger Unit Test Are Better
 
Using MLOps to Bring ML to Production/The Promise of MLOps
Using MLOps to Bring ML to Production/The Promise of MLOpsUsing MLOps to Bring ML to Production/The Promise of MLOps
Using MLOps to Bring ML to Production/The Promise of MLOps
 
DockerCon SF 2019 - TDD is Dead
DockerCon SF 2019 - TDD is DeadDockerCon SF 2019 - TDD is Dead
DockerCon SF 2019 - TDD is Dead
 
How we integrate Machine Learning Algorithms into our IT Platform at Outfittery
How we integrate Machine Learning Algorithms into our IT Platform at OutfitteryHow we integrate Machine Learning Algorithms into our IT Platform at Outfittery
How we integrate Machine Learning Algorithms into our IT Platform at Outfittery
 
Resiliency through Failure @ OSCON 2013
Resiliency through Failure @ OSCON 2013Resiliency through Failure @ OSCON 2013
Resiliency through Failure @ OSCON 2013
 
Tips for Writing Better Charters for Exploratory Testing Sessions by Michael...
 Tips for Writing Better Charters for Exploratory Testing Sessions by Michael... Tips for Writing Better Charters for Exploratory Testing Sessions by Michael...
Tips for Writing Better Charters for Exploratory Testing Sessions by Michael...
 
The art of system and solution testing
The art of system and solution testingThe art of system and solution testing
The art of system and solution testing
 
Beyond TDD: Enabling Your Team to Continuously Deliver Software
Beyond TDD: Enabling Your Team to Continuously Deliver SoftwareBeyond TDD: Enabling Your Team to Continuously Deliver Software
Beyond TDD: Enabling Your Team to Continuously Deliver Software
 
Resiliency through failure @ QConNY 2013
Resiliency through failure @ QConNY 2013Resiliency through failure @ QConNY 2013
Resiliency through failure @ QConNY 2013
 
EVOLVE'16 | Keynote | Cat Reusswig | Taking Your AEM Implementation to The RO...
EVOLVE'16 | Keynote | Cat Reusswig | Taking Your AEM Implementation to The RO...EVOLVE'16 | Keynote | Cat Reusswig | Taking Your AEM Implementation to The RO...
EVOLVE'16 | Keynote | Cat Reusswig | Taking Your AEM Implementation to The RO...
 
JUC Europe 2015: How to Optimize Automated Testing with Everyone's Favorite B...
JUC Europe 2015: How to Optimize Automated Testing with Everyone's Favorite B...JUC Europe 2015: How to Optimize Automated Testing with Everyone's Favorite B...
JUC Europe 2015: How to Optimize Automated Testing with Everyone's Favorite B...
 
Ruby codebases in an entropic universe
Ruby codebases in an entropic universeRuby codebases in an entropic universe
Ruby codebases in an entropic universe
 
DefCore: The Interoperability Standard for OpenStack
DefCore: The Interoperability Standard for OpenStackDefCore: The Interoperability Standard for OpenStack
DefCore: The Interoperability Standard for OpenStack
 
InteropWG Intro & Vertical Programs (May. 2017)
InteropWG Intro & Vertical Programs (May. 2017)InteropWG Intro & Vertical Programs (May. 2017)
InteropWG Intro & Vertical Programs (May. 2017)
 
Canary Analyze All The Things: How We Learned to Keep Calm and Release Often
Canary Analyze All The Things: How We Learned to Keep Calm and Release OftenCanary Analyze All The Things: How We Learned to Keep Calm and Release Often
Canary Analyze All The Things: How We Learned to Keep Calm and Release Often
 
HFM, Workspace, and FDM – Voiding your warranty
HFM, Workspace, and FDM – Voiding your warrantyHFM, Workspace, and FDM – Voiding your warranty
HFM, Workspace, and FDM – Voiding your warranty
 
Completely Test-Driven
Completely Test-DrivenCompletely Test-Driven
Completely Test-Driven
 
Automated testers agile evangelist
Automated testers agile evangelistAutomated testers agile evangelist
Automated testers agile evangelist
 
Test driven infrastructure development (2 - puppetconf 2013 edition)
Test driven infrastructure development (2 - puppetconf 2013 edition)Test driven infrastructure development (2 - puppetconf 2013 edition)
Test driven infrastructure development (2 - puppetconf 2013 edition)
 

More from Ash Winter

Testability Advocacy Canvas
Testability Advocacy CanvasTestability Advocacy Canvas
Testability Advocacy Canvas
Ash Winter
 
Testability Squad Health Check
Testability Squad Health CheckTestability Squad Health Check
Testability Squad Health Check
Ash 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 Testing
Ash Winter
 
10 P's of Testability
10 P's of Testability10 P's of Testability
10 P's of Testability
Ash Winter
 
The Wheel of Testing
The Wheel of TestingThe Wheel of Testing
The Wheel of Testing
Ash 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 Testing
Ash Winter
 
Testing Below the Application
Testing Below the ApplicationTesting Below the Application
Testing Below the Application
Ash Winter
 
Part of the Pipeline
Part of the PipelinePart of the Pipeline
Part of the Pipeline
Ash Winter
 
Scroll Based Testing Strategy
Scroll Based Testing StrategyScroll Based Testing Strategy
Scroll Based Testing Strategy
Ash Winter
 
Bullseye or The Testing Wheel
Bullseye or The Testing WheelBullseye or The Testing Wheel
Bullseye or The Testing Wheel
Ash Winter
 
Ash_Winter-DEWT7_V1
Ash_Winter-DEWT7_V1Ash_Winter-DEWT7_V1
Ash_Winter-DEWT7_V1
Ash Winter
 
Ash_Winter-Forgotten-ility_V1
Ash_Winter-Forgotten-ility_V1Ash_Winter-Forgotten-ility_V1
Ash_Winter-Forgotten-ility_V1
Ash Winter
 
Main Talk v1.1
Main Talk v1.1Main Talk v1.1
Main Talk v1.1
Ash 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 App
Ash Winter
 
NWEWT_Slides_Ash_Winter_04_2016
NWEWT_Slides_Ash_Winter_04_2016NWEWT_Slides_Ash_Winter_04_2016
NWEWT_Slides_Ash_Winter_04_2016
Ash Winter
 
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
 
Ash_Winter_Tested_to_Death
Ash_Winter_Tested_to_DeathAsh_Winter_Tested_to_Death
Ash_Winter_Tested_to_Death
Ash Winter
 
Ash_Winter_Testing_Mobile_Apocalypse_Online
Ash_Winter_Testing_Mobile_Apocalypse_OnlineAsh_Winter_Testing_Mobile_Apocalypse_Online
Ash_Winter_Testing_Mobile_Apocalypse_Online
Ash Winter
 
Critical Thinking for Consultants-External
Critical Thinking for Consultants-ExternalCritical Thinking for Consultants-External
Critical Thinking for Consultants-External
Ash Winter
 

More from Ash Winter (20)

Testability Advocacy Canvas
Testability Advocacy CanvasTestability Advocacy Canvas
Testability Advocacy Canvas
 
Testability Squad Health Check
Testability Squad Health CheckTestability Squad Health Check
Testability Squad Health Check
 
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 Testing
 
10 P's of Testability
10 P's of Testability10 P's of Testability
10 P's of Testability
 
The Wheel of Testing
The Wheel of TestingThe Wheel of Testing
The Wheel of Testing
 
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
 
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
 

Recently uploaded

JavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green MasterplanJavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green Masterplan
Miro Wengner
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
DanBrown980551
 
Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
Antonios Katsarakis
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
ssuserfac0301
 
Principle of conventional tomography-Bibash Shahi ppt..pptx
Principle of conventional tomography-Bibash Shahi ppt..pptxPrinciple of conventional tomography-Bibash Shahi ppt..pptx
Principle of conventional tomography-Bibash Shahi ppt..pptx
BibashShahi
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
saastr
 
AppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSFAppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSF
Ajin Abraham
 
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge GraphGraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
Neo4j
 
Mutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented ChatbotsMutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented Chatbots
Pablo Gómez Abajo
 
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
Edge AI and Vision Alliance
 
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
saastr
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
Hiroshi SHIBATA
 
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their MainframeDigital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Precisely
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
Ivanti
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
panagenda
 
Apps Break Data
Apps Break DataApps Break Data
Apps Break Data
Ivo Velitchkov
 
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
saastr
 
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid ResearchHarnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
Neo4j
 

Recently uploaded (20)

JavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green MasterplanJavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green Masterplan
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
 
Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
 
Artificial Intelligence and Electronic Warfare
Artificial Intelligence and Electronic WarfareArtificial Intelligence and Electronic Warfare
Artificial Intelligence and Electronic Warfare
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
 
Principle of conventional tomography-Bibash Shahi ppt..pptx
Principle of conventional tomography-Bibash Shahi ppt..pptxPrinciple of conventional tomography-Bibash Shahi ppt..pptx
Principle of conventional tomography-Bibash Shahi ppt..pptx
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
 
AppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSFAppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSF
 
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge GraphGraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
 
Mutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented ChatbotsMutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented Chatbots
 
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
 
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
 
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their MainframeDigital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
 
Apps Break Data
Apps Break DataApps Break Data
Apps Break Data
 
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
 
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid ResearchHarnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
 

Testability is Everyone's Responsibility

Editor's Notes

  1. Some people say this, but it is slightly less vague than quality is everyone’s responsibility. Describes what a bit better and who might be doing it. Still hard to aim at while building hard to test systems.
  2. 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.
  3. 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.
  4. 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.
  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. 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.
  12. 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.
  13. 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.
  14. 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.
  15. Reverse inspiration Core concepts Testability Engineering Its about YOU
  16. 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.
  17. ## 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.
  18. ## 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.
  19. ## 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.
  20. ## 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.
  21. ## 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.
  22. ## 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.
  23. ## 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.
  24. ## 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.
  25. ## 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.
  26. ## 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.
  27. 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.
  28. 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.
  29. You will find the principles of testability engineering here