SlideShare una empresa de Scribd logo
1 de 35
“Myths which are believed in tend
to become true.” ~ George Orwell
Ash Winter
Short stuff here:
@northern_tester
Long stuff here:
A Testers* Guide to the Illusions
of Unit Testing
* Disclaimer: this definitely maybe applies to all disciplines in software
development, not only testers but I’m a tester so its from my point of view.
This is Gus
• Speakeasy
• Great
mentor
• Taught me
speaking
wasn’t only
about me
Tweet
Blog
Talk
• Lone testers
• Testers as
coaches
• Testing in
other layers
• Sum of all
testing
• Cross
discipline
illusions
Y Tho?
• Reactions
• Tyranny of
pyramids
• What is a
unit?
• Colin’s
Pop Quiz…
• Toolkits
Coming up…
Goonies
• Testing meetup
• Strategy without unit tests
• I shut them down…
Word
• “I’ve
written my
unit test
plan.”
• O rly…?
• But they
were
testing
Reactions
• Your scenarios
• In pairs
please
• One scenario
each
• Positive
responses –
start dialogue
• Negative
responses –
shut downs
Now a word from the sponsors of
most unit testing illusions…
• Useful frame of reference?
• Dogma justifying blood sacrifice?
• Source of many illusions…
That Pyramid…
• That unit tests fill in the bottom of the
pyramid
• That unit tests remain in the bottom layer of
the pyramid
• That unit tests are inherently more valuable
than other layers of tests
• That unit test coverage is irrelevant to
manual testing
• Large number of unit tests can replace
integration tests.
• You don't need additional tests because
everything is unit tested
• If you have a suite of unit tests you don't
need to do much other testing
The Pyramid…
• Do unit tests
supersede all
other forms of
testing?
• Still deliver what
someone that
matters wants?
• Get in their shoes
• Time to make
empathy our
superpower…
Could it be true?
• Pairs or
threes
• Large sheet
of paper
• Lets empathy
map
• (2 or 3
sections)
I know those feels
Belief: If you have unit tests, you don’t need to invest (too
much) in other forms of testing…
Existential Questions
• Existence == good
• Tests exist to find bugs
• Unit tests communicate intent
• What’s a unit?
What is a unit then?
• “That
there is a
unit to
test”
• Method?
• Class?
• Service?
• How to
find the
unit?
Reinventing the wheel…
For example…
Microservice
Single
Database
Multiple
Applications
Broker/Queue
Based
More group work…
• Pairs or
threes
• Unit Owner
• Draw the
wheel, if
it helps
• Wheel and
supporting
notes
• What factors
help to find
a unit of
your system?
• What
practices &
patterns
influence
that unit?
• How
practices
and patterns
govern size
of a unit?
Pop Quiz Hotshots
• Devs always
write them
• Devs never
write them
• Testers
shouldn’t
write them
• What does
good look
like…
Colin
Friends of Ilkley Moor
Bad?
Atomic?
Trustworthy?
Readable?
Structured?
• Help find out what a unit is
• Do some TDD
• Lens into the assumptions & bias
• Question assertions
• Anything else?
As a tester
• Integrate with
the test
strategy
• Code coverage
!= test
coverage
• Pair on writing
unit tests
• Anything else?
Help from devs
Thanks

Más contenido relacionado

La actualidad más candente

September 18 -10. idiom, vocabulary review game, unit 1 test
September 18 -10. idiom, vocabulary review game, unit 1 testSeptember 18 -10. idiom, vocabulary review game, unit 1 test
September 18 -10. idiom, vocabulary review game, unit 1 testIECP
 
QFT in practise
QFT in practiseQFT in practise
QFT in practisesurridgeer
 
Say Something
Say SomethingSay Something
Say SomethingSandyNess
 
Napkin Introduction to Systems Thinking - What is ST?
Napkin Introduction to Systems Thinking - What is ST?Napkin Introduction to Systems Thinking - What is ST?
Napkin Introduction to Systems Thinking - What is ST?Nicolas Stampf
 
Discussion Board: Grading and Best Practices
Discussion Board: Grading and Best PracticesDiscussion Board: Grading and Best Practices
Discussion Board: Grading and Best Practicesmmcroberts
 

La actualidad más candente (6)

useful study technique
useful study techniqueuseful study technique
useful study technique
 
September 18 -10. idiom, vocabulary review game, unit 1 test
September 18 -10. idiom, vocabulary review game, unit 1 testSeptember 18 -10. idiom, vocabulary review game, unit 1 test
September 18 -10. idiom, vocabulary review game, unit 1 test
 
QFT in practise
QFT in practiseQFT in practise
QFT in practise
 
Say Something
Say SomethingSay Something
Say Something
 
Napkin Introduction to Systems Thinking - What is ST?
Napkin Introduction to Systems Thinking - What is ST?Napkin Introduction to Systems Thinking - What is ST?
Napkin Introduction to Systems Thinking - What is ST?
 
Discussion Board: Grading and Best Practices
Discussion Board: Grading and Best PracticesDiscussion Board: Grading and Best Practices
Discussion Board: Grading and Best Practices
 

Similar a Testers Guide to the Illusions of Unit 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 TestingAsh Winter
 
Design, Create, Evaluate Process (1).pptx
Design, Create, Evaluate Process (1).pptxDesign, Create, Evaluate Process (1).pptx
Design, Create, Evaluate Process (1).pptxLe Hung
 
Creating Yourself as a Tester - Keynote Nordic Testing Days June 2017
Creating Yourself as a Tester - Keynote Nordic Testing Days June 2017Creating Yourself as a Tester - Keynote Nordic Testing Days June 2017
Creating Yourself as a Tester - Keynote Nordic Testing Days June 2017Alan Richardson
 
Bad metric, bad! - Joseph Ours
Bad metric, bad! - Joseph OursBad metric, bad! - Joseph Ours
Bad metric, bad! - Joseph OursQA or the Highway
 
Social Human Architecture for Beginners
Social Human Architecture for BeginnersSocial Human Architecture for Beginners
Social Human Architecture for BeginnersSebastian Schürmann
 
"Worst" practices of software testing
"Worst" practices of software testing"Worst" practices of software testing
"Worst" practices of software testingViktor Slavchev
 
Passionate Partnering, for Testers
Passionate Partnering, for TestersPassionate Partnering, for Testers
Passionate Partnering, for TestersSQALab
 
Stephanie Cooper - Genuine Curiosity - Conversations for Change
Stephanie Cooper - Genuine Curiosity - Conversations for ChangeStephanie Cooper - Genuine Curiosity - Conversations for Change
Stephanie Cooper - Genuine Curiosity - Conversations for ChangeAgileNZ Conference
 
Building a QA Mindset
Building a QA Mindset Building a QA Mindset
Building a QA Mindset Johan Hoberg
 
V2 rca ne 9 may feb 2013 final part2 introduction to systems coaching 2
V2 rca ne 9 may feb 2013 final part2 introduction to systems coaching 2V2 rca ne 9 may feb 2013 final part2 introduction to systems coaching 2
V2 rca ne 9 may feb 2013 final part2 introduction to systems coaching 2asuthgb
 
An MBTI approach to more effective team working FINAL.ppt
An MBTI approach to more effective team working FINAL.pptAn MBTI approach to more effective team working FINAL.ppt
An MBTI approach to more effective team working FINAL.pptCaineTeoGenVee
 
The 4-hour Tester Experiment
The 4-hour Tester ExperimentThe 4-hour Tester Experiment
The 4-hour Tester ExperimentHelena Jeret-Mäe
 
Rss Oct 2011 Mixed Modes Pres2
Rss Oct 2011 Mixed Modes Pres2Rss Oct 2011 Mixed Modes Pres2
Rss Oct 2011 Mixed Modes Pres2GerryNicolaas
 
Games User Research by Valen
Games User Research by ValenGames User Research by Valen
Games User Research by ValenAgate Studio
 
The Axioms of Testing
The Axioms of TestingThe Axioms of Testing
The Axioms of TestingPaul Gerrard
 
Understanding Lean & Agile Coaching Agile and Beyond 2018
Understanding Lean & Agile Coaching Agile and Beyond 2018Understanding Lean & Agile Coaching Agile and Beyond 2018
Understanding Lean & Agile Coaching Agile and Beyond 2018Paul Boos
 
Better UX Can Start With Motivation and Management
Better UX Can Start With Motivation and ManagementBetter UX Can Start With Motivation and Management
Better UX Can Start With Motivation and ManagementUXPA International
 
Usability Testing Popup Lab Workshop
Usability Testing Popup Lab WorkshopUsability Testing Popup Lab Workshop
Usability Testing Popup Lab WorkshopCate Kompare
 

Similar a Testers Guide to the Illusions of Unit Testing (20)

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
 
Design, Create, Evaluate Process (1).pptx
Design, Create, Evaluate Process (1).pptxDesign, Create, Evaluate Process (1).pptx
Design, Create, Evaluate Process (1).pptx
 
Creating Yourself as a Tester - Keynote Nordic Testing Days June 2017
Creating Yourself as a Tester - Keynote Nordic Testing Days June 2017Creating Yourself as a Tester - Keynote Nordic Testing Days June 2017
Creating Yourself as a Tester - Keynote Nordic Testing Days June 2017
 
Bad metric, bad! - Joseph Ours
Bad metric, bad! - Joseph OursBad metric, bad! - Joseph Ours
Bad metric, bad! - Joseph Ours
 
Bad metric, bad!
Bad metric, bad!Bad metric, bad!
Bad metric, bad!
 
Social Human Architecture for Beginners
Social Human Architecture for BeginnersSocial Human Architecture for Beginners
Social Human Architecture for Beginners
 
"Worst" practices of software testing
"Worst" practices of software testing"Worst" practices of software testing
"Worst" practices of software testing
 
Passionate Partnering, for Testers
Passionate Partnering, for TestersPassionate Partnering, for Testers
Passionate Partnering, for Testers
 
Stephanie Cooper - Genuine Curiosity - Conversations for Change
Stephanie Cooper - Genuine Curiosity - Conversations for ChangeStephanie Cooper - Genuine Curiosity - Conversations for Change
Stephanie Cooper - Genuine Curiosity - Conversations for Change
 
GROW model
GROW modelGROW model
GROW model
 
Building a QA Mindset
Building a QA Mindset Building a QA Mindset
Building a QA Mindset
 
V2 rca ne 9 may feb 2013 final part2 introduction to systems coaching 2
V2 rca ne 9 may feb 2013 final part2 introduction to systems coaching 2V2 rca ne 9 may feb 2013 final part2 introduction to systems coaching 2
V2 rca ne 9 may feb 2013 final part2 introduction to systems coaching 2
 
An MBTI approach to more effective team working FINAL.ppt
An MBTI approach to more effective team working FINAL.pptAn MBTI approach to more effective team working FINAL.ppt
An MBTI approach to more effective team working FINAL.ppt
 
The 4-hour Tester Experiment
The 4-hour Tester ExperimentThe 4-hour Tester Experiment
The 4-hour Tester Experiment
 
Rss Oct 2011 Mixed Modes Pres2
Rss Oct 2011 Mixed Modes Pres2Rss Oct 2011 Mixed Modes Pres2
Rss Oct 2011 Mixed Modes Pres2
 
Games User Research by Valen
Games User Research by ValenGames User Research by Valen
Games User Research by Valen
 
The Axioms of Testing
The Axioms of TestingThe Axioms of Testing
The Axioms of Testing
 
Understanding Lean & Agile Coaching Agile and Beyond 2018
Understanding Lean & Agile Coaching Agile and Beyond 2018Understanding Lean & Agile Coaching Agile and Beyond 2018
Understanding Lean & Agile Coaching Agile and Beyond 2018
 
Better UX Can Start With Motivation and Management
Better UX Can Start With Motivation and ManagementBetter UX Can Start With Motivation and Management
Better UX Can Start With Motivation and Management
 
Usability Testing Popup Lab Workshop
Usability Testing Popup Lab WorkshopUsability Testing Popup Lab Workshop
Usability Testing Popup Lab Workshop
 

Más de Ash Winter

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
 
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
 
Making testability our mission
Making testability our missionMaking testability our mission
Making testability our missionAsh 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
 
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
 

Más de Ash Winter (20)

Testability Advocacy Canvas
Testability Advocacy CanvasTestability Advocacy Canvas
Testability Advocacy Canvas
 
Testability Sales Pitch
Testability Sales PitchTestability Sales Pitch
Testability Sales Pitch
 
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 Barcelona
 
Testability Squad Health Check
Testability Squad Health CheckTestability Squad Health Check
Testability Squad Health Check
 
Testability is Everyone's Responsibility
Testability is Everyone's ResponsibilityTestability is Everyone's Responsibility
Testability is Everyone's Responsibility
 
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
 
Making testability our mission
Making testability our missionMaking testability our mission
Making testability our mission
 
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
 
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
 

Último

WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 

Último (20)

WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 

Testers Guide to the Illusions of Unit Testing

Notas del editor

  1. Class
  2. Class
  3. Class
  4. Class
  5. Class
  6. use of a loader to set up a database… so the database needs to exist and be running on the environment the test is running in contents of the database can be changed by config changes our desired test behaviour is overriding some kinds of database lookup anyway
  7. use of a loader to set up a database… so the database needs to exist and be running on the environment the test is running in contents of the database can be changed by config changes our desired test behaviour is overriding some kinds of database lookup anyway
  8. Atomic - runs alone without needing other tests to run before or after. Excessively simplified to prove the point - the testMultiplyValue will fail if run alone, unless the class actually has “15” as a default value, in which case the first test is useless.
  9. Trustworthy - runs anywhere - dev machine, docker container, CI flow. Should not depend on external processes, particular paths etc.. setting up all the dependencies itself. This example seems straightforward, but will fail if the timezone is ‘America/Los_Angeles’ for example.
  10. Readable - can you work it out just by reading. This example fails on both fronts, with mixed tabs and spaces, inconsistent indents, poor variable naming, spelling issues and bad test names (to be fair to the author of the test I used as an example here, the formatting, variable names and spelling I’ve deliberately made much worse, but the original isn’t still hard to understand)
  11. Notes: Next, something much clearer: If you can clearly break your test up into these sections it will be more readable. 1,2 setup 3 execute 4 verify 5,6 teardown It seems obvious, but some of this often gets mixed up - and is not always clear.
  12. NO QUESTIONS, HAVE A BEER.