SlideShare une entreprise Scribd logo
1  sur  42
Télécharger pour lire hors ligne
agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License
Test Driven Development Dojo
A safe way to be introduced to a powerful way of programming
!
!
Roberto Bettazzoni
agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License
About me
Agile Coach
eXtreme Programming Trainer
!
>30 years of coding (and still proudly counting)
!
roberto.bettazzoni@agile42.com
linkedin.com/in/robertobettazzoni
@bettazzoni
Roberto Bettazzoni
agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License
T.D.D. Coder Dojo Agenda
• TDD in a very small nutshell
• TDD Sempai demo
• For each Kata (35 min.)
‣ Choose the Kata
‣ execute
‣ break (5 min.)
‣ StandUp
道場
型
agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported Licenseagile42 | We advise, train and coach companies building software www.agile42.com | All rights reserved. Copyright © 2007 - 2010.
Test Driven Development
agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License
Test-Driven Development as Formula
TDD = ( Test First
+ Unit Testing
+ Refactoring )
* Baby Steps
agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported Licenseagile42 | We advise, train and coach companies building software www.agile42.com | All rights reserved. Copyright © 2007 - 2010.
Test First
agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported Licenseagile42 | We advise, train and coach companies building software www.agile42.com | All rights reserved. Copyright © 2007 - 2010.
Test First Programming
!
“Write a failing automated test before
changing any code.”
!
Kent Beck, Extreme Programming Explained 2nd Ed. 2004
agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported Licenseagile42 | We advise, train and coach companies building software www.agile42.com | All rights reserved. Copyright © 2007 - 2010.
Unit Test
agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License
unit test
Method to verify isolated units of code
agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License
unit test
user
code
Acceptance Criteria test
Functional test
Unit test
agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License
unit test
Method to verify isolated units of code
agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License
unit test
Method to verify isolated units of code
agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License
unit test
assert condition
agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License
unit test
Method to verify isolated units of code
agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License
Test Isolation
B
D
C
A
agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License
Test Isolation
Run 4 tests: A, B, C, D
B
D
C
A
agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License
Test Isolation
B
D
C
A
agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License
Test Isolation
Run 3 tests: A, B, D
B
D
A
agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License
Test Isolation
Run 3 tests: D, A, B
B
D
A
agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License
unit test library
test()
agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License
unit test library
setUp() - test() - tearDown()
agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License
unit test
Method to verify isolated units of code
agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License
unit test - What is a unit of code?
Classes
Methods
Functions
Blocks of code
agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License
Code Isolation (or Unit Isolation)
B
D
C
A
agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License
Code Isolation (or Unit Isolation)
B
D
C
A
agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported Licenseagile42 | We advise, train and coach companies building software www.agile42.com | All rights reserved. Copyright © 2007 - 2010.
Code Refactoring
agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License
Refactoring
Changing existing code
without changing its external behavior
agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License
Refactoring
Make your code better
without changing its external behavior
agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License
Three Principles to Write Good Code
1. Find good names
2. Remove duplications
3. There is no third principle
agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License
Refactoring. The Sensei Words
Any fool can write code that a
computer can understand.
Good programmers write code that
humans can understand
Martin Fowler, Refactoring: Improving the Design of Existing Code, 1999 pag. 15
agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported Licenseagile42 | We advise, train and coach companies building software www.agile42.com | All rights reserved. Copyright © 2007 - 2010.
Baby Steps
agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License
Baby steps.
… proceed iteratively in baby steps —
the shortest step that can be
appreciated in the right direction
Kent Beck, Extreme Programming Explained 2nd Ed. 2004
agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported Licenseagile42 | We advise, train and coach companies building software www.agile42.com | All rights reserved. Copyright © 2007 - 2010.
The TDD process
Unit tests suite pass
unit testa unit test
Write a unit test
Write the code
Refactor the code
Refactor the tests
Unit test
pass
Unit test fails
agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported Licenseagile42 | We advise, train and coach companies building software www.agile42.com | All rights reserved. Copyright © 2007 - 2010.
The TDD process from the Functional Tests
Add a functional test
Run the test &
check failure
Run all functional
tests see all pass
!
Refactor
the
Design
agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported Licenseagile42 | We advise, train and coach companies building software www.agile42.com | All rights reserved. Copyright © 2007 - 2010.
Welcome to the coding dojo
agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License
dojo
道場(place of the way)
agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License
kata
型(form)
agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License
Dojo Kun (the dojo rules)
At the Dojo one can’t discuss a form without code, and
one can’t show code without tests. It is a design training
place, where it is acknowledged that “the code is the
design” and that code without tests simply doesn’t exist.
Emily Bache, The Coding Dojo Handbook, 2012
(translated from Christophe Thibaut, Laurent Bossavit’s blog, 2005)
You are here to practice, not to build something
No output is required, neither logging or tracing activities
Every aspect of the kata (design, UI …) is in your hands
agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License
Sempai Demo
Let’s start
the Sempai TDD Demo
agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported Licenseagile42 | We advise, train and coach companies building software www.agile42.com | All rights reserved. Copyright © 2007 - 2010.
Coding Dojo retrospective
agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License
TDD
ALL CODE IS GUILTY
UNTIL PROVEN INNOCENT
agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License
Food for thoughts

Contenu connexe

Tendances

Agile testing - Testing From Day 1
Agile testing - Testing From Day 1Agile testing - Testing From Day 1
Agile testing - Testing From Day 1Kaizenko
 
Agile Testing Framework - The Art of Automated Testing
Agile Testing Framework - The Art of Automated TestingAgile Testing Framework - The Art of Automated Testing
Agile Testing Framework - The Art of Automated TestingDimitri Ponomareff
 
What is Agile Testing?
What is Agile Testing?What is Agile Testing?
What is Agile Testing?Anand Bagmar
 
Certified Professional Master Agile Testing information and highlights
Certified Professional Master Agile Testing  information and highlightsCertified Professional Master Agile Testing  information and highlights
Certified Professional Master Agile Testing information and highlightsAgile Testing Alliance
 
Implementing automation in definition of done is team effort
Implementing automation in definition of done is team effortImplementing automation in definition of done is team effort
Implementing automation in definition of done is team effortAnand Narayan Shirkande
 
What is Agile Testing?
What is Agile Testing?What is Agile Testing?
What is Agile Testing?vodQA
 
ATD 2018: Journey Ice-cream cone approach
ATD 2018: Journey Ice-cream cone approachATD 2018: Journey Ice-cream cone approach
ATD 2018: Journey Ice-cream cone approachKarla Silva
 
Agile tour ncr test360_degree - agile testing on steroids
Agile tour ncr test360_degree - agile testing on steroidsAgile tour ncr test360_degree - agile testing on steroids
Agile tour ncr test360_degree - agile testing on steroidsVipul Gupta
 
Trends in Agile Testing by Lisa Crispin
Trends in Agile Testing by Lisa CrispinTrends in Agile Testing by Lisa Crispin
Trends in Agile Testing by Lisa CrispinDirecti Group
 
Testing in Agile Projects
Testing in Agile ProjectsTesting in Agile Projects
Testing in Agile Projectssriks7
 
Test Automation Strategies for the Agile World
Test Automation Strategies for the Agile WorldTest Automation Strategies for the Agile World
Test Automation Strategies for the Agile WorldTechWell
 
The New Gives and Takes in a testers role
The New Gives and Takes in a testers role The New Gives and Takes in a testers role
The New Gives and Takes in a testers role Agile Testing Alliance
 
Selenium Certification
Selenium CertificationSelenium Certification
Selenium CertificationVskills
 
DevOps or Devops - living in silos or living as a team
DevOps or Devops -  living in silos or living as a teamDevOps or Devops -  living in silos or living as a team
DevOps or Devops - living in silos or living as a teamVinay Krishna
 
Selenium certification program
Selenium certification programSelenium certification program
Selenium certification programshivramm
 

Tendances (20)

Agile Testing by Example
Agile Testing by ExampleAgile Testing by Example
Agile Testing by Example
 
QA in Agile World
QA in Agile WorldQA in Agile World
QA in Agile World
 
Agile testing - Testing From Day 1
Agile testing - Testing From Day 1Agile testing - Testing From Day 1
Agile testing - Testing From Day 1
 
About Agile Testing Alliance (ATA)
About Agile Testing Alliance (ATA)About Agile Testing Alliance (ATA)
About Agile Testing Alliance (ATA)
 
Agile Testing Framework - The Art of Automated Testing
Agile Testing Framework - The Art of Automated TestingAgile Testing Framework - The Art of Automated Testing
Agile Testing Framework - The Art of Automated Testing
 
What is Agile Testing?
What is Agile Testing?What is Agile Testing?
What is Agile Testing?
 
What is Agile Testing?
What is Agile Testing? What is Agile Testing?
What is Agile Testing?
 
Certified Professional Master Agile Testing information and highlights
Certified Professional Master Agile Testing  information and highlightsCertified Professional Master Agile Testing  information and highlights
Certified Professional Master Agile Testing information and highlights
 
Implementing automation in definition of done is team effort
Implementing automation in definition of done is team effortImplementing automation in definition of done is team effort
Implementing automation in definition of done is team effort
 
What is Agile Testing?
What is Agile Testing?What is Agile Testing?
What is Agile Testing?
 
ATD 2018: Journey Ice-cream cone approach
ATD 2018: Journey Ice-cream cone approachATD 2018: Journey Ice-cream cone approach
ATD 2018: Journey Ice-cream cone approach
 
Agile tour ncr test360_degree - agile testing on steroids
Agile tour ncr test360_degree - agile testing on steroidsAgile tour ncr test360_degree - agile testing on steroids
Agile tour ncr test360_degree - agile testing on steroids
 
Trends in Agile Testing by Lisa Crispin
Trends in Agile Testing by Lisa CrispinTrends in Agile Testing by Lisa Crispin
Trends in Agile Testing by Lisa Crispin
 
Testing in Agile Projects
Testing in Agile ProjectsTesting in Agile Projects
Testing in Agile Projects
 
Test Automation Strategies for the Agile World
Test Automation Strategies for the Agile WorldTest Automation Strategies for the Agile World
Test Automation Strategies for the Agile World
 
The New Gives and Takes in a testers role
The New Gives and Takes in a testers role The New Gives and Takes in a testers role
The New Gives and Takes in a testers role
 
Agile test tools
Agile test toolsAgile test tools
Agile test tools
 
Selenium Certification
Selenium CertificationSelenium Certification
Selenium Certification
 
DevOps or Devops - living in silos or living as a team
DevOps or Devops -  living in silos or living as a teamDevOps or Devops -  living in silos or living as a team
DevOps or Devops - living in silos or living as a team
 
Selenium certification program
Selenium certification programSelenium certification program
Selenium certification program
 

Similaire à TDD Dojo - Test Driven Development Coding Dojo

Agility meets regulatory compliance
Agility meets regulatory complianceAgility meets regulatory compliance
Agility meets regulatory complianceDave Sharrock
 
Useful Lean Tools: Value Stream Mapping and Kanban
Useful Lean Tools: Value Stream Mapping and KanbanUseful Lean Tools: Value Stream Mapping and Kanban
Useful Lean Tools: Value Stream Mapping and KanbanRoberto Bettazzoni
 
IBM Innovate2014 - Is Agile Compliance an Oxymoron?
IBM Innovate2014 - Is Agile Compliance an Oxymoron? IBM Innovate2014 - Is Agile Compliance an Oxymoron?
IBM Innovate2014 - Is Agile Compliance an Oxymoron? Dave Sharrock
 
Will Agile work in my embedded development environment?
Will Agile work in my embedded development environment?Will Agile work in my embedded development environment?
Will Agile work in my embedded development environment?bmyllerup
 
Thoughts on Lean Product Development at CAMUG, YYC Nov 2014
Thoughts on Lean Product Development at CAMUG, YYC Nov 2014Thoughts on Lean Product Development at CAMUG, YYC Nov 2014
Thoughts on Lean Product Development at CAMUG, YYC Nov 2014Dave Sharrock
 
The agile reading glasses: foundation principles and history being agile appr...
The agile reading glasses: foundation principles and history being agile appr...The agile reading glasses: foundation principles and history being agile appr...
The agile reading glasses: foundation principles and history being agile appr...Andrea Tomasini
 
Lean Product Management @ SDEC13, Winnipeg
Lean Product Management @ SDEC13, WinnipegLean Product Management @ SDEC13, Winnipeg
Lean Product Management @ SDEC13, WinnipegDave Sharrock
 
Adopting Scrum: an enterprise transformation (Andrea Tomasini, agile42)
Adopting Scrum: an enterprise transformation (Andrea Tomasini, agile42)Adopting Scrum: an enterprise transformation (Andrea Tomasini, agile42)
Adopting Scrum: an enterprise transformation (Andrea Tomasini, agile42)Andrea Tomasini
 
Adopting Scrum: an enterprise transformation
Adopting Scrum: an enterprise transformationAdopting Scrum: an enterprise transformation
Adopting Scrum: an enterprise transformationHugo Lourenco
 
Agile Testing is nonsense, because Agile is about testing!
Agile Testing is nonsense, because Agile is about testing!Agile Testing is nonsense, because Agile is about testing!
Agile Testing is nonsense, because Agile is about testing!Andrea Tomasini
 
Why practices are not as important as principles?
Why practices are not as important as principles?Why practices are not as important as principles?
Why practices are not as important as principles?Andrea Tomasini
 
From a Product Vision to a running software... and back again, and agile coac...
From a Product Vision to a running software... and back again, and agile coac...From a Product Vision to a running software... and back again, and agile coac...
From a Product Vision to a running software... and back again, and agile coac...Andrea Tomasini
 
A journey to_be_a_software_craftsman
A journey to_be_a_software_craftsmanA journey to_be_a_software_craftsman
A journey to_be_a_software_craftsmanJaehoon Oh
 
Behavior Driven Development—A Guide to Agile Practices by Josh Eastman
Behavior Driven Development—A Guide to Agile Practices by Josh EastmanBehavior Driven Development—A Guide to Agile Practices by Josh Eastman
Behavior Driven Development—A Guide to Agile Practices by Josh EastmanQA or the Highway
 
Where next?
Where next?Where next?
Where next?agile42
 
Why self-organization might not work, and what has that to do with the compan...
Why self-organization might not work, and what has that to do with the compan...Why self-organization might not work, and what has that to do with the compan...
Why self-organization might not work, and what has that to do with the compan...Andrea Tomasini
 
Keynote stop scaling... start growing an agile organization!
Keynote stop scaling... start growing an agile organization!Keynote stop scaling... start growing an agile organization!
Keynote stop scaling... start growing an agile organization!Andrea Tomasini
 
Great Agile Teams @ SDEC13, Winnipeg
Great Agile Teams @ SDEC13, WinnipegGreat Agile Teams @ SDEC13, Winnipeg
Great Agile Teams @ SDEC13, WinnipegDave Sharrock
 
Is your organisation reaping the possible benefits of scaling agile?
Is your organisation reaping the possible benefits of scaling agile? Is your organisation reaping the possible benefits of scaling agile?
Is your organisation reaping the possible benefits of scaling agile? Ralf Kruse
 
Out of Sight, Out of Mind: Survival tricks and tools for remote developers
Out of Sight, Out of Mind: Survival tricks and tools for remote developersOut of Sight, Out of Mind: Survival tricks and tools for remote developers
Out of Sight, Out of Mind: Survival tricks and tools for remote developersAlessio Bragadini
 

Similaire à TDD Dojo - Test Driven Development Coding Dojo (20)

Agility meets regulatory compliance
Agility meets regulatory complianceAgility meets regulatory compliance
Agility meets regulatory compliance
 
Useful Lean Tools: Value Stream Mapping and Kanban
Useful Lean Tools: Value Stream Mapping and KanbanUseful Lean Tools: Value Stream Mapping and Kanban
Useful Lean Tools: Value Stream Mapping and Kanban
 
IBM Innovate2014 - Is Agile Compliance an Oxymoron?
IBM Innovate2014 - Is Agile Compliance an Oxymoron? IBM Innovate2014 - Is Agile Compliance an Oxymoron?
IBM Innovate2014 - Is Agile Compliance an Oxymoron?
 
Will Agile work in my embedded development environment?
Will Agile work in my embedded development environment?Will Agile work in my embedded development environment?
Will Agile work in my embedded development environment?
 
Thoughts on Lean Product Development at CAMUG, YYC Nov 2014
Thoughts on Lean Product Development at CAMUG, YYC Nov 2014Thoughts on Lean Product Development at CAMUG, YYC Nov 2014
Thoughts on Lean Product Development at CAMUG, YYC Nov 2014
 
The agile reading glasses: foundation principles and history being agile appr...
The agile reading glasses: foundation principles and history being agile appr...The agile reading glasses: foundation principles and history being agile appr...
The agile reading glasses: foundation principles and history being agile appr...
 
Lean Product Management @ SDEC13, Winnipeg
Lean Product Management @ SDEC13, WinnipegLean Product Management @ SDEC13, Winnipeg
Lean Product Management @ SDEC13, Winnipeg
 
Adopting Scrum: an enterprise transformation (Andrea Tomasini, agile42)
Adopting Scrum: an enterprise transformation (Andrea Tomasini, agile42)Adopting Scrum: an enterprise transformation (Andrea Tomasini, agile42)
Adopting Scrum: an enterprise transformation (Andrea Tomasini, agile42)
 
Adopting Scrum: an enterprise transformation
Adopting Scrum: an enterprise transformationAdopting Scrum: an enterprise transformation
Adopting Scrum: an enterprise transformation
 
Agile Testing is nonsense, because Agile is about testing!
Agile Testing is nonsense, because Agile is about testing!Agile Testing is nonsense, because Agile is about testing!
Agile Testing is nonsense, because Agile is about testing!
 
Why practices are not as important as principles?
Why practices are not as important as principles?Why practices are not as important as principles?
Why practices are not as important as principles?
 
From a Product Vision to a running software... and back again, and agile coac...
From a Product Vision to a running software... and back again, and agile coac...From a Product Vision to a running software... and back again, and agile coac...
From a Product Vision to a running software... and back again, and agile coac...
 
A journey to_be_a_software_craftsman
A journey to_be_a_software_craftsmanA journey to_be_a_software_craftsman
A journey to_be_a_software_craftsman
 
Behavior Driven Development—A Guide to Agile Practices by Josh Eastman
Behavior Driven Development—A Guide to Agile Practices by Josh EastmanBehavior Driven Development—A Guide to Agile Practices by Josh Eastman
Behavior Driven Development—A Guide to Agile Practices by Josh Eastman
 
Where next?
Where next?Where next?
Where next?
 
Why self-organization might not work, and what has that to do with the compan...
Why self-organization might not work, and what has that to do with the compan...Why self-organization might not work, and what has that to do with the compan...
Why self-organization might not work, and what has that to do with the compan...
 
Keynote stop scaling... start growing an agile organization!
Keynote stop scaling... start growing an agile organization!Keynote stop scaling... start growing an agile organization!
Keynote stop scaling... start growing an agile organization!
 
Great Agile Teams @ SDEC13, Winnipeg
Great Agile Teams @ SDEC13, WinnipegGreat Agile Teams @ SDEC13, Winnipeg
Great Agile Teams @ SDEC13, Winnipeg
 
Is your organisation reaping the possible benefits of scaling agile?
Is your organisation reaping the possible benefits of scaling agile? Is your organisation reaping the possible benefits of scaling agile?
Is your organisation reaping the possible benefits of scaling agile?
 
Out of Sight, Out of Mind: Survival tricks and tools for remote developers
Out of Sight, Out of Mind: Survival tricks and tools for remote developersOut of Sight, Out of Mind: Survival tricks and tools for remote developers
Out of Sight, Out of Mind: Survival tricks and tools for remote developers
 

Plus de Roberto Bettazzoni

Giornat Mondiale della Retrospettiva 2020 - Riassunto Meetup Remoto
Giornat Mondiale della Retrospettiva 2020 - Riassunto Meetup RemotoGiornat Mondiale della Retrospettiva 2020 - Riassunto Meetup Remoto
Giornat Mondiale della Retrospettiva 2020 - Riassunto Meetup RemotoRoberto Bettazzoni
 
Complexity indicators: estimation precision and test types
Complexity indicators: estimation precision and test typesComplexity indicators: estimation precision and test types
Complexity indicators: estimation precision and test typesRoberto Bettazzoni
 
Why you need to change your way of working
Why you need to change your way of workingWhy you need to change your way of working
Why you need to change your way of workingRoberto Bettazzoni
 
Cynefin Lego Game Agenda (versione 2.0 in Italiano)
Cynefin Lego Game Agenda (versione 2.0 in Italiano) Cynefin Lego Game Agenda (versione 2.0 in Italiano)
Cynefin Lego Game Agenda (versione 2.0 in Italiano) Roberto Bettazzoni
 
Pair programming and pair training
Pair programming and pair trainingPair programming and pair training
Pair programming and pair trainingRoberto Bettazzoni
 
Presentazione eXtreme Programming
Presentazione eXtreme ProgrammingPresentazione eXtreme Programming
Presentazione eXtreme ProgrammingRoberto Bettazzoni
 
Introduzione alle metodologie e pratiche Agili ... ma l'agile c'entra qualcos...
Introduzione alle metodologie e pratiche Agili ... ma l'agile c'entra qualcos...Introduzione alle metodologie e pratiche Agili ... ma l'agile c'entra qualcos...
Introduzione alle metodologie e pratiche Agili ... ma l'agile c'entra qualcos...Roberto Bettazzoni
 
Una fugace occhiata al Test Driven Development (2006)
Una fugace occhiata al Test Driven Development  (2006)Una fugace occhiata al Test Driven Development  (2006)
Una fugace occhiata al Test Driven Development (2006)Roberto Bettazzoni
 
Programmazione android per esseri umani
Programmazione android per esseri umaniProgrammazione android per esseri umani
Programmazione android per esseri umaniRoberto Bettazzoni
 

Plus de Roberto Bettazzoni (13)

Giornat Mondiale della Retrospettiva 2020 - Riassunto Meetup Remoto
Giornat Mondiale della Retrospettiva 2020 - Riassunto Meetup RemotoGiornat Mondiale della Retrospettiva 2020 - Riassunto Meetup Remoto
Giornat Mondiale della Retrospettiva 2020 - Riassunto Meetup Remoto
 
Complexity indicators: estimation precision and test types
Complexity indicators: estimation precision and test typesComplexity indicators: estimation precision and test types
Complexity indicators: estimation precision and test types
 
Why you need to change your way of working
Why you need to change your way of workingWhy you need to change your way of working
Why you need to change your way of working
 
Presentation TDD in Python
Presentation TDD in PythonPresentation TDD in Python
Presentation TDD in Python
 
Cynefin Lego Game Agenda (versione 2.0 in Italiano)
Cynefin Lego Game Agenda (versione 2.0 in Italiano) Cynefin Lego Game Agenda (versione 2.0 in Italiano)
Cynefin Lego Game Agenda (versione 2.0 in Italiano)
 
Pair programming and pair training
Pair programming and pair trainingPair programming and pair training
Pair programming and pair training
 
Presentazione eXtreme Programming
Presentazione eXtreme ProgrammingPresentazione eXtreme Programming
Presentazione eXtreme Programming
 
Agile e Open Source
Agile e Open SourceAgile e Open Source
Agile e Open Source
 
Esempio di code kata
Esempio di code kataEsempio di code kata
Esempio di code kata
 
Introduzione alle metodologie e pratiche Agili ... ma l'agile c'entra qualcos...
Introduzione alle metodologie e pratiche Agili ... ma l'agile c'entra qualcos...Introduzione alle metodologie e pratiche Agili ... ma l'agile c'entra qualcos...
Introduzione alle metodologie e pratiche Agili ... ma l'agile c'entra qualcos...
 
Una fugace occhiata al Test Driven Development (2006)
Una fugace occhiata al Test Driven Development  (2006)Una fugace occhiata al Test Driven Development  (2006)
Una fugace occhiata al Test Driven Development (2006)
 
The BDD live show (ITA)
The BDD live show (ITA)The BDD live show (ITA)
The BDD live show (ITA)
 
Programmazione android per esseri umani
Programmazione android per esseri umaniProgrammazione android per esseri umani
Programmazione android per esseri umani
 

Dernier

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
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnAmarnathKambale
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyviewmasabamasaba
 
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
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfonteinmasabamasaba
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benonimasabamasaba
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationJuha-Pekka Tolvanen
 
WSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024VictoriaMetrics
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2
 
%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
 
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
 

Dernier (20)

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
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
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...
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the Situation
 
WSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - Keynote
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaS
 
%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
 
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
 

TDD Dojo - Test Driven Development Coding Dojo

  • 1. agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License Test Driven Development Dojo A safe way to be introduced to a powerful way of programming ! ! Roberto Bettazzoni
  • 2. agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License About me Agile Coach eXtreme Programming Trainer ! >30 years of coding (and still proudly counting) ! roberto.bettazzoni@agile42.com linkedin.com/in/robertobettazzoni @bettazzoni Roberto Bettazzoni
  • 3. agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License T.D.D. Coder Dojo Agenda • TDD in a very small nutshell • TDD Sempai demo • For each Kata (35 min.) ‣ Choose the Kata ‣ execute ‣ break (5 min.) ‣ StandUp 道場 型
  • 4. agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported Licenseagile42 | We advise, train and coach companies building software www.agile42.com | All rights reserved. Copyright © 2007 - 2010. Test Driven Development
  • 5. agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License Test-Driven Development as Formula TDD = ( Test First + Unit Testing + Refactoring ) * Baby Steps
  • 6. agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported Licenseagile42 | We advise, train and coach companies building software www.agile42.com | All rights reserved. Copyright © 2007 - 2010. Test First
  • 7. agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported Licenseagile42 | We advise, train and coach companies building software www.agile42.com | All rights reserved. Copyright © 2007 - 2010. Test First Programming ! “Write a failing automated test before changing any code.” ! Kent Beck, Extreme Programming Explained 2nd Ed. 2004
  • 8. agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported Licenseagile42 | We advise, train and coach companies building software www.agile42.com | All rights reserved. Copyright © 2007 - 2010. Unit Test
  • 9. agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License unit test Method to verify isolated units of code
  • 10. agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License unit test user code Acceptance Criteria test Functional test Unit test
  • 11. agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License unit test Method to verify isolated units of code
  • 12. agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License unit test Method to verify isolated units of code
  • 13. agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License unit test assert condition
  • 14. agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License unit test Method to verify isolated units of code
  • 15. agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License Test Isolation B D C A
  • 16. agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License Test Isolation Run 4 tests: A, B, C, D B D C A
  • 17. agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License Test Isolation B D C A
  • 18. agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License Test Isolation Run 3 tests: A, B, D B D A
  • 19. agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License Test Isolation Run 3 tests: D, A, B B D A
  • 20. agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License unit test library test()
  • 21. agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License unit test library setUp() - test() - tearDown()
  • 22. agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License unit test Method to verify isolated units of code
  • 23. agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License unit test - What is a unit of code? Classes Methods Functions Blocks of code
  • 24. agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License Code Isolation (or Unit Isolation) B D C A
  • 25. agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License Code Isolation (or Unit Isolation) B D C A
  • 26. agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported Licenseagile42 | We advise, train and coach companies building software www.agile42.com | All rights reserved. Copyright © 2007 - 2010. Code Refactoring
  • 27. agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License Refactoring Changing existing code without changing its external behavior
  • 28. agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License Refactoring Make your code better without changing its external behavior
  • 29. agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License Three Principles to Write Good Code 1. Find good names 2. Remove duplications 3. There is no third principle
  • 30. agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License Refactoring. The Sensei Words Any fool can write code that a computer can understand. Good programmers write code that humans can understand Martin Fowler, Refactoring: Improving the Design of Existing Code, 1999 pag. 15
  • 31. agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported Licenseagile42 | We advise, train and coach companies building software www.agile42.com | All rights reserved. Copyright © 2007 - 2010. Baby Steps
  • 32. agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License Baby steps. … proceed iteratively in baby steps — the shortest step that can be appreciated in the right direction Kent Beck, Extreme Programming Explained 2nd Ed. 2004
  • 33. agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported Licenseagile42 | We advise, train and coach companies building software www.agile42.com | All rights reserved. Copyright © 2007 - 2010. The TDD process Unit tests suite pass unit testa unit test Write a unit test Write the code Refactor the code Refactor the tests Unit test pass Unit test fails
  • 34. agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported Licenseagile42 | We advise, train and coach companies building software www.agile42.com | All rights reserved. Copyright © 2007 - 2010. The TDD process from the Functional Tests Add a functional test Run the test & check failure Run all functional tests see all pass ! Refactor the Design
  • 35. agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported Licenseagile42 | We advise, train and coach companies building software www.agile42.com | All rights reserved. Copyright © 2007 - 2010. Welcome to the coding dojo
  • 36. agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License dojo 道場(place of the way)
  • 37. agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License kata 型(form)
  • 38. agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License Dojo Kun (the dojo rules) At the Dojo one can’t discuss a form without code, and one can’t show code without tests. It is a design training place, where it is acknowledged that “the code is the design” and that code without tests simply doesn’t exist. Emily Bache, The Coding Dojo Handbook, 2012 (translated from Christophe Thibaut, Laurent Bossavit’s blog, 2005) You are here to practice, not to build something No output is required, neither logging or tracing activities Every aspect of the kata (design, UI …) is in your hands
  • 39. agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License Sempai Demo Let’s start the Sempai TDD Demo
  • 40. agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported Licenseagile42 | We advise, train and coach companies building software www.agile42.com | All rights reserved. Copyright © 2007 - 2010. Coding Dojo retrospective
  • 41. agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License TDD ALL CODE IS GUILTY UNTIL PROVEN INNOCENT
  • 42. agile42 | We advise, train and coach companies building software | www.agile42.com | Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License Food for thoughts