SlideShare a Scribd company logo
1 of 17
13 May, 2008 Test driven development –  “If it's worth building, it's worth testing”
Why should we use TDD? Because we can't we get the design right from the beginning. Why can't we get the design right from the beginning? Because at the start of the project we have imperfect knowledge about the software we're developing. 13 May, 2008 Test driven development –  “If it's worth building, it's worth testing”   2
What is TDD? Software development technique  Related to the test-first programming concepts of Extreme Programming TDD = TFD + Refactoring 13 May, 2008 3 Test driven development –  “If it's worth building, it's worth testing”
Goals To have a better code coverage test suite To have specification before validation To write clean code that works But the real benefits are many more than the goals!  13 May, 2008 4 Test driven development –  “If it's worth building, it's worth testing”
Principles and general guidelines Write new business code only when an automated test has failed When a test fails you have made progress because you now know that you need to resolve the problem TDD does not replace traditional testing, instead it defines a proven way to ensure effective unit testing. If it's worth building, it's worth testing. If it's not worth testing, why are you wasting your time working on it? 13 May, 2008 5 Test driven development –  “If it's worth building, it's worth testing”
Development cycle I - Steps Create a test: basically just enough code to fail (testing the test) Run the test to ensure that the test does in fact fail (testing the test) Run minimal code  necessary to pass the test Refactor the code  Clean up Remove duplication Write a new test case ….  13 May, 2008 6 Test driven development –  “If it's worth building, it's worth testing”
Development cycle II  13 May, 2008 7 Test driven development –  “If it's worth building, it's worth testing”
Benefits An interesting side effect of TDD: you achieve 100% coverage test You have a short checklist – resolve one piece of functionality at a time Cleaner design than achieved by other methods The design is easier to understand The code becomes easier to work with as the project matures  The resulting code is designed for testability  13 May, 2008 8 Test driven development –  “If it's worth building, it's worth testing”
Benefits – Safety net Every single piece of functionality added will have a test coverage. If anything ever changes, the developer will know right away Better assurance when integrating your code into source control Refactoring becomes a lot easier, so the codebase can be kept always healthy 13 May, 2008 9 Test driven development –  “If it's worth building, it's worth testing”
Benefits – Usable design Code that you develop through TDD is going to end up looking very different from code you would have written otherwise You don't start with a UML diagram, or a detailed class header file, or anything like that You start by using the feature you're about to implement You're going to be your first user of your code, and you're going to think about how to use it from the beginning 13 May, 2008 10 Test driven development –  “If it's worth building, it's worth testing”
Benefits - Modularity This is another side effect of having to use the code you're about to write Isolated, modular tests => modular codebase A highly modular codebase will compile much more quickly than one that has grown organically 13 May, 2008 11 Test driven development –  “If it's worth building, it's worth testing”
Benefits – Documentation builds itself The tests you write while doing TDD are the ideal low-level documentation for your code  For every feature, you have at least one example on how to use it correctly and how it's expected to be used.  And the best part is that it can't ever get out of date. 13 May, 2008 12 Test driven development –  “If it's worth building, it's worth testing”
Misconception The unit tests form 100% of your design specification You only need to do unit test TDD is sufficient for testing TDD doesn'tscale Your test suite takes too long to run Not all developers know how to test.  Everyone might not be taking a TDD approach. 13 May, 2008 13 Test driven development –  “If it's worth building, it's worth testing”
Tools  Visual Studion Team System Test tools NUnit NCover TestDriven.NET 13 May, 2008 14 Test driven development –  “If it's worth building, it's worth testing”
Example using NUnit/VS integrated tool Link to VS Solution 13 May, 2008 15 Test driven development –  “If it's worth building, it's worth testing”
References http://www.developer.com/design/article.php/3622546 http://homepage.mac.com/hey.you/lessons.html http://www.gamesfromwithin.com/articles/0502/000073.html http://msdn2.microsoft.com/en-us/magazine/cc163982.aspx http://www.artima.com/intv/testdriven2.html http://www.parlezuml.com/tutorials/agiledotnet/tdd_nunit.pdf http://en.wikipedia.org/wiki/Test-driven_development 13 May, 2008 16 Test driven development –  “If it's worth building, it's worth testing”
17 Test driven development –  “If it's worth building, it's worth testing”   13 May, 2008

More Related Content

What's hot

TDD vs. ATDD - What, Why, Which, When & Where
TDD vs. ATDD - What, Why, Which, When & WhereTDD vs. ATDD - What, Why, Which, When & Where
TDD vs. ATDD - What, Why, Which, When & WhereDaniel Davis
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Developmentguestc8093a6
 
Agile and ATDD the perfect couple
Agile and ATDD the perfect coupleAgile and ATDD the perfect couple
Agile and ATDD the perfect coupleStephen Tucker
 
Overview on TDD (Test Driven Development) & ATDD (Acceptance Test Driven Deve...
Overview on TDD (Test Driven Development) & ATDD (Acceptance Test Driven Deve...Overview on TDD (Test Driven Development) & ATDD (Acceptance Test Driven Deve...
Overview on TDD (Test Driven Development) & ATDD (Acceptance Test Driven Deve...Zohirul Alam Tiemoon
 
A Not-So-Serious Introduction to Test Driven Development (TDD)
A Not-So-Serious Introduction to Test Driven Development (TDD) A Not-So-Serious Introduction to Test Driven Development (TDD)
A Not-So-Serious Introduction to Test Driven Development (TDD) CodeOps Technologies LLP
 
xUnit and TDD: Why and How in Enterprise Software, August 2012
xUnit and TDD: Why and How in Enterprise Software, August 2012xUnit and TDD: Why and How in Enterprise Software, August 2012
xUnit and TDD: Why and How in Enterprise Software, August 2012Justin Gordon
 
Acceptance Test Driven Development
Acceptance Test Driven DevelopmentAcceptance Test Driven Development
Acceptance Test Driven DevelopmentMike Douglas
 
Agile and test driven development
Agile and test driven developmentAgile and test driven development
Agile and test driven developmentAhmed El-Deeb
 
TDD - Test Driven Development
TDD - Test Driven DevelopmentTDD - Test Driven Development
TDD - Test Driven DevelopmentTung Nguyen Thanh
 
Agile Programming Systems # TDD intro
Agile Programming Systems # TDD introAgile Programming Systems # TDD intro
Agile Programming Systems # TDD introVitaliy Kulikov
 
Test-Driven Development (TDD)
Test-Driven Development (TDD)Test-Driven Development (TDD)
Test-Driven Development (TDD)Brian Rasmussen
 
Test Driven Development (TDD) Preso 360|Flex 2010
Test Driven Development (TDD) Preso 360|Flex 2010Test Driven Development (TDD) Preso 360|Flex 2010
Test Driven Development (TDD) Preso 360|Flex 2010guest5639fa9
 
Test Driven Development (TDD)
Test Driven Development (TDD)Test Driven Development (TDD)
Test Driven Development (TDD)David Ehringer
 
Test Driven Development (TDD) & Continuous Integration (CI)
Test Driven Development (TDD) & Continuous Integration (CI)Test Driven Development (TDD) & Continuous Integration (CI)
Test Driven Development (TDD) & Continuous Integration (CI)Fatkul Amri
 
The WHY behind TDD/BDD and the HOW with RSpec
The WHY behind TDD/BDD and the HOW with RSpecThe WHY behind TDD/BDD and the HOW with RSpec
The WHY behind TDD/BDD and the HOW with RSpecBen Mabey
 
TDD (Test Driven Design)
TDD (Test Driven Design)TDD (Test Driven Design)
TDD (Test Driven Design)nedirtv
 

What's hot (20)

TDD vs. ATDD - What, Why, Which, When & Where
TDD vs. ATDD - What, Why, Which, When & WhereTDD vs. ATDD - What, Why, Which, When & Where
TDD vs. ATDD - What, Why, Which, When & Where
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
Agile and ATDD the perfect couple
Agile and ATDD the perfect coupleAgile and ATDD the perfect couple
Agile and ATDD the perfect couple
 
Overview on TDD (Test Driven Development) & ATDD (Acceptance Test Driven Deve...
Overview on TDD (Test Driven Development) & ATDD (Acceptance Test Driven Deve...Overview on TDD (Test Driven Development) & ATDD (Acceptance Test Driven Deve...
Overview on TDD (Test Driven Development) & ATDD (Acceptance Test Driven Deve...
 
A Not-So-Serious Introduction to Test Driven Development (TDD)
A Not-So-Serious Introduction to Test Driven Development (TDD) A Not-So-Serious Introduction to Test Driven Development (TDD)
A Not-So-Serious Introduction to Test Driven Development (TDD)
 
xUnit and TDD: Why and How in Enterprise Software, August 2012
xUnit and TDD: Why and How in Enterprise Software, August 2012xUnit and TDD: Why and How in Enterprise Software, August 2012
xUnit and TDD: Why and How in Enterprise Software, August 2012
 
TDD - Agile
TDD - Agile TDD - Agile
TDD - Agile
 
Acceptance Test Driven Development
Acceptance Test Driven DevelopmentAcceptance Test Driven Development
Acceptance Test Driven Development
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
Agile and test driven development
Agile and test driven developmentAgile and test driven development
Agile and test driven development
 
TDD - Test Driven Development
TDD - Test Driven DevelopmentTDD - Test Driven Development
TDD - Test Driven Development
 
Agile Programming Systems # TDD intro
Agile Programming Systems # TDD introAgile Programming Systems # TDD intro
Agile Programming Systems # TDD intro
 
Test-Driven Development (TDD)
Test-Driven Development (TDD)Test-Driven Development (TDD)
Test-Driven Development (TDD)
 
Test Driven Development (TDD) Preso 360|Flex 2010
Test Driven Development (TDD) Preso 360|Flex 2010Test Driven Development (TDD) Preso 360|Flex 2010
Test Driven Development (TDD) Preso 360|Flex 2010
 
Journey of atdd
Journey of atddJourney of atdd
Journey of atdd
 
Test Driven Development (TDD)
Test Driven Development (TDD)Test Driven Development (TDD)
Test Driven Development (TDD)
 
Test Driven Development (TDD) & Continuous Integration (CI)
Test Driven Development (TDD) & Continuous Integration (CI)Test Driven Development (TDD) & Continuous Integration (CI)
Test Driven Development (TDD) & Continuous Integration (CI)
 
The WHY behind TDD/BDD and the HOW with RSpec
The WHY behind TDD/BDD and the HOW with RSpecThe WHY behind TDD/BDD and the HOW with RSpec
The WHY behind TDD/BDD and the HOW with RSpec
 
TDD (Test Driven Design)
TDD (Test Driven Design)TDD (Test Driven Design)
TDD (Test Driven Design)
 
ATDD in practice
ATDD in practiceATDD in practice
ATDD in practice
 

Viewers also liked

19 Ways to Drive Content Discovery
19 Ways to Drive Content Discovery19 Ways to Drive Content Discovery
19 Ways to Drive Content Discoveryprnewswire
 
Presentatie hs industrial alg
Presentatie hs industrial algPresentatie hs industrial alg
Presentatie hs industrial algAlexSport
 
5 Tips for Executing a Great Newsjack
5 Tips for Executing a Great Newsjack5 Tips for Executing a Great Newsjack
5 Tips for Executing a Great Newsjackprnewswire
 
11.Open Data Protocol(ODATA)
11.Open Data Protocol(ODATA) 11.Open Data Protocol(ODATA)
11.Open Data Protocol(ODATA) Nguyen Tuan
 
Provenance Aware Linked Sensor Data
Provenance Aware Linked Sensor DataProvenance Aware Linked Sensor Data
Provenance Aware Linked Sensor DataHarshal Patni
 
Какой ты продавец?
Какой ты продавец?Какой ты продавец?
Какой ты продавец?Vadim Zhartun
 
Sundsvall42 19 okt mjuka sidorna av projekt
Sundsvall42 19 okt mjuka sidorna av projektSundsvall42 19 okt mjuka sidorna av projekt
Sundsvall42 19 okt mjuka sidorna av projektMongara AB
 
C:\fakepath\opal video slide show
C:\fakepath\opal video slide showC:\fakepath\opal video slide show
C:\fakepath\opal video slide showrobertocarneiro
 
Lessons Learned from Responsive Design
Lessons Learned from Responsive DesignLessons Learned from Responsive Design
Lessons Learned from Responsive DesignCharity Dynamics
 
Vizualization effect on microbres citrex
Vizualization effect on microbres citrexVizualization effect on microbres citrex
Vizualization effect on microbres citrexCITREX
 
Развитие инновационных экосистем_компендиум
Развитие инновационных экосистем_компендиумРазвитие инновационных экосистем_компендиум
Развитие инновационных экосистем_компендиумIngria. Technopark St. Petersburg
 
Akademi TSM korosu Reesimleri 2017 02 10
Akademi TSM korosu Reesimleri 2017 02 10Akademi TSM korosu Reesimleri 2017 02 10
Akademi TSM korosu Reesimleri 2017 02 10aokutur
 

Viewers also liked (20)

19 Ways to Drive Content Discovery
19 Ways to Drive Content Discovery19 Ways to Drive Content Discovery
19 Ways to Drive Content Discovery
 
Pan Demistyfied
Pan DemistyfiedPan Demistyfied
Pan Demistyfied
 
Impact from TED/TEDEd for future Education @KIT hackathon
Impact from TED/TEDEd for future Education @KIT hackathonImpact from TED/TEDEd for future Education @KIT hackathon
Impact from TED/TEDEd for future Education @KIT hackathon
 
Alasuutari 2005
Alasuutari 2005Alasuutari 2005
Alasuutari 2005
 
Presentatie hs industrial alg
Presentatie hs industrial algPresentatie hs industrial alg
Presentatie hs industrial alg
 
5 Tips for Executing a Great Newsjack
5 Tips for Executing a Great Newsjack5 Tips for Executing a Great Newsjack
5 Tips for Executing a Great Newsjack
 
Tinjauan organisasi
Tinjauan organisasiTinjauan organisasi
Tinjauan organisasi
 
11.Open Data Protocol(ODATA)
11.Open Data Protocol(ODATA) 11.Open Data Protocol(ODATA)
11.Open Data Protocol(ODATA)
 
Provenance Aware Linked Sensor Data
Provenance Aware Linked Sensor DataProvenance Aware Linked Sensor Data
Provenance Aware Linked Sensor Data
 
Какой ты продавец?
Какой ты продавец?Какой ты продавец?
Какой ты продавец?
 
Renacemento cinque
Renacemento cinqueRenacemento cinque
Renacemento cinque
 
Compositional Rules
Compositional RulesCompositional Rules
Compositional Rules
 
Sundsvall42 19 okt mjuka sidorna av projekt
Sundsvall42 19 okt mjuka sidorna av projektSundsvall42 19 okt mjuka sidorna av projekt
Sundsvall42 19 okt mjuka sidorna av projekt
 
Opal video slide show
Opal video slide showOpal video slide show
Opal video slide show
 
My Own Cowboy Stew!
My Own Cowboy Stew!My Own Cowboy Stew!
My Own Cowboy Stew!
 
C:\fakepath\opal video slide show
C:\fakepath\opal video slide showC:\fakepath\opal video slide show
C:\fakepath\opal video slide show
 
Lessons Learned from Responsive Design
Lessons Learned from Responsive DesignLessons Learned from Responsive Design
Lessons Learned from Responsive Design
 
Vizualization effect on microbres citrex
Vizualization effect on microbres citrexVizualization effect on microbres citrex
Vizualization effect on microbres citrex
 
Развитие инновационных экосистем_компендиум
Развитие инновационных экосистем_компендиумРазвитие инновационных экосистем_компендиум
Развитие инновационных экосистем_компендиум
 
Akademi TSM korosu Reesimleri 2017 02 10
Akademi TSM korosu Reesimleri 2017 02 10Akademi TSM korosu Reesimleri 2017 02 10
Akademi TSM korosu Reesimleri 2017 02 10
 

Similar to Test Driven Development

How to test a Mainframe Application
How to test a Mainframe ApplicationHow to test a Mainframe Application
How to test a Mainframe ApplicationMichael Erichsen
 
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 ...Abdelkrim Boujraf
 
Software Development Standard Operating Procedure
Software Development Standard Operating Procedure Software Development Standard Operating Procedure
Software Development Standard Operating Procedure rupeshchanchal
 
Test-Driven Development In Action
Test-Driven Development In ActionTest-Driven Development In Action
Test-Driven Development In ActionJon Kruger
 
Developers’ mDay u Banjoj Luci - Milan Popović, PHP Srbija – Testimony (about...
Developers’ mDay u Banjoj Luci - Milan Popović, PHP Srbija – Testimony (about...Developers’ mDay u Banjoj Luci - Milan Popović, PHP Srbija – Testimony (about...
Developers’ mDay u Banjoj Luci - Milan Popović, PHP Srbija – Testimony (about...mCloud
 
Cleaner Code Through Test-Driven Development
Cleaner Code Through Test-Driven DevelopmentCleaner Code Through Test-Driven Development
Cleaner Code Through Test-Driven DevelopmentAll Things Open
 
Estimating test effort part 1 of 2
Estimating test effort part 1 of 2Estimating test effort part 1 of 2
Estimating test effort part 1 of 2Ian McDonald
 
Better Test Designs to Drive Test Automation Excellence
Better Test Designs to Drive Test Automation ExcellenceBetter Test Designs to Drive Test Automation Excellence
Better Test Designs to Drive Test Automation ExcellenceTechWell
 
Introduction to Test Driven Development
Introduction to Test Driven DevelopmentIntroduction to Test Driven Development
Introduction to Test Driven DevelopmentMichael Denomy
 
Test driven development v1.0
Test driven development v1.0Test driven development v1.0
Test driven development v1.0Ganesh Kondal
 
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
 
Test driven development
Test driven developmentTest driven development
Test driven developmentLuis Goldster
 
Test driven development
Test driven developmentTest driven development
Test driven developmentTony Nguyen
 
Test driven development
Test driven developmentTest driven development
Test driven developmentYoung Alista
 
Test driven development
Test driven developmentTest driven development
Test driven developmentJames Wong
 
Test driven development
Test driven developmentTest driven development
Test driven developmentFraboni Ec
 
Test driven development
Test driven developmentTest driven development
Test driven developmentHarry Potter
 
Automate across Platform, OS, Technologies with TaaS
Automate across Platform, OS, Technologies with TaaSAutomate across Platform, OS, Technologies with TaaS
Automate across Platform, OS, Technologies with TaaSAnand Bagmar
 
ITARC15 Workshop - Architecting a Large Software Project - Lessons Learned
ITARC15 Workshop - Architecting a Large Software Project - Lessons LearnedITARC15 Workshop - Architecting a Large Software Project - Lessons Learned
ITARC15 Workshop - Architecting a Large Software Project - Lessons LearnedJoão Pedro Martins
 
assertYourself - Breaking the Theories and Assumptions of Unit Testing in Flex
assertYourself - Breaking the Theories and Assumptions of Unit Testing in FlexassertYourself - Breaking the Theories and Assumptions of Unit Testing in Flex
assertYourself - Breaking the Theories and Assumptions of Unit Testing in Flexmichael.labriola
 

Similar to Test Driven Development (20)

How to test a Mainframe Application
How to test a Mainframe ApplicationHow to test a Mainframe Application
How to test a Mainframe Application
 
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 ...
 
Software Development Standard Operating Procedure
Software Development Standard Operating Procedure Software Development Standard Operating Procedure
Software Development Standard Operating Procedure
 
Test-Driven Development In Action
Test-Driven Development In ActionTest-Driven Development In Action
Test-Driven Development In Action
 
Developers’ mDay u Banjoj Luci - Milan Popović, PHP Srbija – Testimony (about...
Developers’ mDay u Banjoj Luci - Milan Popović, PHP Srbija – Testimony (about...Developers’ mDay u Banjoj Luci - Milan Popović, PHP Srbija – Testimony (about...
Developers’ mDay u Banjoj Luci - Milan Popović, PHP Srbija – Testimony (about...
 
Cleaner Code Through Test-Driven Development
Cleaner Code Through Test-Driven DevelopmentCleaner Code Through Test-Driven Development
Cleaner Code Through Test-Driven Development
 
Estimating test effort part 1 of 2
Estimating test effort part 1 of 2Estimating test effort part 1 of 2
Estimating test effort part 1 of 2
 
Better Test Designs to Drive Test Automation Excellence
Better Test Designs to Drive Test Automation ExcellenceBetter Test Designs to Drive Test Automation Excellence
Better Test Designs to Drive Test Automation Excellence
 
Introduction to Test Driven Development
Introduction to Test Driven DevelopmentIntroduction to Test Driven Development
Introduction to Test Driven Development
 
Test driven development v1.0
Test driven development v1.0Test driven development v1.0
Test driven development v1.0
 
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
 
Test driven development
Test driven developmentTest driven development
Test driven development
 
Test driven development
Test driven developmentTest driven development
Test driven development
 
Test driven development
Test driven developmentTest driven development
Test driven development
 
Test driven development
Test driven developmentTest driven development
Test driven development
 
Test driven development
Test driven developmentTest driven development
Test driven development
 
Test driven development
Test driven developmentTest driven development
Test driven development
 
Automate across Platform, OS, Technologies with TaaS
Automate across Platform, OS, Technologies with TaaSAutomate across Platform, OS, Technologies with TaaS
Automate across Platform, OS, Technologies with TaaS
 
ITARC15 Workshop - Architecting a Large Software Project - Lessons Learned
ITARC15 Workshop - Architecting a Large Software Project - Lessons LearnedITARC15 Workshop - Architecting a Large Software Project - Lessons Learned
ITARC15 Workshop - Architecting a Large Software Project - Lessons Learned
 
assertYourself - Breaking the Theories and Assumptions of Unit Testing in Flex
assertYourself - Breaking the Theories and Assumptions of Unit Testing in FlexassertYourself - Breaking the Theories and Assumptions of Unit Testing in Flex
assertYourself - Breaking the Theories and Assumptions of Unit Testing in Flex
 

More from Orbit One - We create coherence

ShareCafé: SharePoint - Een doos vol documenten of dé tool om efficiënt samen...
ShareCafé: SharePoint - Een doos vol documenten of dé tool om efficiënt samen...ShareCafé: SharePoint - Een doos vol documenten of dé tool om efficiënt samen...
ShareCafé: SharePoint - Een doos vol documenten of dé tool om efficiënt samen...Orbit One - We create coherence
 
ShareCafé: Office365 - Efficiënt samenwerken met minimum aan kosten en comple...
ShareCafé: Office365 - Efficiënt samenwerken met minimum aan kosten en comple...ShareCafé: Office365 - Efficiënt samenwerken met minimum aan kosten en comple...
ShareCafé: Office365 - Efficiënt samenwerken met minimum aan kosten en comple...Orbit One - We create coherence
 
ShareCafé 3 - Geef je samenwerking een technologische upgrade
ShareCafé 3 - Geef je samenwerking een technologische upgradeShareCafé 3 - Geef je samenwerking een technologische upgrade
ShareCafé 3 - Geef je samenwerking een technologische upgradeOrbit One - We create coherence
 
OneCafé: De toekomst van ledenorganisaties met behulp van CRM en informatie-u...
OneCafé: De toekomst van ledenorganisaties met behulp van CRM en informatie-u...OneCafé: De toekomst van ledenorganisaties met behulp van CRM en informatie-u...
OneCafé: De toekomst van ledenorganisaties met behulp van CRM en informatie-u...Orbit One - We create coherence
 
OneCafé: The future of membership organizations facilitated by CRM and collab...
OneCafé: The future of membership organizations facilitated by CRM and collab...OneCafé: The future of membership organizations facilitated by CRM and collab...
OneCafé: The future of membership organizations facilitated by CRM and collab...Orbit One - We create coherence
 
Social Computing in your organization using SharePoint: challenges and benefits
Social Computing in your organization using SharePoint: challenges and benefitsSocial Computing in your organization using SharePoint: challenges and benefits
Social Computing in your organization using SharePoint: challenges and benefitsOrbit One - We create coherence
 
Marketing Automation in Dynamics CRM with ClickDimensions
Marketing Automation in Dynamics CRM with ClickDimensionsMarketing Automation in Dynamics CRM with ClickDimensions
Marketing Automation in Dynamics CRM with ClickDimensionsOrbit One - We create coherence
 

More from Orbit One - We create coherence (20)

ShareCafé: SharePoint - Een doos vol documenten of dé tool om efficiënt samen...
ShareCafé: SharePoint - Een doos vol documenten of dé tool om efficiënt samen...ShareCafé: SharePoint - Een doos vol documenten of dé tool om efficiënt samen...
ShareCafé: SharePoint - Een doos vol documenten of dé tool om efficiënt samen...
 
HoGent tips and tricks van een self-made ondernemer
HoGent tips and tricks van een self-made ondernemer HoGent tips and tricks van een self-made ondernemer
HoGent tips and tricks van een self-made ondernemer
 
Het Nieuwe Werken in de praktijk
Het Nieuwe Werkenin de praktijkHet Nieuwe Werkenin de praktijk
Het Nieuwe Werken in de praktijk
 
ShareCafé: Office365 - Efficiënt samenwerken met minimum aan kosten en comple...
ShareCafé: Office365 - Efficiënt samenwerken met minimum aan kosten en comple...ShareCafé: Office365 - Efficiënt samenwerken met minimum aan kosten en comple...
ShareCafé: Office365 - Efficiënt samenwerken met minimum aan kosten en comple...
 
ShareCafé 3 - Geef je samenwerking een technologische upgrade
ShareCafé 3 - Geef je samenwerking een technologische upgradeShareCafé 3 - Geef je samenwerking een technologische upgrade
ShareCafé 3 - Geef je samenwerking een technologische upgrade
 
ShareCafé 2 - Werk slimmer door geïntegreerde tools
ShareCafé 2 - Werk slimmer door geïntegreerde toolsShareCafé 2 - Werk slimmer door geïntegreerde tools
ShareCafé 2 - Werk slimmer door geïntegreerde tools
 
ShareCafé 1: Hou de Nieuwe Werker gemotiveerd
ShareCafé 1: Hou de Nieuwe Werker gemotiveerdShareCafé 1: Hou de Nieuwe Werker gemotiveerd
ShareCafé 1: Hou de Nieuwe Werker gemotiveerd
 
Business value of Lync integrations
Business value of Lync integrationsBusiness value of Lync integrations
Business value of Lync integrations
 
OneCafé: De toekomst van ledenorganisaties met behulp van CRM en informatie-u...
OneCafé: De toekomst van ledenorganisaties met behulp van CRM en informatie-u...OneCafé: De toekomst van ledenorganisaties met behulp van CRM en informatie-u...
OneCafé: De toekomst van ledenorganisaties met behulp van CRM en informatie-u...
 
Identity in the cloud using Microsoft
Identity in the cloud using MicrosoftIdentity in the cloud using Microsoft
Identity in the cloud using Microsoft
 
OneCafé: The future of membership organizations facilitated by CRM and collab...
OneCafé: The future of membership organizations facilitated by CRM and collab...OneCafé: The future of membership organizations facilitated by CRM and collab...
OneCafé: The future of membership organizations facilitated by CRM and collab...
 
OneCafé: The new world of work and your organisation
OneCafé: The new world of work and your organisationOneCafé: The new world of work and your organisation
OneCafé: The new world of work and your organisation
 
Social Computing in your organization using SharePoint: challenges and benefits
Social Computing in your organization using SharePoint: challenges and benefitsSocial Computing in your organization using SharePoint: challenges and benefits
Social Computing in your organization using SharePoint: challenges and benefits
 
Windows Communication Foundation (WCF) Best Practices
Windows Communication Foundation (WCF) Best PracticesWindows Communication Foundation (WCF) Best Practices
Windows Communication Foundation (WCF) Best Practices
 
Wie is Orbit One Internet Solutions
Wie is Orbit One Internet SolutionsWie is Orbit One Internet Solutions
Wie is Orbit One Internet Solutions
 
Azure Umbraco workshop
Azure Umbraco workshopAzure Umbraco workshop
Azure Umbraco workshop
 
Marketing Automation in Dynamics CRM with ClickDimensions
Marketing Automation in Dynamics CRM with ClickDimensionsMarketing Automation in Dynamics CRM with ClickDimensions
Marketing Automation in Dynamics CRM with ClickDimensions
 
Office 365, is cloud right for your company?
Office 365, is cloud right for your company?Office 365, is cloud right for your company?
Office 365, is cloud right for your company?
 
Who is Orbit One internet solutions?
Who is Orbit One internet solutions?Who is Orbit One internet solutions?
Who is Orbit One internet solutions?
 
Azure and Umbraco CMS
Azure and Umbraco CMSAzure and Umbraco CMS
Azure and Umbraco CMS
 

Recently uploaded

New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 

Recently uploaded (20)

New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 

Test Driven Development

  • 1. 13 May, 2008 Test driven development – “If it's worth building, it's worth testing”
  • 2. Why should we use TDD? Because we can't we get the design right from the beginning. Why can't we get the design right from the beginning? Because at the start of the project we have imperfect knowledge about the software we're developing. 13 May, 2008 Test driven development – “If it's worth building, it's worth testing” 2
  • 3. What is TDD? Software development technique Related to the test-first programming concepts of Extreme Programming TDD = TFD + Refactoring 13 May, 2008 3 Test driven development – “If it's worth building, it's worth testing”
  • 4. Goals To have a better code coverage test suite To have specification before validation To write clean code that works But the real benefits are many more than the goals! 13 May, 2008 4 Test driven development – “If it's worth building, it's worth testing”
  • 5. Principles and general guidelines Write new business code only when an automated test has failed When a test fails you have made progress because you now know that you need to resolve the problem TDD does not replace traditional testing, instead it defines a proven way to ensure effective unit testing. If it's worth building, it's worth testing. If it's not worth testing, why are you wasting your time working on it? 13 May, 2008 5 Test driven development – “If it's worth building, it's worth testing”
  • 6. Development cycle I - Steps Create a test: basically just enough code to fail (testing the test) Run the test to ensure that the test does in fact fail (testing the test) Run minimal code necessary to pass the test Refactor the code Clean up Remove duplication Write a new test case …. 13 May, 2008 6 Test driven development – “If it's worth building, it's worth testing”
  • 7. Development cycle II 13 May, 2008 7 Test driven development – “If it's worth building, it's worth testing”
  • 8. Benefits An interesting side effect of TDD: you achieve 100% coverage test You have a short checklist – resolve one piece of functionality at a time Cleaner design than achieved by other methods The design is easier to understand The code becomes easier to work with as the project matures The resulting code is designed for testability 13 May, 2008 8 Test driven development – “If it's worth building, it's worth testing”
  • 9. Benefits – Safety net Every single piece of functionality added will have a test coverage. If anything ever changes, the developer will know right away Better assurance when integrating your code into source control Refactoring becomes a lot easier, so the codebase can be kept always healthy 13 May, 2008 9 Test driven development – “If it's worth building, it's worth testing”
  • 10. Benefits – Usable design Code that you develop through TDD is going to end up looking very different from code you would have written otherwise You don't start with a UML diagram, or a detailed class header file, or anything like that You start by using the feature you're about to implement You're going to be your first user of your code, and you're going to think about how to use it from the beginning 13 May, 2008 10 Test driven development – “If it's worth building, it's worth testing”
  • 11. Benefits - Modularity This is another side effect of having to use the code you're about to write Isolated, modular tests => modular codebase A highly modular codebase will compile much more quickly than one that has grown organically 13 May, 2008 11 Test driven development – “If it's worth building, it's worth testing”
  • 12. Benefits – Documentation builds itself The tests you write while doing TDD are the ideal low-level documentation for your code For every feature, you have at least one example on how to use it correctly and how it's expected to be used. And the best part is that it can't ever get out of date. 13 May, 2008 12 Test driven development – “If it's worth building, it's worth testing”
  • 13. Misconception The unit tests form 100% of your design specification You only need to do unit test TDD is sufficient for testing TDD doesn'tscale Your test suite takes too long to run Not all developers know how to test.  Everyone might not be taking a TDD approach. 13 May, 2008 13 Test driven development – “If it's worth building, it's worth testing”
  • 14. Tools Visual Studion Team System Test tools NUnit NCover TestDriven.NET 13 May, 2008 14 Test driven development – “If it's worth building, it's worth testing”
  • 15. Example using NUnit/VS integrated tool Link to VS Solution 13 May, 2008 15 Test driven development – “If it's worth building, it's worth testing”
  • 16. References http://www.developer.com/design/article.php/3622546 http://homepage.mac.com/hey.you/lessons.html http://www.gamesfromwithin.com/articles/0502/000073.html http://msdn2.microsoft.com/en-us/magazine/cc163982.aspx http://www.artima.com/intv/testdriven2.html http://www.parlezuml.com/tutorials/agiledotnet/tdd_nunit.pdf http://en.wikipedia.org/wiki/Test-driven_development 13 May, 2008 16 Test driven development – “If it's worth building, it's worth testing”
  • 17. 17 Test driven development – “If it's worth building, it's worth testing” 13 May, 2008