SlideShare a Scribd company logo
1 of 19
Download to read offline
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 CecconiSpeck&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 1ikhwana luthfi
 
Implement BDD with Cucumber and SpecFlow
Implement BDD with Cucumber and SpecFlowImplement BDD with Cucumber and SpecFlow
Implement BDD with Cucumber and SpecFlowTechWell
 
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 GrantQA 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 WebinarQASymphony
 
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 EastmanQA 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-2004James 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 GreatnessAgile 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 saysNicole 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 AcademiaNicole 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
 
Test Driven Development for Embedded C
Test Driven Development for Embedded CTest Driven Development for Embedded C
Test Driven Development for Embedded CJames 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 DevelopmentSimform
 
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.pdfBeroza Paul
 
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 2018Perfecto 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 modelREHMAT ULLAH
 
AppSphere 15 - Smoke Jumping with AppDynamics
AppSphere 15 - Smoke Jumping with AppDynamicsAppSphere 15 - Smoke Jumping with AppDynamics
AppSphere 15 - Smoke Jumping with AppDynamicsAppDynamics
 
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 RowlandConscires 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 Itrun_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 TestingApplitools
 
Agile Methods: Fact or Fiction
Agile Methods: Fact or FictionAgile Methods: Fact or Fiction
Agile Methods: Fact or FictionMatt 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 RequirementsByron 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 BPMMatt 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 AwesomeCA 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 MitigateWeblineIndia
 
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 CodeDevOps.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

Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
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
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
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
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 

Recently uploaded (20)

Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
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
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
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
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 

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