SlideShare a Scribd company logo
TDD in Product Development
Beroza Paul
Sr. software engineer
Truth about Software Product Development
● Industry average experience is about 1-25 bugs per 1000 lines of code for
delivered software.
● 7-12 bugs per 1,000 lines of code find their way to the customers
● Fixing a bug takes 30 times longer than writing a line of code
● 75% of a developer’s time is spent on debugging (1500 hours a year!)
Source: Code Complete by Steve McConnell
Production Bug is Expensive!
● Fixing a production bug may cost 100x more than fixing a bug at
design time.
● Fixing a production bug may cost 15x more than fixing a bug at
implementation time.
Source: The Economics of Software Quality
Relative Costs of Fixing Bugs
How to reduce this cost?
Facts of Production Bug
● Most production bugs caused by simple programming mistakes
● 58% of them are trivial and can be addressed with test coverage
● Tiny mistakes will have huge impact on production
How to reduce trivial bugs?
Test Driven Development (TDD)?
TDD Life Cycle
TTD Reduces total cost?
Source: The Economics of Software Quality
TTD Results in Fewer Bugs?
● A case study of engineering teams at Microsoft and IBM showed that
the defect density decreased between 40% and 90% relative to similar
projects that did not use the TDD practice.
Source: Quality improvements
TDD Produces Better Quality?
● A study carried out among developers with 10+ years of professional
experience (on average), to investigate their perceptions when
employing TTD. Many of them agreed that “TDD allows greater quality
and maintainability”
Source: TDD analysis
TDD Promotes Simpler Design?
● The Department of Computer Science at North Carolina State
University, ran an experiment with two groups of programmers: one
used TDD and the other the linear approach.
● It turned out that “92% of developers believed that TDD yields higher
quality code, 79% thought that TDD promotes simpler design.
Source: TDD investigation
When TDD is wrong choice?
Developing GUI With TDD
● Trying to test the exact placement of UI components is pointless. First
because layout is subjective and should be "tested" by humans
TDD experience in team
● An enthusiastic team and at least one experienced developer who
knows how to write good tests and also knows a few things about
good architecture, otherwise think twice before going down the TDD
road.
TDD slows down initial process
● If you’re pressed for time and need to quickly launch your product or
solution, the TDD approach may not be your best choice
Test Code Requires Maintenance
● All lines of code require maintenance, which means cost. The cost is
easiest to acknowledge when a change to existing functionality is
made.
TDD approach is difficult
● In TDD we need mocks/stubs etc. When we start using mocks, after a
while, we will want to start using Dependency Injection (DI) and a
Inversion of Control (IoC) container. To do that you need to use
interfaces for everything. At the end we end up writing lot more code.
Thank you!
Reference
● https://www.youtube.com/watch?v=ln4WnxX-wrw
● https://fortegrp.com/test-driven-development-benefits15

More Related Content

PDF
How BDD enables True CI/CD
PPTX
Week1.pptx
PDF
Mastering BDD - Eran Kinsbruner Workshop Quest 2018
PPT
Agile Methodologies And Extreme Programming
PPTX
Agile Manifesto.pptx
ODP
xUnit and TDD: Why and How in Enterprise Software, August 2012
PDF
Test Driven Development Methodology and Philosophy
PDF
L5555555555555555555555 Agile Scrum Framework.pdf
How BDD enables True CI/CD
Week1.pptx
Mastering BDD - Eran Kinsbruner Workshop Quest 2018
Agile Methodologies And Extreme Programming
Agile Manifesto.pptx
xUnit and TDD: Why and How in Enterprise Software, August 2012
Test Driven Development Methodology and Philosophy
L5555555555555555555555 Agile Scrum Framework.pdf

Similar to Test driven development (TDD) in product development.pdf (20)

PPTX
Agile Manifesto and Agile Development Methodologies
PDF
A Study: The Analysis of Test Driven Development And Design Driven Test
PDF
Pm soln9416141129710
PPTX
Indy meetup#7 effective unit-testing-mule
PPTX
BDD presentation
PPT
Agile Methodologies And Extreme Programming - Svetlin Nakov
PPTX
Test driven development
PPTX
Introducing Continuous Integration Using Vsts
DOC
Jun 08 - PMWT Featured Paper -Tarabykin - XP PAPER - FINAL
PPT
PDF
TDD vs. BDD: A Practical Comparison for Modern Development Teams
PPTX
TDD in Agile
PPTX
Technical Debt.pptx
PPTX
Agile software development
PPTX
Behavior Driven Development with AngularJS & Jasmine
PPTX
Software Quality for Developers
PDF
TDD vs BDD_ Which Development Approach is Best for Your Project.pdf
PDF
Technical debt management strategies
PPTX
Test Drive Dirven Driver HAHAahhaha.pptx
PPTX
IS3242 Case Presentation
 
Agile Manifesto and Agile Development Methodologies
A Study: The Analysis of Test Driven Development And Design Driven Test
Pm soln9416141129710
Indy meetup#7 effective unit-testing-mule
BDD presentation
Agile Methodologies And Extreme Programming - Svetlin Nakov
Test driven development
Introducing Continuous Integration Using Vsts
Jun 08 - PMWT Featured Paper -Tarabykin - XP PAPER - FINAL
TDD vs. BDD: A Practical Comparison for Modern Development Teams
TDD in Agile
Technical Debt.pptx
Agile software development
Behavior Driven Development with AngularJS & Jasmine
Software Quality for Developers
TDD vs BDD_ Which Development Approach is Best for Your Project.pdf
Technical debt management strategies
Test Drive Dirven Driver HAHAahhaha.pptx
IS3242 Case Presentation
 
Ad

Recently uploaded (20)

PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PDF
Download FL Studio Crack Latest version 2025 ?
PDF
17 Powerful Integrations Your Next-Gen MLM Software Needs
PPTX
Transform Your Business with a Software ERP System
PPTX
L1 - Introduction to python Backend.pptx
PDF
AutoCAD Professional Crack 2025 With License Key
PDF
wealthsignaloriginal-com-DS-text-... (1).pdf
PPTX
Oracle Fusion HCM Cloud Demo for Beginners
PDF
Complete Guide to Website Development in Malaysia for SMEs
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PPTX
Log360_SIEM_Solutions Overview PPT_Feb 2020.pptx
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
PPTX
Computer Software and OS of computer science of grade 11.pptx
DOCX
Greta — No-Code AI for Building Full-Stack Web & Mobile Apps
PDF
Salesforce Agentforce AI Implementation.pdf
PDF
Product Update: Alluxio AI 3.7 Now with Sub-Millisecond Latency
PPTX
Operating system designcfffgfgggggggvggggggggg
PDF
iTop VPN Free 5.6.0.5262 Crack latest version 2025
How to Choose the Right IT Partner for Your Business in Malaysia
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
Download FL Studio Crack Latest version 2025 ?
17 Powerful Integrations Your Next-Gen MLM Software Needs
Transform Your Business with a Software ERP System
L1 - Introduction to python Backend.pptx
AutoCAD Professional Crack 2025 With License Key
wealthsignaloriginal-com-DS-text-... (1).pdf
Oracle Fusion HCM Cloud Demo for Beginners
Complete Guide to Website Development in Malaysia for SMEs
Design an Analysis of Algorithms II-SECS-1021-03
Log360_SIEM_Solutions Overview PPT_Feb 2020.pptx
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
Computer Software and OS of computer science of grade 11.pptx
Greta — No-Code AI for Building Full-Stack Web & Mobile Apps
Salesforce Agentforce AI Implementation.pdf
Product Update: Alluxio AI 3.7 Now with Sub-Millisecond Latency
Operating system designcfffgfgggggggvggggggggg
iTop VPN Free 5.6.0.5262 Crack latest version 2025
Ad

Test driven development (TDD) in product development.pdf

  • 1. TDD in Product Development Beroza Paul Sr. software engineer
  • 2. Truth about Software Product Development ● Industry average experience is about 1-25 bugs per 1000 lines of code for delivered software. ● 7-12 bugs per 1,000 lines of code find their way to the customers ● Fixing a bug takes 30 times longer than writing a line of code ● 75% of a developer’s time is spent on debugging (1500 hours a year!) Source: Code Complete by Steve McConnell
  • 3. Production Bug is Expensive! ● Fixing a production bug may cost 100x more than fixing a bug at design time. ● Fixing a production bug may cost 15x more than fixing a bug at implementation time. Source: The Economics of Software Quality
  • 4. Relative Costs of Fixing Bugs
  • 5. How to reduce this cost?
  • 6. Facts of Production Bug ● Most production bugs caused by simple programming mistakes ● 58% of them are trivial and can be addressed with test coverage ● Tiny mistakes will have huge impact on production
  • 7. How to reduce trivial bugs?
  • 10. TTD Reduces total cost? Source: The Economics of Software Quality
  • 11. TTD Results in Fewer Bugs? ● A case study of engineering teams at Microsoft and IBM showed that the defect density decreased between 40% and 90% relative to similar projects that did not use the TDD practice. Source: Quality improvements
  • 12. TDD Produces Better Quality? ● A study carried out among developers with 10+ years of professional experience (on average), to investigate their perceptions when employing TTD. Many of them agreed that “TDD allows greater quality and maintainability” Source: TDD analysis
  • 13. TDD Promotes Simpler Design? ● The Department of Computer Science at North Carolina State University, ran an experiment with two groups of programmers: one used TDD and the other the linear approach. ● It turned out that “92% of developers believed that TDD yields higher quality code, 79% thought that TDD promotes simpler design. Source: TDD investigation
  • 14. When TDD is wrong choice?
  • 15. Developing GUI With TDD ● Trying to test the exact placement of UI components is pointless. First because layout is subjective and should be "tested" by humans
  • 16. TDD experience in team ● An enthusiastic team and at least one experienced developer who knows how to write good tests and also knows a few things about good architecture, otherwise think twice before going down the TDD road.
  • 17. TDD slows down initial process ● If you’re pressed for time and need to quickly launch your product or solution, the TDD approach may not be your best choice
  • 18. Test Code Requires Maintenance ● All lines of code require maintenance, which means cost. The cost is easiest to acknowledge when a change to existing functionality is made.
  • 19. TDD approach is difficult ● In TDD we need mocks/stubs etc. When we start using mocks, after a while, we will want to start using Dependency Injection (DI) and a Inversion of Control (IoC) container. To do that you need to use interfaces for everything. At the end we end up writing lot more code.