SlideShare ist ein Scribd-Unternehmen logo
1 von 28
Downloaden Sie, um offline zu lesen
TDD distilled... in Java
Notes
● Shared slides are without images because of intellectual rights reasons.
● In conference slides you found images from “The Colour Monster” thanks to Anna
Llenas and Flamboyant Editions
○ http://www.annallenas.com
● Manuela Munaretto
● Agile Dev at Xpeppers
● Mother
● @m_munaretto
● www.xpeppers.com
● manuela.munaretto@xpeppers.
com
● Ivan Lombardi Borgia
● Agile Dev at Xpeppers
● @ivanlombardib
● www.xpeppers.com
● ivan.lombardiborgia@xpeppers.
com
Who are we?
● Sharing is growing
● Give back to the community
Why we are here?
Agenda
25’: Welcome and introduction to codelab
5’: Q&A
25’: Session #1
10’: Retrospective
25’: Session #2
20’: Retrospective
5’: Feedback door
Distilled
The What and The Why
● The What: the mechanics
● The Why: the ideas behind them
The What
What I mean by TDD
RED
GREEN REFACTOR
The TDD mantra
● RED
● GREEN
● REFACTOR
Add a little failing test
You are not allowed to write any production code unless it is to
make a failing unit test pass.
Run all tests and fail
You are not allowed to write any more of a unit test than is
sufficient to fail.
Make a little change
You are not allowed to write any more production code than is
sufficient to pass the one failing unit test.
Run the tests and succeed
If it succeeds, you’re done.
Refactor to name concepts
Explicitly name the concepts before you try to eliminate the
duplication.
Refactor to remove duplication
Don’t Repeat Yourself: every piece of knowledge must have a
single, unambiguous, authoritative representation within a
system.
Write a test list
● A title
● Get things out of your head quickly
● Any example that comes to mind
● Simpler examples
● All the variations
What TDD is not
● Traditional Unit Testing
○ After the program has been
written
○ Try to find problem
● A testing technique
○ Unit Testing
○ Stress Testing
○ Smoke Testing
○ Black box Testing
The Why
RED
● It forces you to really think about what you are going to do.
● There is a big step between hearing the words of a customer
and understanding the meaning.
● It drives the design.
GREEN
● Divide et impera.
● Fake it until make it.
● Don't try to implement two things at a time.
● Writing the easy code first makes writing the hard code easy.
REFACTOR
● Make it Clean preserving functionalities.
● Keep work focused.
● Permit more aggressive refactorings.
● Complexity on tests reflect complexity on production code.
The Code
String Calculator
● Simple exercise to focus on basis
● Also experts need to practice basis
https://github.com/xpeppers/tdd-distilled-java
The Feedback
Retrospective
● What I learned
○ +
○ -
● Actions
● You should not go through the door
without giving some feedback:
○ A scale 1 to 5
○ 1 = very negative
○ 5 = very positive
Resources
● Extreme Programming: A gentle introduction
○ http://www.extremeprogramming.org/
● Test-Driven Development: By Example - Kent Beck
○ http://www.amazon.
it/dp/0321146530/ref=cm_sw_r_tw_dp_5rgrwb1F002NJ
● Cunningham & Cunningham, Inc.
○ http://c2.com/
Resources
● The World's Best Intro to TDD
○ http://online-training.jbrains.ca/courses/wbitdd-01
● String Calculator
○ http://osherove.com/tdd-kata-1/
● Understanding the 4 rules of simple design
○ https://leanpub.com/4rulesofsimpledesign
Resources
● Workflows Of Refactoring
○ http://martinfowler.com/articles/workflowsOfRefactoring
● The Feedback Door
○ https://dzone.com/articles/feedback-door

Weitere ähnliche Inhalte

Was ist angesagt?

Building and Managing a Digital English Studio
Building and Managing a Digital English StudioBuilding and Managing a Digital English Studio
Building and Managing a Digital English StudioKeystone DH 2016
 
Post-Agile Methodologies and all that Jazz
Post-Agile Methodologies and all that JazzPost-Agile Methodologies and all that Jazz
Post-Agile Methodologies and all that JazzStojan Peshov
 
Philippe Lewicki (AfterNow): User Experience for Practical Applications in Mi...
Philippe Lewicki (AfterNow): User Experience for Practical Applications in Mi...Philippe Lewicki (AfterNow): User Experience for Practical Applications in Mi...
Philippe Lewicki (AfterNow): User Experience for Practical Applications in Mi...AugmentedWorldExpo
 
Turning humans into developers with Perl - London Perl Workshop 2017
Turning humans into developers with Perl - London Perl Workshop 2017Turning humans into developers with Perl - London Perl Workshop 2017
Turning humans into developers with Perl - London Perl Workshop 2017Julien Fiegehenn
 
Agile Programming Live - AgilePrague2012
Agile Programming Live - AgilePrague2012Agile Programming Live - AgilePrague2012
Agile Programming Live - AgilePrague2012Johannes Brodwall
 
Be your own boss - An intro to freelancing
Be your own boss - An intro to freelancingBe your own boss - An intro to freelancing
Be your own boss - An intro to freelancingTarek Alabd
 
Some of my best friends are localisers
Some of my best friends are localisersSome of my best friends are localisers
Some of my best friends are localisersDwayne Bailey
 

Was ist angesagt? (8)

Building and Managing a Digital English Studio
Building and Managing a Digital English StudioBuilding and Managing a Digital English Studio
Building and Managing a Digital English Studio
 
Post-Agile Methodologies and all that Jazz
Post-Agile Methodologies and all that JazzPost-Agile Methodologies and all that Jazz
Post-Agile Methodologies and all that Jazz
 
Philippe Lewicki (AfterNow): User Experience for Practical Applications in Mi...
Philippe Lewicki (AfterNow): User Experience for Practical Applications in Mi...Philippe Lewicki (AfterNow): User Experience for Practical Applications in Mi...
Philippe Lewicki (AfterNow): User Experience for Practical Applications in Mi...
 
Turning humans into developers with Perl - London Perl Workshop 2017
Turning humans into developers with Perl - London Perl Workshop 2017Turning humans into developers with Perl - London Perl Workshop 2017
Turning humans into developers with Perl - London Perl Workshop 2017
 
Agile Programming Live - AgilePrague2012
Agile Programming Live - AgilePrague2012Agile Programming Live - AgilePrague2012
Agile Programming Live - AgilePrague2012
 
Be your own boss - An intro to freelancing
Be your own boss - An intro to freelancingBe your own boss - An intro to freelancing
Be your own boss - An intro to freelancing
 
Some of my best friends are localisers
Some of my best friends are localisersSome of my best friends are localisers
Some of my best friends are localisers
 
Microsoft at NFB
Microsoft at NFBMicrosoft at NFB
Microsoft at NFB
 

Ähnlich wie Tdd distilled... in java

The obstacles of developer productivity.pptx
The obstacles of developer productivity.pptxThe obstacles of developer productivity.pptx
The obstacles of developer productivity.pptxLaurence Chen
 
Test driven development_and_puppet-cfgmgmtcamp_eu-20140402
Test driven development_and_puppet-cfgmgmtcamp_eu-20140402Test driven development_and_puppet-cfgmgmtcamp_eu-20140402
Test driven development_and_puppet-cfgmgmtcamp_eu-20140402Johan De Wit
 
Xconf 2014 - Contributing to Open Source
Xconf 2014 - Contributing to Open SourceXconf 2014 - Contributing to Open Source
Xconf 2014 - Contributing to Open SourceParas Narang
 
Ace the Tech Interviews - www.hiredintech.com
Ace the Tech Interviews - www.hiredintech.comAce the Tech Interviews - www.hiredintech.com
Ace the Tech Interviews - www.hiredintech.comAnton Dimitrov
 
Professional development
Professional developmentProfessional development
Professional developmentJulio Martinez
 
Simple vs Easy
Simple vs EasySimple vs Easy
Simple vs EasyTwentify
 
Collaborating with Developers: How-to Guide for Test Engineers - By Gil Tayar
Collaborating with Developers: How-to Guide for Test Engineers - By Gil Tayar Collaborating with Developers: How-to Guide for Test Engineers - By Gil Tayar
Collaborating with Developers: How-to Guide for Test Engineers - By Gil Tayar Applitools
 
Design of everyday things fundamental principles of interaction
Design of everyday things   fundamental principles of interactionDesign of everyday things   fundamental principles of interaction
Design of everyday things fundamental principles of interactionIsaac Liao
 
CP vs Project - Elevate Ep. 02.pdf
CP vs Project  - Elevate Ep. 02.pdfCP vs Project  - Elevate Ep. 02.pdf
CP vs Project - Elevate Ep. 02.pdfpreetikumara
 
Exploring design-alternatives-using-tdd
Exploring design-alternatives-using-tddExploring design-alternatives-using-tdd
Exploring design-alternatives-using-tddAlexandru Bolboaca
 
How to be a 10x Engineer
How to be a 10x EngineerHow to be a 10x Engineer
How to be a 10x EngineerNick Sullivan
 
Writing Tests Effectively
Writing Tests EffectivelyWriting Tests Effectively
Writing Tests EffectivelyPaul Boocock
 
The Holistic Programmer
The Holistic ProgrammerThe Holistic Programmer
The Holistic ProgrammerJonas Auken
 
Public presentations for software engineers
Public presentations for software engineersPublic presentations for software engineers
Public presentations for software engineersRoman Nikitchenko
 
Test driven development - why you should test first?
Test driven development - why you should test first?Test driven development - why you should test first?
Test driven development - why you should test first?Abimbola Idowu
 
Habits of scalable product organizations
Habits of scalable product organizationsHabits of scalable product organizations
Habits of scalable product organizationsLaszlo Fogas
 

Ähnlich wie Tdd distilled... in java (20)

Coding dojo
Coding dojoCoding dojo
Coding dojo
 
The obstacles of developer productivity.pptx
The obstacles of developer productivity.pptxThe obstacles of developer productivity.pptx
The obstacles of developer productivity.pptx
 
Test driven development_and_puppet-cfgmgmtcamp_eu-20140402
Test driven development_and_puppet-cfgmgmtcamp_eu-20140402Test driven development_and_puppet-cfgmgmtcamp_eu-20140402
Test driven development_and_puppet-cfgmgmtcamp_eu-20140402
 
Xconf 2014 - Contributing to Open Source
Xconf 2014 - Contributing to Open SourceXconf 2014 - Contributing to Open Source
Xconf 2014 - Contributing to Open Source
 
Ace the Tech Interviews - www.hiredintech.com
Ace the Tech Interviews - www.hiredintech.comAce the Tech Interviews - www.hiredintech.com
Ace the Tech Interviews - www.hiredintech.com
 
Professional development
Professional developmentProfessional development
Professional development
 
Pair programming
Pair programmingPair programming
Pair programming
 
Simple vs Easy
Simple vs EasySimple vs Easy
Simple vs Easy
 
Collaborating with Developers: How-to Guide for Test Engineers - By Gil Tayar
Collaborating with Developers: How-to Guide for Test Engineers - By Gil Tayar Collaborating with Developers: How-to Guide for Test Engineers - By Gil Tayar
Collaborating with Developers: How-to Guide for Test Engineers - By Gil Tayar
 
Design of everyday things fundamental principles of interaction
Design of everyday things   fundamental principles of interactionDesign of everyday things   fundamental principles of interaction
Design of everyday things fundamental principles of interaction
 
CP vs Project - Elevate Ep. 02.pdf
CP vs Project  - Elevate Ep. 02.pdfCP vs Project  - Elevate Ep. 02.pdf
CP vs Project - Elevate Ep. 02.pdf
 
Exploring design-alternatives-using-tdd
Exploring design-alternatives-using-tddExploring design-alternatives-using-tdd
Exploring design-alternatives-using-tdd
 
How to be a 10x Engineer
How to be a 10x EngineerHow to be a 10x Engineer
How to be a 10x Engineer
 
Writing Tests Effectively
Writing Tests EffectivelyWriting Tests Effectively
Writing Tests Effectively
 
The Holistic Programmer
The Holistic ProgrammerThe Holistic Programmer
The Holistic Programmer
 
Public presentations for software engineers
Public presentations for software engineersPublic presentations for software engineers
Public presentations for software engineers
 
How to run a hackday
How to run a hackdayHow to run a hackday
How to run a hackday
 
Engineer - Mastering the Art of Software
Engineer - Mastering the Art of SoftwareEngineer - Mastering the Art of Software
Engineer - Mastering the Art of Software
 
Test driven development - why you should test first?
Test driven development - why you should test first?Test driven development - why you should test first?
Test driven development - why you should test first?
 
Habits of scalable product organizations
Habits of scalable product organizationsHabits of scalable product organizations
Habits of scalable product organizations
 

Kürzlich hochgeladen

Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastPapp Krisztián
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrainmasabamasaba
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...SelfMade bd
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfonteinmasabamasaba
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...Shane Coughlan
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfkalichargn70th171
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...masabamasaba
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in sowetomasabamasaba
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech studentsHimanshiGarg82
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park masabamasaba
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...Jittipong Loespradit
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension AidPhilip Schwarz
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...masabamasaba
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionOnePlan Solutions
 

Kürzlich hochgeladen (20)

Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 

Tdd distilled... in java

  • 2. Notes ● Shared slides are without images because of intellectual rights reasons. ● In conference slides you found images from “The Colour Monster” thanks to Anna Llenas and Flamboyant Editions ○ http://www.annallenas.com
  • 3. ● Manuela Munaretto ● Agile Dev at Xpeppers ● Mother ● @m_munaretto ● www.xpeppers.com ● manuela.munaretto@xpeppers. com ● Ivan Lombardi Borgia ● Agile Dev at Xpeppers ● @ivanlombardib ● www.xpeppers.com ● ivan.lombardiborgia@xpeppers. com Who are we?
  • 4. ● Sharing is growing ● Give back to the community Why we are here?
  • 5. Agenda 25’: Welcome and introduction to codelab 5’: Q&A 25’: Session #1 10’: Retrospective 25’: Session #2 20’: Retrospective 5’: Feedback door
  • 7. The What and The Why ● The What: the mechanics ● The Why: the ideas behind them
  • 9. What I mean by TDD RED GREEN REFACTOR The TDD mantra ● RED ● GREEN ● REFACTOR
  • 10. Add a little failing test You are not allowed to write any production code unless it is to make a failing unit test pass.
  • 11. Run all tests and fail You are not allowed to write any more of a unit test than is sufficient to fail.
  • 12. Make a little change You are not allowed to write any more production code than is sufficient to pass the one failing unit test.
  • 13. Run the tests and succeed If it succeeds, you’re done.
  • 14. Refactor to name concepts Explicitly name the concepts before you try to eliminate the duplication.
  • 15. Refactor to remove duplication Don’t Repeat Yourself: every piece of knowledge must have a single, unambiguous, authoritative representation within a system.
  • 16. Write a test list ● A title ● Get things out of your head quickly ● Any example that comes to mind ● Simpler examples ● All the variations
  • 17. What TDD is not ● Traditional Unit Testing ○ After the program has been written ○ Try to find problem ● A testing technique ○ Unit Testing ○ Stress Testing ○ Smoke Testing ○ Black box Testing
  • 19. RED ● It forces you to really think about what you are going to do. ● There is a big step between hearing the words of a customer and understanding the meaning. ● It drives the design.
  • 20. GREEN ● Divide et impera. ● Fake it until make it. ● Don't try to implement two things at a time. ● Writing the easy code first makes writing the hard code easy.
  • 21. REFACTOR ● Make it Clean preserving functionalities. ● Keep work focused. ● Permit more aggressive refactorings. ● Complexity on tests reflect complexity on production code.
  • 23. String Calculator ● Simple exercise to focus on basis ● Also experts need to practice basis https://github.com/xpeppers/tdd-distilled-java
  • 25. Retrospective ● What I learned ○ + ○ - ● Actions ● You should not go through the door without giving some feedback: ○ A scale 1 to 5 ○ 1 = very negative ○ 5 = very positive
  • 26. Resources ● Extreme Programming: A gentle introduction ○ http://www.extremeprogramming.org/ ● Test-Driven Development: By Example - Kent Beck ○ http://www.amazon. it/dp/0321146530/ref=cm_sw_r_tw_dp_5rgrwb1F002NJ ● Cunningham & Cunningham, Inc. ○ http://c2.com/
  • 27. Resources ● The World's Best Intro to TDD ○ http://online-training.jbrains.ca/courses/wbitdd-01 ● String Calculator ○ http://osherove.com/tdd-kata-1/ ● Understanding the 4 rules of simple design ○ https://leanpub.com/4rulesofsimpledesign
  • 28. Resources ● Workflows Of Refactoring ○ http://martinfowler.com/articles/workflowsOfRefactoring ● The Feedback Door ○ https://dzone.com/articles/feedback-door