SlideShare a Scribd company logo
1
Test Driven
Development (TDD)
Software Craftsmanship
2
@spinelli_edu
Software Craftsmanship
3
@spinelli_edu
We Are!!!
4
@spinelli_edu
Why Test?
5
➔ Quality
➔ Cost
➔ Laziness
@spinelli_edu
6
@spinelli_edu
The Importance of Testing
7
@spinelli_edu
Knight Capital Group's
In August 2012 Knight
Capital Group Inc., one of
America’s largest trading
firms, mistakenly sent out
more than four million
stock orders in less than an
hour.
The software bug caused
over $440 million in losses,
which is almost four times
what the company made in
2011.
NASA - Mariner 1
When US to send a
spacecraft to Venus. A
hyphen in coded computer
instructions in the data
editing program, resulted in
incorrect guidance signals
being sent to the spacecraft.
The cost for the rocket was
reportedly more than $18
million at the time.
Toyota Recall
Toyota ended up recalling
more than 9 million cars
worldwide in 2010, but it
wasn't because of a
mechanical issue. The cars
had a software bug that
caused a lag in the
anti-lock-brake system. Due
to increased incentive
campaigns, legal liabilities,
and marketing efforts, the
recalls were estimated to
cost Toyota as much as $3
billion.
Unit Test
8
➔ Fast
➔ Automatic
➔ Facilitates Change
➔ Simplifies Integration
@spinelli_edu
Test-Driven Development
9
➔ Focus on Test
➔ Code is Born Tested
➔ Simplicity
➔ Better Class Design Visibility
@spinelli_edu
RED - GREEN - REFACTOR
10
@spinelli_edu
Baby Steps
11
“Write The Simplest Code That Passes The Test”
return true;
@spinelli_edu
Feedback
12
➔ Cohesion
➔ Coupling
➔ Encapsulation
@spinelli_edu
Complex Problems
13
@spinelli_edu
Why developers don’t use TDD
14
➔ Management doesn’t allow us
➔ Not enough time to write tests
➔ My team disagrees whether we should
use TDD
➔ Return On Investment in TDD isn’t
proved
➔ Slow build process
➔ We tried but it didn’t work
➔ I don’t know all requirements upfront to
write all tests @spinelli_edu
Microsoft and IBM
Case study at Microsoft and
IBM and the results indicated
that the number of
four-product defects
decreased by 40-90% over
similar projects that did not
use TDD. However, the study
also showed TDD increased
the initial development time
by 15% to 35%.
Does TDD really help?
15
@spinelli_edu
More Tests
TDD increases code quality,
provides greater ease of
maintenance, and helps
produce 33% more testing
compared to traditional
approaches.
Programmers
The code had coverage
ranging from 92% to 98%. A
qualitative analysis showed
that 87.5% of programmers
believe that TDD facilitated
the understanding of the
requirements and 95.8%
believe that TDD reduced the
time spent debugging.
However, only 50% believe
that TDD helps to decrease
development time. About
quality, 92% believe that TDD
helps maintain a quality code.
When TDD doesn't Work
16
➔ Low Complexity
➔ Domain of Implementation
➔ TDD All Time
➔ 100% code coverage
➔ Test First vs TDD
@spinelli_edu
Books
17
@spinelli_edu
CREDITS
▪ http://manifesto.softwarecraftsmanship.org/
▪ https://crossbrowsertesting.com/blog/development/software-bug-cost/
▪ http://blog.celerity.com/the-true-cost-of-a-software-bug
▪ https://www.seguetech.com/the-benefits-of-unit-testing/
▪ https://technologyconversations.com/2013/12/24/test-driven-development-tdd-best-practices-u
sing-java-examples-2/
▪ http://philippe.bourgau.net/dont-stick-to-tdds-red-green-refactor-loop-to-the-letter/
▪ https://www.mauricioaniche.com/2010/11/cuidado-com-seus-baby-steps/
▪ http://www.extremeprogramming.org/rules/testfirst.html
▪ https://www.mauricioaniche.com/2010/04/tdd-realmente-ajuda/
▪ https://www.javacodegeeks.com/2018/02/developers-dont-use-tdd.html
▪ https://www.casadocodigo.com.br/products/livro-tdd
▪ https://www.amazon.com/Test-Driven-Development-Kent-Beck/dp/0321146530/ref=sr_1_1?ie=UT
F8&qid=1536630271&sr=8-1&keywords=kent+beck
18
@spinelli_edu
19
THANKS!
Any questions?
You can find me at:
▪ @spinelli_edu
▪ eduardosl.dev@gmail.com

More Related Content

What's hot

“High performance teams" - Marco Cecconi
“High performance teams" - Marco Cecconi“High performance teams" - Marco Cecconi
“High performance teams" - Marco Cecconi
Speck&Tech
 
Pertanyaan dan jawaban (graham et.al 2011) part 1
Pertanyaan dan jawaban (graham et.al 2011) part 1Pertanyaan dan jawaban (graham et.al 2011) part 1
Pertanyaan dan jawaban (graham et.al 2011) part 1
ikhwana luthfi
 
Implement BDD with Cucumber and SpecFlow
Implement BDD with Cucumber and SpecFlowImplement BDD with Cucumber and SpecFlow
Implement BDD with Cucumber and SpecFlow
TechWell
 
Try: Fail, Try: Succeed by Tim Grant
Try: Fail, Try: Succeed by Tim GrantTry: Fail, Try: Succeed by Tim Grant
Try: Fail, Try: Succeed by Tim Grant
QA or the Highway
 
Using JIRA for Risk Based Testing - QASymphony Webinar
Using JIRA for Risk Based Testing  - QASymphony WebinarUsing JIRA for Risk Based Testing  - QASymphony Webinar
Using JIRA for Risk Based Testing - QASymphony Webinar
QASymphony
 
The Data Behind DevOps: What Does it Take to be a High Performer? Jenkins Wor...
The Data Behind DevOps: What Does it Take to be a High Performer? Jenkins Wor...The Data Behind DevOps: What Does it Take to be a High Performer? Jenkins Wor...
The Data Behind DevOps: What Does it Take to be a High Performer? Jenkins Wor...
Nicole Forsgren
 
How TPM saves the day
How TPM saves the dayHow TPM saves the day
How TPM saves the dayPooja Tangi
 
Behavior Driven Development—A Guide to Agile Practices by Josh Eastman
Behavior Driven Development—A Guide to Agile Practices by Josh EastmanBehavior Driven Development—A Guide to Agile Practices by Josh Eastman
Behavior Driven Development—A Guide to Agile Practices by Josh Eastman
QA or the Highway
 
Trends in Agile Testing by Lisa Crispin
Trends in Agile Testing by Lisa CrispinTrends in Agile Testing by Lisa Crispin
Trends in Agile Testing by Lisa CrispinDirecti Group
 
Embedded Extreme Programming - Embedded Systems Conference 2002-2004
Embedded Extreme Programming - Embedded Systems Conference 2002-2004Embedded Extreme Programming - Embedded Systems Conference 2002-2004
Embedded Extreme Programming - Embedded Systems Conference 2002-2004
James Grenning
 
ATAGTR2017 Test Craftsmanship - From Effectiveness to Greatness
ATAGTR2017 Test Craftsmanship - From Effectiveness to GreatnessATAGTR2017 Test Craftsmanship - From Effectiveness to Greatness
ATAGTR2017 Test Craftsmanship - From Effectiveness to Greatness
Agile Testing Alliance
 
Secrets and surprises of high performance: What the data says
Secrets and surprises of high performance: What the data saysSecrets and surprises of high performance: What the data says
Secrets and surprises of high performance: What the data says
Nicole Forsgren
 
Building and Scaling High Performing Technology Organizations by Jez Humble a...
Building and Scaling High Performing Technology Organizations by Jez Humble a...Building and Scaling High Performing Technology Organizations by Jez Humble a...
Building and Scaling High Performing Technology Organizations by Jez Humble a...
Agile India
 
How DevOps is Transforming IT, and What it Can Do for Academia
How DevOps is Transforming IT, and What it Can Do for AcademiaHow DevOps is Transforming IT, and What it Can Do for Academia
How DevOps is Transforming IT, and What it Can Do for Academia
Nicole Forsgren
 
QA Fest 2017. Ilari Henrik Aegerter. Complexity Thinking, Cynefin & Why Your ...
QA Fest 2017. Ilari Henrik Aegerter. Complexity Thinking, Cynefin & Why Your ...QA Fest 2017. Ilari Henrik Aegerter. Complexity Thinking, Cynefin & Why Your ...
QA Fest 2017. Ilari Henrik Aegerter. Complexity Thinking, Cynefin & Why Your ...
QAFest
 
Testing and DevOps Culture: Lessons Learned
Testing and DevOps Culture: Lessons LearnedTesting and DevOps Culture: Lessons Learned
Testing and DevOps Culture: Lessons LearnedLB Denker
 
2016 State of DevOps
2016 State of DevOps2016 State of DevOps
2016 State of DevOps
Nicole Forsgren
 
TDD: Facts and Fallacies
TDD: Facts and FallaciesTDD: Facts and Fallacies
TDD: Facts and Fallacies
Stephen Rylander
 
Test Driven Development for Embedded C
Test Driven Development for Embedded CTest Driven Development for Embedded C
Test Driven Development for Embedded C
James Grenning
 

What's hot (20)

“High performance teams" - Marco Cecconi
“High performance teams" - Marco Cecconi“High performance teams" - Marco Cecconi
“High performance teams" - Marco Cecconi
 
Pertanyaan dan jawaban (graham et.al 2011) part 1
Pertanyaan dan jawaban (graham et.al 2011) part 1Pertanyaan dan jawaban (graham et.al 2011) part 1
Pertanyaan dan jawaban (graham et.al 2011) part 1
 
Implement BDD with Cucumber and SpecFlow
Implement BDD with Cucumber and SpecFlowImplement BDD with Cucumber and SpecFlow
Implement BDD with Cucumber and SpecFlow
 
Try: Fail, Try: Succeed by Tim Grant
Try: Fail, Try: Succeed by Tim GrantTry: Fail, Try: Succeed by Tim Grant
Try: Fail, Try: Succeed by Tim Grant
 
Using JIRA for Risk Based Testing - QASymphony Webinar
Using JIRA for Risk Based Testing  - QASymphony WebinarUsing JIRA for Risk Based Testing  - QASymphony Webinar
Using JIRA for Risk Based Testing - QASymphony Webinar
 
The Data Behind DevOps: What Does it Take to be a High Performer? Jenkins Wor...
The Data Behind DevOps: What Does it Take to be a High Performer? Jenkins Wor...The Data Behind DevOps: What Does it Take to be a High Performer? Jenkins Wor...
The Data Behind DevOps: What Does it Take to be a High Performer? Jenkins Wor...
 
How TPM saves the day
How TPM saves the dayHow TPM saves the day
How TPM saves the day
 
Behavior Driven Development—A Guide to Agile Practices by Josh Eastman
Behavior Driven Development—A Guide to Agile Practices by Josh EastmanBehavior Driven Development—A Guide to Agile Practices by Josh Eastman
Behavior Driven Development—A Guide to Agile Practices by Josh Eastman
 
Trends in Agile Testing by Lisa Crispin
Trends in Agile Testing by Lisa CrispinTrends in Agile Testing by Lisa Crispin
Trends in Agile Testing by Lisa Crispin
 
Embedded Extreme Programming - Embedded Systems Conference 2002-2004
Embedded Extreme Programming - Embedded Systems Conference 2002-2004Embedded Extreme Programming - Embedded Systems Conference 2002-2004
Embedded Extreme Programming - Embedded Systems Conference 2002-2004
 
ATAGTR2017 Test Craftsmanship - From Effectiveness to Greatness
ATAGTR2017 Test Craftsmanship - From Effectiveness to GreatnessATAGTR2017 Test Craftsmanship - From Effectiveness to Greatness
ATAGTR2017 Test Craftsmanship - From Effectiveness to Greatness
 
Secrets and surprises of high performance: What the data says
Secrets and surprises of high performance: What the data saysSecrets and surprises of high performance: What the data says
Secrets and surprises of high performance: What the data says
 
Building and Scaling High Performing Technology Organizations by Jez Humble a...
Building and Scaling High Performing Technology Organizations by Jez Humble a...Building and Scaling High Performing Technology Organizations by Jez Humble a...
Building and Scaling High Performing Technology Organizations by Jez Humble a...
 
How DevOps is Transforming IT, and What it Can Do for Academia
How DevOps is Transforming IT, and What it Can Do for AcademiaHow DevOps is Transforming IT, and What it Can Do for Academia
How DevOps is Transforming IT, and What it Can Do for Academia
 
QA Fest 2017. Ilari Henrik Aegerter. Complexity Thinking, Cynefin & Why Your ...
QA Fest 2017. Ilari Henrik Aegerter. Complexity Thinking, Cynefin & Why Your ...QA Fest 2017. Ilari Henrik Aegerter. Complexity Thinking, Cynefin & Why Your ...
QA Fest 2017. Ilari Henrik Aegerter. Complexity Thinking, Cynefin & Why Your ...
 
Testing and DevOps Culture: Lessons Learned
Testing and DevOps Culture: Lessons LearnedTesting and DevOps Culture: Lessons Learned
Testing and DevOps Culture: Lessons Learned
 
2016 State of DevOps
2016 State of DevOps2016 State of DevOps
2016 State of DevOps
 
TDD: Facts and Fallacies
TDD: Facts and FallaciesTDD: Facts and Fallacies
TDD: Facts and Fallacies
 
Test Driven Development for Embedded C
Test Driven Development for Embedded CTest Driven Development for Embedded C
Test Driven Development for Embedded C
 
Promotion Email
Promotion EmailPromotion Email
Promotion Email
 

Similar to Test Driven Development (TDD)

Case studies of Test Driven Development
Case studies of Test Driven DevelopmentCase studies of Test Driven Development
Case studies of Test Driven Development
Simform
 
Test driven development (TDD) in product development.pdf
Test driven development (TDD) in product development.pdfTest driven development (TDD) in product development.pdf
Test driven development (TDD) in product development.pdf
Beroza Paul
 
8 Tips To Write A Quality Code
8 Tips To Write A Quality Code8 Tips To Write A Quality Code
8 Tips To Write A Quality Code
Jalan Technology Consulting
 
Myths
MythsMyths
Is Software Testing a Zero Sum Game??
Is Software Testing a Zero Sum Game??Is Software Testing a Zero Sum Game??
Is Software Testing a Zero Sum Game??
Thinksoft Global
 
Mastering BDD - Eran Kinsbruner Workshop Quest 2018
Mastering BDD - Eran Kinsbruner Workshop Quest 2018Mastering BDD - Eran Kinsbruner Workshop Quest 2018
Mastering BDD - Eran Kinsbruner Workshop Quest 2018
Perfecto Mobile
 
software project management Assumption about conventional model
software project management Assumption about conventional modelsoftware project management Assumption about conventional model
software project management Assumption about conventional model
REHMAT ULLAH
 
AppSphere 15 - Smoke Jumping with AppDynamics
AppSphere 15 - Smoke Jumping with AppDynamicsAppSphere 15 - Smoke Jumping with AppDynamics
AppSphere 15 - Smoke Jumping with AppDynamics
AppDynamics
 
March APLN: Agile development- Measure & Analyze by Garry Rowland
March APLN: Agile development- Measure & Analyze by Garry RowlandMarch APLN: Agile development- Measure & Analyze by Garry Rowland
March APLN: Agile development- Measure & Analyze by Garry Rowland
Conscires Agile Practices
 
Why IT Struggles With Digital Transformation and What to Do About It
Why IT Struggles With Digital Transformation and What to Do About ItWhy IT Struggles With Digital Transformation and What to Do About It
Why IT Struggles With Digital Transformation and What to Do About It
run_frictionless
 
How to Leverage AI to Enhance UI Testing
How to Leverage AI to Enhance UI TestingHow to Leverage AI to Enhance UI Testing
How to Leverage AI to Enhance UI Testing
Applitools
 
Agile Methods: Fact or Fiction
Agile Methods: Fact or FictionAgile Methods: Fact or Fiction
Agile Methods: Fact or Fiction
Matt Ganis
 
CollabSphere 2019 - DEV106 - Domino Application Strategy: Key insights for su...
CollabSphere 2019 - DEV106 - Domino Application Strategy: Key insights for su...CollabSphere 2019 - DEV106 - Domino Application Strategy: Key insights for su...
CollabSphere 2019 - DEV106 - Domino Application Strategy: Key insights for su...
panagenda
 
Reducing Time Spent On Requirements
Reducing Time Spent On RequirementsReducing Time Spent On Requirements
Reducing Time Spent On Requirements
Byron Workman
 
AMIS 25: DevOps Best Practice for Oracle SOA and BPM
AMIS 25: DevOps Best Practice for Oracle SOA and BPMAMIS 25: DevOps Best Practice for Oracle SOA and BPM
AMIS 25: DevOps Best Practice for Oracle SOA and BPM
Matt Wright
 
Analyst Keynote: Continuous Delivery: Making DevOps Awesome
Analyst Keynote: Continuous Delivery: Making DevOps AwesomeAnalyst Keynote: Continuous Delivery: Making DevOps Awesome
Analyst Keynote: Continuous Delivery: Making DevOps Awesome
CA Technologies
 
Custom Software Solutions Provider USA: Top 10 Challenges to Mitigate
Custom Software Solutions Provider USA: Top 10 Challenges to MitigateCustom Software Solutions Provider USA: Top 10 Challenges to Mitigate
Custom Software Solutions Provider USA: Top 10 Challenges to Mitigate
WeblineIndia
 
The standish group chaos report
The standish group chaos report The standish group chaos report
The standish group chaos report
Mizno Kruge
 
DataOps, DevOps and the Developer: Treating Database Code Just Like App Code
DataOps, DevOps and the Developer: Treating Database Code Just Like App CodeDataOps, DevOps and the Developer: Treating Database Code Just Like App Code
DataOps, DevOps and the Developer: Treating Database Code Just Like App Code
DevOps.com
 

Similar to Test Driven Development (TDD) (20)

Case studies of Test Driven Development
Case studies of Test Driven DevelopmentCase studies of Test Driven Development
Case studies of Test Driven Development
 
Test driven development (TDD) in product development.pdf
Test driven development (TDD) in product development.pdfTest driven development (TDD) in product development.pdf
Test driven development (TDD) in product development.pdf
 
8 Tips To Write A Quality Code
8 Tips To Write A Quality Code8 Tips To Write A Quality Code
8 Tips To Write A Quality Code
 
Myths
MythsMyths
Myths
 
Is Software Testing a Zero Sum Game??
Is Software Testing a Zero Sum Game??Is Software Testing a Zero Sum Game??
Is Software Testing a Zero Sum Game??
 
Mastering BDD - Eran Kinsbruner Workshop Quest 2018
Mastering BDD - Eran Kinsbruner Workshop Quest 2018Mastering BDD - Eran Kinsbruner Workshop Quest 2018
Mastering BDD - Eran Kinsbruner Workshop Quest 2018
 
Spi Cost Roi
Spi Cost RoiSpi Cost Roi
Spi Cost Roi
 
software project management Assumption about conventional model
software project management Assumption about conventional modelsoftware project management Assumption about conventional model
software project management Assumption about conventional model
 
AppSphere 15 - Smoke Jumping with AppDynamics
AppSphere 15 - Smoke Jumping with AppDynamicsAppSphere 15 - Smoke Jumping with AppDynamics
AppSphere 15 - Smoke Jumping with AppDynamics
 
March APLN: Agile development- Measure & Analyze by Garry Rowland
March APLN: Agile development- Measure & Analyze by Garry RowlandMarch APLN: Agile development- Measure & Analyze by Garry Rowland
March APLN: Agile development- Measure & Analyze by Garry Rowland
 
Why IT Struggles With Digital Transformation and What to Do About It
Why IT Struggles With Digital Transformation and What to Do About ItWhy IT Struggles With Digital Transformation and What to Do About It
Why IT Struggles With Digital Transformation and What to Do About It
 
How to Leverage AI to Enhance UI Testing
How to Leverage AI to Enhance UI TestingHow to Leverage AI to Enhance UI Testing
How to Leverage AI to Enhance UI Testing
 
Agile Methods: Fact or Fiction
Agile Methods: Fact or FictionAgile Methods: Fact or Fiction
Agile Methods: Fact or Fiction
 
CollabSphere 2019 - DEV106 - Domino Application Strategy: Key insights for su...
CollabSphere 2019 - DEV106 - Domino Application Strategy: Key insights for su...CollabSphere 2019 - DEV106 - Domino Application Strategy: Key insights for su...
CollabSphere 2019 - DEV106 - Domino Application Strategy: Key insights for su...
 
Reducing Time Spent On Requirements
Reducing Time Spent On RequirementsReducing Time Spent On Requirements
Reducing Time Spent On Requirements
 
AMIS 25: DevOps Best Practice for Oracle SOA and BPM
AMIS 25: DevOps Best Practice for Oracle SOA and BPMAMIS 25: DevOps Best Practice for Oracle SOA and BPM
AMIS 25: DevOps Best Practice for Oracle SOA and BPM
 
Analyst Keynote: Continuous Delivery: Making DevOps Awesome
Analyst Keynote: Continuous Delivery: Making DevOps AwesomeAnalyst Keynote: Continuous Delivery: Making DevOps Awesome
Analyst Keynote: Continuous Delivery: Making DevOps Awesome
 
Custom Software Solutions Provider USA: Top 10 Challenges to Mitigate
Custom Software Solutions Provider USA: Top 10 Challenges to MitigateCustom Software Solutions Provider USA: Top 10 Challenges to Mitigate
Custom Software Solutions Provider USA: Top 10 Challenges to Mitigate
 
The standish group chaos report
The standish group chaos report The standish group chaos report
The standish group chaos report
 
DataOps, DevOps and the Developer: Treating Database Code Just Like App Code
DataOps, DevOps and the Developer: Treating Database Code Just Like App CodeDataOps, DevOps and the Developer: Treating Database Code Just Like App Code
DataOps, DevOps and the Developer: Treating Database Code Just Like App Code
 

Recently uploaded

Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Globus
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
takuyayamamoto1800
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Shahin Sheidaei
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Neo4j
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
Google
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
Alina Yurenko
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Crescat
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
Globus
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
Aftab Hussain
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
Juraj Vysvader
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
Shane Coughlan
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 

Recently uploaded (20)

Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 

Test Driven Development (TDD)

  • 5. Why Test? 5 ➔ Quality ➔ Cost ➔ Laziness @spinelli_edu
  • 7. The Importance of Testing 7 @spinelli_edu Knight Capital Group's In August 2012 Knight Capital Group Inc., one of America’s largest trading firms, mistakenly sent out more than four million stock orders in less than an hour. The software bug caused over $440 million in losses, which is almost four times what the company made in 2011. NASA - Mariner 1 When US to send a spacecraft to Venus. A hyphen in coded computer instructions in the data editing program, resulted in incorrect guidance signals being sent to the spacecraft. The cost for the rocket was reportedly more than $18 million at the time. Toyota Recall Toyota ended up recalling more than 9 million cars worldwide in 2010, but it wasn't because of a mechanical issue. The cars had a software bug that caused a lag in the anti-lock-brake system. Due to increased incentive campaigns, legal liabilities, and marketing efforts, the recalls were estimated to cost Toyota as much as $3 billion.
  • 8. Unit Test 8 ➔ Fast ➔ Automatic ➔ Facilitates Change ➔ Simplifies Integration @spinelli_edu
  • 9. Test-Driven Development 9 ➔ Focus on Test ➔ Code is Born Tested ➔ Simplicity ➔ Better Class Design Visibility @spinelli_edu
  • 10. RED - GREEN - REFACTOR 10 @spinelli_edu
  • 11. Baby Steps 11 “Write The Simplest Code That Passes The Test” return true; @spinelli_edu
  • 12. Feedback 12 ➔ Cohesion ➔ Coupling ➔ Encapsulation @spinelli_edu
  • 14. Why developers don’t use TDD 14 ➔ Management doesn’t allow us ➔ Not enough time to write tests ➔ My team disagrees whether we should use TDD ➔ Return On Investment in TDD isn’t proved ➔ Slow build process ➔ We tried but it didn’t work ➔ I don’t know all requirements upfront to write all tests @spinelli_edu
  • 15. Microsoft and IBM Case study at Microsoft and IBM and the results indicated that the number of four-product defects decreased by 40-90% over similar projects that did not use TDD. However, the study also showed TDD increased the initial development time by 15% to 35%. Does TDD really help? 15 @spinelli_edu More Tests TDD increases code quality, provides greater ease of maintenance, and helps produce 33% more testing compared to traditional approaches. Programmers The code had coverage ranging from 92% to 98%. A qualitative analysis showed that 87.5% of programmers believe that TDD facilitated the understanding of the requirements and 95.8% believe that TDD reduced the time spent debugging. However, only 50% believe that TDD helps to decrease development time. About quality, 92% believe that TDD helps maintain a quality code.
  • 16. When TDD doesn't Work 16 ➔ Low Complexity ➔ Domain of Implementation ➔ TDD All Time ➔ 100% code coverage ➔ Test First vs TDD @spinelli_edu
  • 18. CREDITS ▪ http://manifesto.softwarecraftsmanship.org/ ▪ https://crossbrowsertesting.com/blog/development/software-bug-cost/ ▪ http://blog.celerity.com/the-true-cost-of-a-software-bug ▪ https://www.seguetech.com/the-benefits-of-unit-testing/ ▪ https://technologyconversations.com/2013/12/24/test-driven-development-tdd-best-practices-u sing-java-examples-2/ ▪ http://philippe.bourgau.net/dont-stick-to-tdds-red-green-refactor-loop-to-the-letter/ ▪ https://www.mauricioaniche.com/2010/11/cuidado-com-seus-baby-steps/ ▪ http://www.extremeprogramming.org/rules/testfirst.html ▪ https://www.mauricioaniche.com/2010/04/tdd-realmente-ajuda/ ▪ https://www.javacodegeeks.com/2018/02/developers-dont-use-tdd.html ▪ https://www.casadocodigo.com.br/products/livro-tdd ▪ https://www.amazon.com/Test-Driven-Development-Kent-Beck/dp/0321146530/ref=sr_1_1?ie=UT F8&qid=1536630271&sr=8-1&keywords=kent+beck 18 @spinelli_edu
  • 19. 19 THANKS! Any questions? You can find me at: ▪ @spinelli_edu ▪ eduardosl.dev@gmail.com