SlideShare a Scribd company logo
1 of 22
Test Driven Development
Driving Development by Tests
Haarlem Software Developer Meetup
@mcbeelen
Confidential Page 2
KvK 53479335
Lichtfabriekplein 1, 2031 TE Haarlem
P.O. Box 2031 , 2002 CA Haarlem
+31 (0)88 248 1632,
info@ximedes.com
www.ximedes.com
Meetup
Sponsor:
01-10-2015Confidential Page 3
01-10-2015Confidential Page 4
User Story
In order to ….. achieve some goal
As a .... actor
I want to ...... have certain functionality
Scenario: Example
Given….. some situation
When.... perform action
Then...... verify correct behaviour
01-10-2015Confidential Page 5
01-10-2015Confidential Page 6
Once upon a time
…
01-10-2015Confidential Page 7
Controller
Validator Service
Collaborator
Converter
Acceptance
Test
01-10-2015Confidential Page 8
Controller
Validator Service
Collaborator
Converter
Acceptance
Test
Unit
Test
01-10-2015Confidential Page 9
Controller
Mock
Validator
Mock
Service
Obsolete
Collaborator
Mock
Converter
Unit
Test
London School of TDD
01-10-2015Confidential Page 10
01-10-2015Confidential Page 11
Three options to make a test pass:
1 2
Obvious Implementation
01-10-2015Confidential Page 12
assertThat(calculate.multiply(2 * 5), is(10));
1 2
multiply(x, y) {
return x * y;
}
multiply(x, y) {
return 10;
}
multiply(x, y) {
return 2 * 5;
}
multiply(x, y) {
return x * y;
}
01-10-2015Confidential Page 13
01-10-2015Confidential Page 14
Triangulation
3
01-10-2015Confidential Page 15
assertThat(calculate.multiply(2 * 5), is(10));3
multiply(x, y) {
return 10;
}
assertThat(calculate.multiply(2 * 7), is(14));
multiply(x, y) {
return 2 * y;
}
assertThat(calculate.multiply(3 * 7), is(21));
multiply(x, y) {
return x * y;
}
01-10-2015Confidential Page 16
Baby steps TDD
http://www.tddfellow.com/blog/2016/10/19/do-more-with-baby-steps-tdd/
01-10-2015Confidential Page 17
The Transformation Priority Premise
“As the tests get more specific,
the code gets more generic.”
https://8thlight.com/blog/uncle-bob/2013/05/27/TheTransformationPriorityPremise.html
01-10-2015Confidential Page 18
01-10-2015Confidential Page 19
1. You are here to LEARN.
(and have fun)
2. Try to do your best.
3. Work in pairs.
Find a partner in a similar
programming language
and operating system
01-10-2015Confidential Page 20
01-10-2015Confidential Page 21
1 2
Primefactors:
Factorize a positive integer
number into its prime factors.
Pokerhands:
Determine the winner given
two pokerhands.
See you next time: March16th
Test Driven Development
Refactoring
Haarlem Software Developer Meetup

More Related Content

Similar to Driving Development by Tests TDD Serie Haarlem Software Developer Meetup

Digital workplace as the engine of digital transformation
Digital workplace as the engine of digital transformationDigital workplace as the engine of digital transformation
Digital workplace as the engine of digital transformationMarco Tippmer, PMP
 
Heng thida slide-final
Heng thida slide-finalHeng thida slide-final
Heng thida slide-finalNeo Bidam
 
Positioning the CCC Professional Cloud Portfolio for Rapid Adoption
Positioning the CCC Professional Cloud Portfolio  for Rapid AdoptionPositioning the CCC Professional Cloud Portfolio  for Rapid Adoption
Positioning the CCC Professional Cloud Portfolio for Rapid AdoptionITpreneurs
 
Requirements Engineering: A Practicum
Requirements Engineering: A PracticumRequirements Engineering: A Practicum
Requirements Engineering: A PracticumTechWell
 
"Top Tips for Maximizing Tealium iQ" - First Data + WAD, Digital Velocity 2015
"Top Tips for Maximizing Tealium iQ" - First Data + WAD, Digital Velocity 2015"Top Tips for Maximizing Tealium iQ" - First Data + WAD, Digital Velocity 2015
"Top Tips for Maximizing Tealium iQ" - First Data + WAD, Digital Velocity 2015Tealium
 
Making the Move to Behavior-Driven Development
Making the Move to Behavior-Driven DevelopmentMaking the Move to Behavior-Driven Development
Making the Move to Behavior-Driven DevelopmentTechWell
 
10 Reasons to Outsource Software Development
10 Reasons to Outsource Software Development10 Reasons to Outsource Software Development
10 Reasons to Outsource Software DevelopmentJohn Rowan
 
Autodiscover flow in an office 365 environment part 3#3 part 31#36
Autodiscover flow in an office 365 environment  part 3#3  part 31#36Autodiscover flow in an office 365 environment  part 3#3  part 31#36
Autodiscover flow in an office 365 environment part 3#3 part 31#36Eyal Doron
 
Engineering Student MuleSoft Meetup#7 - Leveraging MuleSoft Service in Salesf...
Engineering Student MuleSoft Meetup#7 - Leveraging MuleSoft Service in Salesf...Engineering Student MuleSoft Meetup#7 - Leveraging MuleSoft Service in Salesf...
Engineering Student MuleSoft Meetup#7 - Leveraging MuleSoft Service in Salesf...Jitendra Bafna
 
Payment Integration using Braintree Connector | MuleSoft Mysore Meetup #37
Payment Integration using Braintree Connector | MuleSoft Mysore Meetup #37Payment Integration using Braintree Connector | MuleSoft Mysore Meetup #37
Payment Integration using Braintree Connector | MuleSoft Mysore Meetup #37MysoreMuleSoftMeetup
 
A Tragic Event and Training Small Businesses
A Tragic Event and Training Small BusinessesA Tragic Event and Training Small Businesses
A Tragic Event and Training Small BusinessesVisibleThread
 
MuleSoft Event Driven Architecture (EDA Patterns in MuleSoft) - VirtualMuleys63
MuleSoft Event Driven Architecture (EDA Patterns in MuleSoft) - VirtualMuleys63MuleSoft Event Driven Architecture (EDA Patterns in MuleSoft) - VirtualMuleys63
MuleSoft Event Driven Architecture (EDA Patterns in MuleSoft) - VirtualMuleys63Angel Alberici
 
Product Update with Customer Presentation & Surprise Announcements
Product Update with Customer Presentation & Surprise Announcements Product Update with Customer Presentation & Surprise Announcements
Product Update with Customer Presentation & Surprise Announcements BizTalk360
 
Django as a Data Tool in the Enterprise - PyData New York 2015
Django as a Data Tool in the Enterprise - PyData New York 2015Django as a Data Tool in the Enterprise - PyData New York 2015
Django as a Data Tool in the Enterprise - PyData New York 2015trentoliphant
 
Getting Started with Google Website Optimizer
Getting Started with Google Website OptimizerGetting Started with Google Website Optimizer
Getting Started with Google Website OptimizerSwellPath
 
Productionalizing Machine Learning Models: The Good, The Bad and The Ugly
Productionalizing Machine Learning Models: The Good, The Bad and The UglyProductionalizing Machine Learning Models: The Good, The Bad and The Ugly
Productionalizing Machine Learning Models: The Good, The Bad and The UglyIrina Kukuyeva, Ph.D.
 
Productionalizing Machine Learning Models: The Good, the Bad, and the Ugly
Productionalizing Machine Learning Models: The Good, the Bad, and the UglyProductionalizing Machine Learning Models: The Good, the Bad, and the Ugly
Productionalizing Machine Learning Models: The Good, the Bad, and the UglyIrina Kukuyeva, Ph.D.
 
Mes SW Factory in Siemens AS MES - 2014.05.17 - mini Italian Agile Day - Genova
Mes SW Factory in Siemens AS MES - 2014.05.17 - mini Italian Agile Day - GenovaMes SW Factory in Siemens AS MES - 2014.05.17 - mini Italian Agile Day - Genova
Mes SW Factory in Siemens AS MES - 2014.05.17 - mini Italian Agile Day - Genovaicelands
 
Serverless microservices: Test smarter, not harder
Serverless microservices: Test smarter, not harderServerless microservices: Test smarter, not harder
Serverless microservices: Test smarter, not harderDiUS
 

Similar to Driving Development by Tests TDD Serie Haarlem Software Developer Meetup (20)

Digital workplace as the engine of digital transformation
Digital workplace as the engine of digital transformationDigital workplace as the engine of digital transformation
Digital workplace as the engine of digital transformation
 
Heng thida slide-final
Heng thida slide-finalHeng thida slide-final
Heng thida slide-final
 
Positioning the CCC Professional Cloud Portfolio for Rapid Adoption
Positioning the CCC Professional Cloud Portfolio  for Rapid AdoptionPositioning the CCC Professional Cloud Portfolio  for Rapid Adoption
Positioning the CCC Professional Cloud Portfolio for Rapid Adoption
 
Requirements Engineering: A Practicum
Requirements Engineering: A PracticumRequirements Engineering: A Practicum
Requirements Engineering: A Practicum
 
"Top Tips for Maximizing Tealium iQ" - First Data + WAD, Digital Velocity 2015
"Top Tips for Maximizing Tealium iQ" - First Data + WAD, Digital Velocity 2015"Top Tips for Maximizing Tealium iQ" - First Data + WAD, Digital Velocity 2015
"Top Tips for Maximizing Tealium iQ" - First Data + WAD, Digital Velocity 2015
 
Making the Move to Behavior-Driven Development
Making the Move to Behavior-Driven DevelopmentMaking the Move to Behavior-Driven Development
Making the Move to Behavior-Driven Development
 
10 Reasons to Outsource Software Development
10 Reasons to Outsource Software Development10 Reasons to Outsource Software Development
10 Reasons to Outsource Software Development
 
Autodiscover flow in an office 365 environment part 3#3 part 31#36
Autodiscover flow in an office 365 environment  part 3#3  part 31#36Autodiscover flow in an office 365 environment  part 3#3  part 31#36
Autodiscover flow in an office 365 environment part 3#3 part 31#36
 
Engineering Student MuleSoft Meetup#7 - Leveraging MuleSoft Service in Salesf...
Engineering Student MuleSoft Meetup#7 - Leveraging MuleSoft Service in Salesf...Engineering Student MuleSoft Meetup#7 - Leveraging MuleSoft Service in Salesf...
Engineering Student MuleSoft Meetup#7 - Leveraging MuleSoft Service in Salesf...
 
Payment Integration using Braintree Connector | MuleSoft Mysore Meetup #37
Payment Integration using Braintree Connector | MuleSoft Mysore Meetup #37Payment Integration using Braintree Connector | MuleSoft Mysore Meetup #37
Payment Integration using Braintree Connector | MuleSoft Mysore Meetup #37
 
A Tragic Event and Training Small Businesses
A Tragic Event and Training Small BusinessesA Tragic Event and Training Small Businesses
A Tragic Event and Training Small Businesses
 
MuleSoft Event Driven Architecture (EDA Patterns in MuleSoft) - VirtualMuleys63
MuleSoft Event Driven Architecture (EDA Patterns in MuleSoft) - VirtualMuleys63MuleSoft Event Driven Architecture (EDA Patterns in MuleSoft) - VirtualMuleys63
MuleSoft Event Driven Architecture (EDA Patterns in MuleSoft) - VirtualMuleys63
 
Product Update with Customer Presentation & Surprise Announcements
Product Update with Customer Presentation & Surprise Announcements Product Update with Customer Presentation & Surprise Announcements
Product Update with Customer Presentation & Surprise Announcements
 
Django as a Data Tool in the Enterprise - PyData New York 2015
Django as a Data Tool in the Enterprise - PyData New York 2015Django as a Data Tool in the Enterprise - PyData New York 2015
Django as a Data Tool in the Enterprise - PyData New York 2015
 
Getting Started with Google Website Optimizer
Getting Started with Google Website OptimizerGetting Started with Google Website Optimizer
Getting Started with Google Website Optimizer
 
Unit Testing: Not Just for Apex
Unit Testing: Not Just for ApexUnit Testing: Not Just for Apex
Unit Testing: Not Just for Apex
 
Productionalizing Machine Learning Models: The Good, The Bad and The Ugly
Productionalizing Machine Learning Models: The Good, The Bad and The UglyProductionalizing Machine Learning Models: The Good, The Bad and The Ugly
Productionalizing Machine Learning Models: The Good, The Bad and The Ugly
 
Productionalizing Machine Learning Models: The Good, the Bad, and the Ugly
Productionalizing Machine Learning Models: The Good, the Bad, and the UglyProductionalizing Machine Learning Models: The Good, the Bad, and the Ugly
Productionalizing Machine Learning Models: The Good, the Bad, and the Ugly
 
Mes SW Factory in Siemens AS MES - 2014.05.17 - mini Italian Agile Day - Genova
Mes SW Factory in Siemens AS MES - 2014.05.17 - mini Italian Agile Day - GenovaMes SW Factory in Siemens AS MES - 2014.05.17 - mini Italian Agile Day - Genova
Mes SW Factory in Siemens AS MES - 2014.05.17 - mini Italian Agile Day - Genova
 
Serverless microservices: Test smarter, not harder
Serverless microservices: Test smarter, not harderServerless microservices: Test smarter, not harder
Serverless microservices: Test smarter, not harder
 

Recently uploaded

Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
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
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
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
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
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
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
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
 
cybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningcybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningVitsRangannavar
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 

Recently uploaded (20)

Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
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...
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
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...
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
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
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
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
 
cybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningcybersecurity notes for mca students for learning
cybersecurity notes for mca students for learning
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 

Driving Development by Tests TDD Serie Haarlem Software Developer Meetup

Editor's Notes

  1. Prior to building something you should know What you need to build. Knowing Why is usefull e
  2. Write a failing Acceptance Test first. It will fail and continue to fail for a long time Start building needed units and once all units are in place the Acceptance Test should start t pass.
  3. In the Acceptance Test you are doing to define the ‘External API’ for the new feature / functionality. Make it a pretty story! Make your code easy to use by making the API pretty.
  4. TDD: Start by writing a faiing test.
  5. Proof that you can solve the problem! Close the safety net quickly
  6. Note: It isn’t mandatory to go through all these steps. But given a state of a codebase knowing these transformation might give a suggestion to the next test.