SlideShare une entreprise Scribd logo
1  sur  44
More Development 
Than Ever 
Test Driven Development
Team Lead at EPAM 
Agile practitioner (CSM) 
Trainer 
Public speaker
Writes perfect code with no bugs 
Also saves the world during coffee breaks
I’m more like 
this guy
Billions of years ago… 
In the stone age of computer science… 
© Mutatis mutandis
© Computer History Museum
1994–95: 
rediscovered by 
Kent Beck 
© Improve It
2014 – 1995 = ?
2014 – 1999 = 15
2014 – 2002 = 12
I spend too 
much time 
writing tests.
TDD 
Non-TDD 
Think Test Code 
Think Code
Think Test Code 
Think Code 
Debug!!!
In reality 
Think Test Code
TDD vs. debugging only 
Shorter feedback cycle 
Reusable test suite 
Code instead of pen and paper 
Genuine feeling of completeness 
Predictability
I spend too 
much time 
writing tests. 
I would have 
spent this time 
anyway.
It doesn’t apply 
exactly to my 
case.
Legacy code
Front-end
Embedded 
systems
It doesn’t apply 
exactly to my 
case. 
There’s a fair 
chance my case 
is not unique.
I’m new to the 
technology, 
I can’t test what 
I don’t know.
It’s OK to use a debugger 
It’s OK to go back and forth
Test is a hypothesis 
you can prove on the spot.
I’m new to the 
technology, 
I can’t test what 
I don’t know. 
TDD in fact 
helps me learn.
I have to modify 
the code too 
often, my tests 
become waste.
Think Test Code Refactor
Think Test Code Refactor
I have to modify 
the code too 
often, my tests 
become waste. 
Code without 
tests is non-existing 
to me.
My project is 
too agile, don’t 
have time for 
tests! 
Well…
Requirements Waterfall 
Design 
Implementation 
Verification 
Maintenance
Agile 
Requirements 
Design 
Implementation 
Verification 
Maintenance 
Requirements 
Design 
Implementation 
Verification 
Maintenance 
Requirements 
Design 
Implementation 
Verification 
Maintenance
My project is 
too agile, don’t 
have time for 
tests! 
I use TDD to 
build in quality 
into my code.
Driven 
Test Development
TDD is a way to 
prepare your 
workplace and 
keep it safe 
© johnjazz
There strategy 
And there’s 
execution 
And execution is 
hard
http://kirbarn.blogpost.com 
kiryl.baranoshnik@gmail.com 
@kirbarn
References 
Ten Years Of Test Driven Development 
Why does Kent Beck refer to the "rediscovery" of test-driven development? (Quora) 
Waterfall model (Wikipedia) 
JQuery
Books 
"Extreme Programming Explained: Embrace Change" by Kent Beck, Cynthia Andres 
"Test Driven Development: By Example" by Kent Beck 
"Working Effectively with Legacy Code" by Michael C. Feathers 
"Test Driven Development for Embedded C" by James W. Grenning
Image sources 
http://commons.wikimedia.org/wiki/File:Kent_Beck_no_Workshop_Mapping_XP.jpg 
http://www.freeimages.com/photo/903964 
http://commons.wikimedia.org/wiki/File:Punched_card.jpg 
http://www.computerhistory.org/revolution/punched-cards/2/4/40 
http://wall.alphacoders.com/big.php?i=62375 
http://m.pegitboard.com/pin/b0b39cd746fcdabcc1000acff560051b 
https://ru.wikipedia.org/wiki/Keep_Calm_and_Carry_On#mediaviewer/File:Keep_Calm_and_ 
Carry_On_Poster.svg 
http://www.belconsole.by/Tematicheskie_razdely/strategii/starcraft_ii_heart_of_the_swarm/ 
starcraft_ii_heart_of_the_swarm_dopolnenie_pc_jewel_/

Contenu connexe

Tendances

Software Development Essential Skills
Software Development Essential SkillsSoftware Development Essential Skills
Software Development Essential Skills
John Choi
 
The ten commandments of TDD
The ten commandments of TDDThe ten commandments of TDD
The ten commandments of TDD
Hernan Wilkinson
 
10 things I've learned
10 things I've learned10 things I've learned
10 things I've learned
Andrei Savu
 
2013 09-11 java zone - extreme programming live
2013 09-11 java zone - extreme programming live2013 09-11 java zone - extreme programming live
2013 09-11 java zone - extreme programming live
Johannes Brodwall
 

Tendances (19)

Rise of the Heisenbug
Rise of the HeisenbugRise of the Heisenbug
Rise of the Heisenbug
 
The Way of The Software Craftsman # Part One: The Beginning
The Way of The Software Craftsman # Part One: The BeginningThe Way of The Software Craftsman # Part One: The Beginning
The Way of The Software Craftsman # Part One: The Beginning
 
Level Up Your Automated Tests
Level Up Your Automated TestsLevel Up Your Automated Tests
Level Up Your Automated Tests
 
Software Development Essential Skills
Software Development Essential SkillsSoftware Development Essential Skills
Software Development Essential Skills
 
TDD & Effective Software Development
TDD & Effective Software DevelopmentTDD & Effective Software Development
TDD & Effective Software Development
 
Code Review Matters and Manners
Code Review Matters and MannersCode Review Matters and Manners
Code Review Matters and Manners
 
Development without Testers: Myth or Real Option? (ConfeT&QA conference)
Development without Testers: Myth or Real Option? (ConfeT&QA conference)Development without Testers: Myth or Real Option? (ConfeT&QA conference)
Development without Testers: Myth or Real Option? (ConfeT&QA conference)
 
Introduction to Test Driven Development
Introduction to Test Driven DevelopmentIntroduction to Test Driven Development
Introduction to Test Driven Development
 
Tester vs Developer
Tester vs DeveloperTester vs Developer
Tester vs Developer
 
The ten commandments of TDD
The ten commandments of TDDThe ten commandments of TDD
The ten commandments of TDD
 
@LinkingNote annotation in YATSPEC
@LinkingNote annotation in YATSPEC@LinkingNote annotation in YATSPEC
@LinkingNote annotation in YATSPEC
 
Bringing Open-Source Practices to Your Day Job
Bringing Open-Source Practices to Your Day JobBringing Open-Source Practices to Your Day Job
Bringing Open-Source Practices to Your Day Job
 
Beyond Technical Debt: Unconventional techniques to uncover technical and soc...
Beyond Technical Debt: Unconventional techniques to uncover technical and soc...Beyond Technical Debt: Unconventional techniques to uncover technical and soc...
Beyond Technical Debt: Unconventional techniques to uncover technical and soc...
 
Pair programming demystified
Pair programming demystifiedPair programming demystified
Pair programming demystified
 
What I wish colleges and bootcamps taught software developers
What I wish colleges and bootcamps taught software developersWhat I wish colleges and bootcamps taught software developers
What I wish colleges and bootcamps taught software developers
 
10 things I've learned
10 things I've learned10 things I've learned
10 things I've learned
 
Impression from Geecon 2014
Impression from Geecon 2014 Impression from Geecon 2014
Impression from Geecon 2014
 
2013 09-11 java zone - extreme programming live
2013 09-11 java zone - extreme programming live2013 09-11 java zone - extreme programming live
2013 09-11 java zone - extreme programming live
 
Small Hyper-Productive Teams (IT Brunch)
Small Hyper-Productive Teams (IT Brunch)Small Hyper-Productive Teams (IT Brunch)
Small Hyper-Productive Teams (IT Brunch)
 

Similaire à Test Driven Development: More Development Than Ever

TDD in PHP - Memphis PHP 2011-08-25
TDD in PHP - Memphis PHP 2011-08-25TDD in PHP - Memphis PHP 2011-08-25
TDD in PHP - Memphis PHP 2011-08-25
Jeremy Kendall
 
Agile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin NakovAgile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin Nakov
Svetlin Nakov
 
The problem with tdd
The problem with tddThe problem with tdd
The problem with tdd
Dror Helper
 

Similaire à Test Driven Development: More Development Than Ever (20)

Test-Driven Development In Action
Test-Driven Development In ActionTest-Driven Development In Action
Test-Driven Development In Action
 
TDD Anti-patterns (2022 edition)
TDD Anti-patterns (2022 edition)TDD Anti-patterns (2022 edition)
TDD Anti-patterns (2022 edition)
 
Test Driven Development on Android (Kotlin Kenya)
Test Driven Development on Android (Kotlin Kenya)Test Driven Development on Android (Kotlin Kenya)
Test Driven Development on Android (Kotlin Kenya)
 
Understanding Why Testing is Importaint
Understanding Why Testing is ImportaintUnderstanding Why Testing is Importaint
Understanding Why Testing is Importaint
 
Intro to TDD
Intro to TDDIntro to TDD
Intro to TDD
 
Ian Cooper webinar for DDD Iran: Kent beck style tdd seven years after
Ian Cooper webinar for DDD Iran: Kent beck style tdd   seven years afterIan Cooper webinar for DDD Iran: Kent beck style tdd   seven years after
Ian Cooper webinar for DDD Iran: Kent beck style tdd seven years after
 
Real developers-dont-need-unit-tests
Real developers-dont-need-unit-testsReal developers-dont-need-unit-tests
Real developers-dont-need-unit-tests
 
Real developers-dont-need-unit-tests
Real developers-dont-need-unit-testsReal developers-dont-need-unit-tests
Real developers-dont-need-unit-tests
 
Real developers-dont-need-unit-tests
Real developers-dont-need-unit-testsReal developers-dont-need-unit-tests
Real developers-dont-need-unit-tests
 
Test Driven Development Methodology and Philosophy
Test Driven Development Methodology and Philosophy Test Driven Development Methodology and Philosophy
Test Driven Development Methodology and Philosophy
 
Creating change from within - Agile Practitioners 2012
Creating change from within - Agile Practitioners 2012Creating change from within - Agile Practitioners 2012
Creating change from within - Agile Practitioners 2012
 
TDD and Simple Design Workshop - Session 1 - March 2019
TDD and Simple Design Workshop - Session 1 - March 2019TDD and Simple Design Workshop - Session 1 - March 2019
TDD and Simple Design Workshop - Session 1 - March 2019
 
TDD in PHP - Memphis PHP 2011-08-25
TDD in PHP - Memphis PHP 2011-08-25TDD in PHP - Memphis PHP 2011-08-25
TDD in PHP - Memphis PHP 2011-08-25
 
Outside-in Testing in Vue with Cypress
Outside-in Testing in Vue with CypressOutside-in Testing in Vue with Cypress
Outside-in Testing in Vue with Cypress
 
Test-Driven Developments are Inefficient; Behavior-Driven Developments are a ...
Test-Driven Developments are Inefficient; Behavior-Driven Developments are a ...Test-Driven Developments are Inefficient; Behavior-Driven Developments are a ...
Test-Driven Developments are Inefficient; Behavior-Driven Developments are a ...
 
Agile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin NakovAgile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin Nakov
 
The problem with tdd
The problem with tddThe problem with tdd
The problem with tdd
 
TDD - Christchurch APN May 2012
TDD - Christchurch APN May 2012TDD - Christchurch APN May 2012
TDD - Christchurch APN May 2012
 
TDD - Unit testing done right and programmer happiness
TDD - Unit testing done right and programmer happinessTDD - Unit testing done right and programmer happiness
TDD - Unit testing done right and programmer happiness
 
Joe Cisar - Everything I Know About TDD - Agile Midwest 2019
Joe Cisar - Everything I Know About TDD - Agile Midwest 2019Joe Cisar - Everything I Know About TDD - Agile Midwest 2019
Joe Cisar - Everything I Know About TDD - Agile Midwest 2019
 

Dernier

Dernier (20)

MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 

Test Driven Development: More Development Than Ever