SlideShare uma empresa Scribd logo
1 de 38
Baixar para ler offline
🐉 Beware the Brittle Dragon - Luca Giovenzana & Angelo Caovilla
🐉 Beware the Brittle Dragon - Luca Giovenzana & Angelo Caovilla
Moral of the Story
🐉 Beware the Brittle Dragon - Luca Giovenzana & Angelo Caovilla
What exactly is a
brittle test?
🐉 Beware the Brittle Dragon - Luca Giovenzana & Angelo Caovilla
What exactly is a brittle test?
Fragile, flaky, easy to break
Not deterministic result
Run 1
Input
Run 2
Run 3
Run 4
Not due to only the test code
🐉 Beware the Brittle Dragon - Luca Giovenzana & Angelo Caovilla
Raise your hand if
you ever had to deal
with brittle tests!
🐉 Beware the Brittle Dragon - Luca Giovenzana & Angelo Caovilla
What are the
consequences
of brittle tests?
🐉 Beware the Brittle Dragon - Luca Giovenzana & Angelo Caovilla
High Maintenance Cost
Keyword
test 1
test 2
test 3
test 4
75% Fail
Rollercoaster result trend
🐉 Beware the Brittle Dragon - Luca Giovenzana & Angelo Caovilla
High Maintenance Cost
Debug and manual test
Fix broken tests
🐉 Beware the Brittle Dragon - Luca Giovenzana & Angelo Caovilla
Real Example
Test 1...50 Precondition Step Assert
Nightly regression tests (1000+)
Most of the time working
This time many tests failed
RELEASE DROP
What would you do?
🐉 Beware the Brittle Dragon - Luca Giovenzana & Angelo Caovilla
Hidden Fail
Test 1 Precondition Step Assert
Test 50 Precondition Step Assert
Cognitive bias: test fails only because of the precondition
What if a real fail has been hidden?
Test 1 Precondition Step Assert
Test 50 Precondition Step Assert BUG!
🐉 Beware the Brittle Dragon - Luca Giovenzana & Angelo Caovilla
Useless feedback
🐉 Beware the Brittle Dragon - Luca Giovenzana & Angelo Caovilla
Low Trust - Low Morale
Worthless feedback ignored
Maintenance avoided
Tests get even more broken
Automation is not trusted
V
i
c
i
o
u
s
L
o
o
p
Effort with no
results
No result ==
No commitment
🐉 Beware the Brittle Dragon - Luca Giovenzana & Angelo Caovilla
What makes our
tests brittle?
🐉 Beware the Brittle Dragon - Luca Giovenzana & Angelo Caovilla
How can we defeat
the Dragon?
🐉 Beware the Brittle Dragon - Luca Giovenzana & Angelo Caovilla
Ice Cream
Testing Pyramid Real world: Ice Cream
Practical Test Pyramid Ham Vocke - Martin Fowler’s blog
🐉 Beware the Brittle Dragon - Luca Giovenzana & Angelo Caovilla
Ice Cream
Move
Down to the Pyramid
Tests
Part of tests
Setup & Teardown
Diamo una chance alle codebase legacy Nicola Mincuzzi
🐉 Beware the Brittle Dragon - Luca Giovenzana & Angelo Caovilla
Multipurpose / Holistic
Test 1 Setup Register Assert
Registration test:
Login Assert ... Assert
🐉 Beware the Brittle Dragon - Luca Giovenzana & Angelo Caovilla
Multipurpose / Holistic
“There should never be more than
one reason for a class to change”
Robert C. Martin (Uncle Bob)
“There should never be more than
one reason for a test to fail”
Single Responsibility Principle
🐉 Beware the Brittle Dragon - Luca Giovenzana & Angelo Caovilla
Multipurpose / Holistic
Test 1 Registration Check User
Single assert
Single Responsibility
Setup 1 Checkout
Setup 2 Streaming
Test 1 Registration
Test 2 Login
Test one thing
🐉 Beware the Brittle Dragon - Luca Giovenzana & Angelo Caovilla
Poor Design
Sleep
Best effort automation
Quick and Dirty
Longer learning curve
🐉 Beware the Brittle Dragon - Luca Giovenzana & Angelo Caovilla
Poor Design
Invest in automation
Agree on development guidelines
(Pekka’s how to write good test cases)
How to write good test cases using Robot Framework Pekka Clark
🐉 Beware the Brittle Dragon - Luca Giovenzana & Angelo Caovilla
Poor Design
Reduce technical debt
Pair development
Boy Scout Rule:
“Always leave the code you are editing better
than you found it” Robert C. Martin (Uncle Bob)
🐉 Beware the Brittle Dragon - Luca Giovenzana & Angelo Caovilla
Good and Bad Technical Debt
“Anything about your code that slows you down over the long term.
Hard-to-read code, duplication, tangled dependencies, etc.”
Good And Bad Technical Debt Henrik Kniberg
🐉 Beware the Brittle Dragon - Luca Giovenzana & Angelo Caovilla
Unreliable and slow environment
Undersized
Environment
Front End Developer
Dev - Ops experiment
Business test
Backend Mad Developer
(internal server error hero)
Super complicated auto implosion mega query
Third part never-working services
🐉 Beware the Brittle Dragon - Luca Giovenzana & Angelo Caovilla
Unreliable and slow environment
Dedicated test environment
Pay for limitless resources
🐉 Beware the Brittle Dragon - Luca Giovenzana & Angelo Caovilla
Unreliable and slow environment
Mock third party systems
Strive for performances
🐉 Beware the Brittle Dragon - Luca Giovenzana & Angelo Caovilla
Hard coded data
Limited products
Test product: 3E24B278-D1EC-358C-ADE5-F51703BBB342
🐉 Beware the Brittle Dragon - Luca Giovenzana & Angelo Caovilla
Hard coded Data
Data Preparation
Data Targeting
Teardown Matters
🐉 Beware the Brittle Dragon - Luca Giovenzana & Angelo Caovilla
No continuous Testing
Test suite needs to be executed
People is lazy forget to run
Not comparable results
🐉 Beware the Brittle Dragon - Luca Giovenzana & Angelo Caovilla
No continuous Testing
Continuous testing to collect feedback
🐉 Beware the Brittle Dragon - Luca Giovenzana & Angelo Caovilla
Remove/reduce barriers to test execution
No continuous Testing
🐉 Beware the Brittle Dragon - Luca Giovenzana & Angelo Caovilla
Daily Standup
No continuous Testing
Include test feedback
in release process
Discuss reports together
🐉 Beware the Brittle Dragon - Luca Giovenzana & Angelo Caovilla
Happy Ending
🐉 Beware the Brittle Dragon - Luca Giovenzana & Angelo Caovilla
Automate everything
🐉 Beware the Brittle Dragon - Luca Giovenzana & Angelo Caovilla
Quality assistance
Whole team in charge for quality
More TDD and pair programming
Quality Assistance over
Quality Assurance
BDD and TDD Outside in
🐉 Beware the Brittle Dragon - Luca Giovenzana & Angelo Caovilla
Robot Framework BDD
*** Settings ***
Library SeleniumLibrary
Resource settings.resource
*** Test Cases ***
App Game Available
Given The Browser
When Navigate To The App Game
Then Title Should Be Tic Tac Toe
*** Keywords ***
Given The Browser
Open Browser ${EMPTY} ${BROWSER}
When Navigate To The App Game
Go To ${APP_URL}
🐉 Beware the Brittle Dragon - Luca Giovenzana & Angelo Caovilla
Quality Assistance Team
Angelo Caovilla
Roberta Massimino
Fabrizio Premoli
Emanuele Bonanno
Art Director
Matteo Villa
All CHILI ex-colleagues
Special Thanks to
🐉 Beware the Brittle Dragon - Luca Giovenzana & Angelo Caovilla
Contacts
Angelo Caovilla
acaovilla
Robot Framework Milano
lucagiove
Luca Giovenzana
@luboxit

Mais conteúdo relacionado

Semelhante a Beware The Brittle Dragon - A Test Automation Epic Tale

Scaling Your Tests: Continued Change Without Fear
Scaling Your Tests: Continued Change Without FearScaling Your Tests: Continued Change Without Fear
Scaling Your Tests: Continued Change Without FearTechWell
 
From Gatekeeper to Partner by Kelsey Shannahan
From Gatekeeper to Partner by Kelsey ShannahanFrom Gatekeeper to Partner by Kelsey Shannahan
From Gatekeeper to Partner by Kelsey ShannahanQA or the Highway
 
The Most Important Thing: How Mozilla Does Security and What You Can Steal
The Most Important Thing: How Mozilla Does Security and What You Can StealThe Most Important Thing: How Mozilla Does Security and What You Can Steal
The Most Important Thing: How Mozilla Does Security and What You Can Stealmozilla.presentations
 
An Agilist's Guide to Excelling on a Scrum Team as a Tester
An Agilist's Guide to Excelling on a Scrum Team as a TesterAn Agilist's Guide to Excelling on a Scrum Team as a Tester
An Agilist's Guide to Excelling on a Scrum Team as a TesterAndy Melichar
 
Machine Learning Exposed - James Weaver - Codemotion Amsterdam 2017
Machine Learning Exposed - James Weaver - Codemotion Amsterdam 2017Machine Learning Exposed - James Weaver - Codemotion Amsterdam 2017
Machine Learning Exposed - James Weaver - Codemotion Amsterdam 2017Codemotion
 
The Missing Piece between Discovery and Execution
The Missing Piece between Discovery and ExecutionThe Missing Piece between Discovery and Execution
The Missing Piece between Discovery and ExecutionSteffen Kastner
 
Solving Flaky Automated Tests Using Machine Learning
Solving Flaky Automated Tests Using Machine LearningSolving Flaky Automated Tests Using Machine Learning
Solving Flaky Automated Tests Using Machine LearningJames Farrier
 
UX Without the U Is Your X
UX Without the U Is Your XUX Without the U Is Your X
UX Without the U Is Your XBrandon Ward
 
Building for resilience (with speaking notes)
Building for resilience (with speaking notes)Building for resilience (with speaking notes)
Building for resilience (with speaking notes)Abe Gong
 
Real World Lessons On The Anti-Patterns of Node.JS
Real World Lessons On The Anti-Patterns of Node.JSReal World Lessons On The Anti-Patterns of Node.JS
Real World Lessons On The Anti-Patterns of Node.JSBen Hall
 
What to Avoid When Writing Unit Tests - Robert Fornal
What to Avoid When Writing Unit Tests - Robert FornalWhat to Avoid When Writing Unit Tests - Robert Fornal
What to Avoid When Writing Unit Tests - Robert FornalQA or the Highway
 
Node.js Anti Patterns
Node.js Anti PatternsNode.js Anti Patterns
Node.js Anti PatternsBen Hall
 
Tips on Starting a Compelling Vlog
Tips on Starting a Compelling VlogTips on Starting a Compelling Vlog
Tips on Starting a Compelling VlogFrank La Vigne
 
Slaying The Legacy Dragon: Practical Lessons in Replacing Old Software
Slaying The Legacy Dragon: Practical Lessons in Replacing Old SoftwareSlaying The Legacy Dragon: Practical Lessons in Replacing Old Software
Slaying The Legacy Dragon: Practical Lessons in Replacing Old SoftwareTim Berglund
 
Performance - a challenging craft
Performance  - a challenging craftPerformance  - a challenging craft
Performance - a challenging craftFabian Lange
 
Leading with Tech Safety: An Unexpected Pathway to Excellence
Leading with Tech Safety: An Unexpected Pathway to ExcellenceLeading with Tech Safety: An Unexpected Pathway to Excellence
Leading with Tech Safety: An Unexpected Pathway to ExcellenceJoshua Kerievsky
 
Steve Krug Explains It All for You - SxSW 2011
Steve Krug Explains It All for You - SxSW 2011Steve Krug Explains It All for You - SxSW 2011
Steve Krug Explains It All for You - SxSW 2011Steve Krug
 
Akka in 100 slides or less
Akka in 100 slides or lessAkka in 100 slides or less
Akka in 100 slides or lessDerek Wyatt
 

Semelhante a Beware The Brittle Dragon - A Test Automation Epic Tale (20)

Scaling Your Tests: Continued Change Without Fear
Scaling Your Tests: Continued Change Without FearScaling Your Tests: Continued Change Without Fear
Scaling Your Tests: Continued Change Without Fear
 
TDD and Getting Paid
TDD and Getting PaidTDD and Getting Paid
TDD and Getting Paid
 
From Gatekeeper to Partner by Kelsey Shannahan
From Gatekeeper to Partner by Kelsey ShannahanFrom Gatekeeper to Partner by Kelsey Shannahan
From Gatekeeper to Partner by Kelsey Shannahan
 
The Most Important Thing: How Mozilla Does Security and What You Can Steal
The Most Important Thing: How Mozilla Does Security and What You Can StealThe Most Important Thing: How Mozilla Does Security and What You Can Steal
The Most Important Thing: How Mozilla Does Security and What You Can Steal
 
An Agilist's Guide to Excelling on a Scrum Team as a Tester
An Agilist's Guide to Excelling on a Scrum Team as a TesterAn Agilist's Guide to Excelling on a Scrum Team as a Tester
An Agilist's Guide to Excelling on a Scrum Team as a Tester
 
Machine Learning Exposed - James Weaver - Codemotion Amsterdam 2017
Machine Learning Exposed - James Weaver - Codemotion Amsterdam 2017Machine Learning Exposed - James Weaver - Codemotion Amsterdam 2017
Machine Learning Exposed - James Weaver - Codemotion Amsterdam 2017
 
The Missing Piece between Discovery and Execution
The Missing Piece between Discovery and ExecutionThe Missing Piece between Discovery and Execution
The Missing Piece between Discovery and Execution
 
Solving Flaky Automated Tests Using Machine Learning
Solving Flaky Automated Tests Using Machine LearningSolving Flaky Automated Tests Using Machine Learning
Solving Flaky Automated Tests Using Machine Learning
 
UX Without the U Is Your X
UX Without the U Is Your XUX Without the U Is Your X
UX Without the U Is Your X
 
Coaching Testing
Coaching Testing Coaching Testing
Coaching Testing
 
Building for resilience (with speaking notes)
Building for resilience (with speaking notes)Building for resilience (with speaking notes)
Building for resilience (with speaking notes)
 
Real World Lessons On The Anti-Patterns of Node.JS
Real World Lessons On The Anti-Patterns of Node.JSReal World Lessons On The Anti-Patterns of Node.JS
Real World Lessons On The Anti-Patterns of Node.JS
 
What to Avoid When Writing Unit Tests - Robert Fornal
What to Avoid When Writing Unit Tests - Robert FornalWhat to Avoid When Writing Unit Tests - Robert Fornal
What to Avoid When Writing Unit Tests - Robert Fornal
 
Node.js Anti Patterns
Node.js Anti PatternsNode.js Anti Patterns
Node.js Anti Patterns
 
Tips on Starting a Compelling Vlog
Tips on Starting a Compelling VlogTips on Starting a Compelling Vlog
Tips on Starting a Compelling Vlog
 
Slaying The Legacy Dragon: Practical Lessons in Replacing Old Software
Slaying The Legacy Dragon: Practical Lessons in Replacing Old SoftwareSlaying The Legacy Dragon: Practical Lessons in Replacing Old Software
Slaying The Legacy Dragon: Practical Lessons in Replacing Old Software
 
Performance - a challenging craft
Performance  - a challenging craftPerformance  - a challenging craft
Performance - a challenging craft
 
Leading with Tech Safety: An Unexpected Pathway to Excellence
Leading with Tech Safety: An Unexpected Pathway to ExcellenceLeading with Tech Safety: An Unexpected Pathway to Excellence
Leading with Tech Safety: An Unexpected Pathway to Excellence
 
Steve Krug Explains It All for You - SxSW 2011
Steve Krug Explains It All for You - SxSW 2011Steve Krug Explains It All for You - SxSW 2011
Steve Krug Explains It All for You - SxSW 2011
 
Akka in 100 slides or less
Akka in 100 slides or lessAkka in 100 slides or less
Akka in 100 slides or less
 

Último

Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnAmarnathKambale
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesVictorSzoltysek
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdfPearlKirahMaeRagusta1
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfVishalKumarJha10
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...software pro Development
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024Mind IT Systems
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 

Último (20)

Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 

Beware The Brittle Dragon - A Test Automation Epic Tale

  • 1. 🐉 Beware the Brittle Dragon - Luca Giovenzana & Angelo Caovilla
  • 2. 🐉 Beware the Brittle Dragon - Luca Giovenzana & Angelo Caovilla Moral of the Story
  • 3. 🐉 Beware the Brittle Dragon - Luca Giovenzana & Angelo Caovilla What exactly is a brittle test?
  • 4. 🐉 Beware the Brittle Dragon - Luca Giovenzana & Angelo Caovilla What exactly is a brittle test? Fragile, flaky, easy to break Not deterministic result Run 1 Input Run 2 Run 3 Run 4 Not due to only the test code
  • 5. 🐉 Beware the Brittle Dragon - Luca Giovenzana & Angelo Caovilla Raise your hand if you ever had to deal with brittle tests!
  • 6. 🐉 Beware the Brittle Dragon - Luca Giovenzana & Angelo Caovilla What are the consequences of brittle tests?
  • 7. 🐉 Beware the Brittle Dragon - Luca Giovenzana & Angelo Caovilla High Maintenance Cost Keyword test 1 test 2 test 3 test 4 75% Fail Rollercoaster result trend
  • 8. 🐉 Beware the Brittle Dragon - Luca Giovenzana & Angelo Caovilla High Maintenance Cost Debug and manual test Fix broken tests
  • 9. 🐉 Beware the Brittle Dragon - Luca Giovenzana & Angelo Caovilla Real Example Test 1...50 Precondition Step Assert Nightly regression tests (1000+) Most of the time working This time many tests failed RELEASE DROP What would you do?
  • 10. 🐉 Beware the Brittle Dragon - Luca Giovenzana & Angelo Caovilla Hidden Fail Test 1 Precondition Step Assert Test 50 Precondition Step Assert Cognitive bias: test fails only because of the precondition What if a real fail has been hidden? Test 1 Precondition Step Assert Test 50 Precondition Step Assert BUG!
  • 11. 🐉 Beware the Brittle Dragon - Luca Giovenzana & Angelo Caovilla Useless feedback
  • 12. 🐉 Beware the Brittle Dragon - Luca Giovenzana & Angelo Caovilla Low Trust - Low Morale Worthless feedback ignored Maintenance avoided Tests get even more broken Automation is not trusted V i c i o u s L o o p Effort with no results No result == No commitment
  • 13. 🐉 Beware the Brittle Dragon - Luca Giovenzana & Angelo Caovilla What makes our tests brittle?
  • 14. 🐉 Beware the Brittle Dragon - Luca Giovenzana & Angelo Caovilla How can we defeat the Dragon?
  • 15. 🐉 Beware the Brittle Dragon - Luca Giovenzana & Angelo Caovilla Ice Cream Testing Pyramid Real world: Ice Cream Practical Test Pyramid Ham Vocke - Martin Fowler’s blog
  • 16. 🐉 Beware the Brittle Dragon - Luca Giovenzana & Angelo Caovilla Ice Cream Move Down to the Pyramid Tests Part of tests Setup & Teardown Diamo una chance alle codebase legacy Nicola Mincuzzi
  • 17. 🐉 Beware the Brittle Dragon - Luca Giovenzana & Angelo Caovilla Multipurpose / Holistic Test 1 Setup Register Assert Registration test: Login Assert ... Assert
  • 18. 🐉 Beware the Brittle Dragon - Luca Giovenzana & Angelo Caovilla Multipurpose / Holistic “There should never be more than one reason for a class to change” Robert C. Martin (Uncle Bob) “There should never be more than one reason for a test to fail” Single Responsibility Principle
  • 19. 🐉 Beware the Brittle Dragon - Luca Giovenzana & Angelo Caovilla Multipurpose / Holistic Test 1 Registration Check User Single assert Single Responsibility Setup 1 Checkout Setup 2 Streaming Test 1 Registration Test 2 Login Test one thing
  • 20. 🐉 Beware the Brittle Dragon - Luca Giovenzana & Angelo Caovilla Poor Design Sleep Best effort automation Quick and Dirty Longer learning curve
  • 21. 🐉 Beware the Brittle Dragon - Luca Giovenzana & Angelo Caovilla Poor Design Invest in automation Agree on development guidelines (Pekka’s how to write good test cases) How to write good test cases using Robot Framework Pekka Clark
  • 22. 🐉 Beware the Brittle Dragon - Luca Giovenzana & Angelo Caovilla Poor Design Reduce technical debt Pair development Boy Scout Rule: “Always leave the code you are editing better than you found it” Robert C. Martin (Uncle Bob)
  • 23. 🐉 Beware the Brittle Dragon - Luca Giovenzana & Angelo Caovilla Good and Bad Technical Debt “Anything about your code that slows you down over the long term. Hard-to-read code, duplication, tangled dependencies, etc.” Good And Bad Technical Debt Henrik Kniberg
  • 24. 🐉 Beware the Brittle Dragon - Luca Giovenzana & Angelo Caovilla Unreliable and slow environment Undersized Environment Front End Developer Dev - Ops experiment Business test Backend Mad Developer (internal server error hero) Super complicated auto implosion mega query Third part never-working services
  • 25. 🐉 Beware the Brittle Dragon - Luca Giovenzana & Angelo Caovilla Unreliable and slow environment Dedicated test environment Pay for limitless resources
  • 26. 🐉 Beware the Brittle Dragon - Luca Giovenzana & Angelo Caovilla Unreliable and slow environment Mock third party systems Strive for performances
  • 27. 🐉 Beware the Brittle Dragon - Luca Giovenzana & Angelo Caovilla Hard coded data Limited products Test product: 3E24B278-D1EC-358C-ADE5-F51703BBB342
  • 28. 🐉 Beware the Brittle Dragon - Luca Giovenzana & Angelo Caovilla Hard coded Data Data Preparation Data Targeting Teardown Matters
  • 29. 🐉 Beware the Brittle Dragon - Luca Giovenzana & Angelo Caovilla No continuous Testing Test suite needs to be executed People is lazy forget to run Not comparable results
  • 30. 🐉 Beware the Brittle Dragon - Luca Giovenzana & Angelo Caovilla No continuous Testing Continuous testing to collect feedback
  • 31. 🐉 Beware the Brittle Dragon - Luca Giovenzana & Angelo Caovilla Remove/reduce barriers to test execution No continuous Testing
  • 32. 🐉 Beware the Brittle Dragon - Luca Giovenzana & Angelo Caovilla Daily Standup No continuous Testing Include test feedback in release process Discuss reports together
  • 33. 🐉 Beware the Brittle Dragon - Luca Giovenzana & Angelo Caovilla Happy Ending
  • 34. 🐉 Beware the Brittle Dragon - Luca Giovenzana & Angelo Caovilla Automate everything
  • 35. 🐉 Beware the Brittle Dragon - Luca Giovenzana & Angelo Caovilla Quality assistance Whole team in charge for quality More TDD and pair programming Quality Assistance over Quality Assurance BDD and TDD Outside in
  • 36. 🐉 Beware the Brittle Dragon - Luca Giovenzana & Angelo Caovilla Robot Framework BDD *** Settings *** Library SeleniumLibrary Resource settings.resource *** Test Cases *** App Game Available Given The Browser When Navigate To The App Game Then Title Should Be Tic Tac Toe *** Keywords *** Given The Browser Open Browser ${EMPTY} ${BROWSER} When Navigate To The App Game Go To ${APP_URL}
  • 37. 🐉 Beware the Brittle Dragon - Luca Giovenzana & Angelo Caovilla Quality Assistance Team Angelo Caovilla Roberta Massimino Fabrizio Premoli Emanuele Bonanno Art Director Matteo Villa All CHILI ex-colleagues Special Thanks to
  • 38. 🐉 Beware the Brittle Dragon - Luca Giovenzana & Angelo Caovilla Contacts Angelo Caovilla acaovilla Robot Framework Milano lucagiove Luca Giovenzana @luboxit