SlideShare a Scribd company logo
1 of 17
@gil_zilberfeld
Spaceship TDD Style
Gil Zilberfeld
@gil_zilberfeld
Who Am I
Agile helper
Software improver
Author of “Everyday Unit Testing”
www.gilzilberfeld.com
www.everydayunittesting.com
@gil_zilberfeld
@gil_zilberfeld
Test Driven Development
@gil_zilberfeldhttp://www.buildtheenterprise.org/
@gil_zilberfeld
Rules of Engagement
• We’re building parts of a spaceship
• Gotta have a test framework
• Break into pairs
• Introduce yourself - 5 minutes
• Try to stick to technology you feel comfortable in
• Work in rounds
• 15 minute work
• 10 public review
@gil_zilberfeld
The Fantastic Four
• Navigation
• Weapons and Shields
• Engine
• Environment
Not the whole ship!
@gil_zilberfeld
Round 1: Silence of the Names
• Write empty tests
• Write as many test cases as possible using names
• All tests should pass
• No speaking
@gil_zilberfeld
Review - Names
• How do you feel about the names? Did it change over time?
• Did both of you suggest names?
• Are the names clear?
• Did the tests pass?
• How did the name ideation go?
• How did the first test set the stage?
@gil_zilberfeld
Round 2: Test Runner
• 1st person selects, writes and fails a test
• 2nd person makes it pass
• No refactoring
• All tests must pass
@gil_zilberfeld
Review – Test First, Pass Second
• How many tests passed?
• Which tests did you start with?
• Who’s holding up the line? What did you feel about this?
• What is the quality of the code?
• What is the quality of the test?
• Do the names describe the tests correctly?
• How much conversation time?
@gil_zilberfeld
Round 3 - Transformers
• Refactor code and tests
• Save the old version
• No adding and removing tests
• All tests must pass
@gil_zilberfeld
Review - Refactoring
• What did you decide to refactor?
• Who led the process?
• Did everyone agree on the changes?
• What did you refactor more, code or tests?
• Did you run the tests after every change?
• Did you do enough refactoring?
• How long between test runs?
@gil_zilberfeld
Round 4 –Predator Vs Alien
• Break up the pairs
• 3 minute introduction
• The Predators write the tests
• No talking to the aliens
• Add more tests if needed
• Step away when a test fails
• The Aliens write the passing code
• No talking to predators
• Observe already working tests and code
• Step away when a test passes
• All tests must pass
• Get points for passing additional tests
@gil_zilberfeld
Review – Facing the unknown
• Predators:
• What was the quality of tests compared to the ones you wrote before?
• Why did you pick those test cases?
• How did you work together?
• Aliens:
• What did you think about the tests picked by the predators?
• Was the existing code helpful?
• How did you work together?
@gil_zilberfeld
The many faces of TDD
• TDD is not just Red-Green-Refactor
• Can be done in different ways
• It is a learning experience
• More fun in groups / pairs
@gil_zilberfeld
What did you learn?
• New
• Surprising
• Disappointing
@gil_zilberfeld
Thank You!
• Questions?
• Contact me:
• @gil_zilberfeld
• http://www.gilzilberfeld.com
• http://www.everydayunittesting.com

More Related Content

What's hot

Why TDD is Important for Everyone
Why TDD is Important for EveryoneWhy TDD is Important for Everyone
Why TDD is Important for EveryoneGil Zilberfeld
 
TDD for the rest of us
TDD for the rest of usTDD for the rest of us
TDD for the rest of usGil Zilberfeld
 
TDD For The Rest Of Us
TDD For The Rest Of UsTDD For The Rest Of Us
TDD For The Rest Of UsTEST Huddle
 
Introduction to Unit Testing
Introduction to Unit TestingIntroduction to Unit Testing
Introduction to Unit TestingGil Zilberfeld
 
Planning with #NoEstimates
Planning with #NoEstimatesPlanning with #NoEstimates
Planning with #NoEstimatesGil Zilberfeld
 
TestBoss Manchester March 2019 - Automation in Testing: The missing piece
TestBoss Manchester March 2019 - Automation in Testing: The missing pieceTestBoss Manchester March 2019 - Automation in Testing: The missing piece
TestBoss Manchester March 2019 - Automation in Testing: The missing pieceCorecom Consulting
 
Agile Programming Live - AgilePrague2012
Agile Programming Live - AgilePrague2012Agile Programming Live - AgilePrague2012
Agile Programming Live - AgilePrague2012Johannes Brodwall
 
Community and Github: 7/27/2011
Community and Github: 7/27/2011Community and Github: 7/27/2011
Community and Github: 7/27/2011Andy Lester
 
Mikey Ariel - My personal tech-writing agile manifesto
Mikey Ariel - My personal tech-writing agile manifestoMikey Ariel - My personal tech-writing agile manifesto
Mikey Ariel - My personal tech-writing agile manifestoDevelcz
 
WeActuallyBuildStuff - Extreme Programming Live
WeActuallyBuildStuff - Extreme Programming LiveWeActuallyBuildStuff - Extreme Programming Live
WeActuallyBuildStuff - Extreme Programming LiveJohannes Brodwall
 
Technical Machine's Hardware Playbook
Technical Machine's Hardware PlaybookTechnical Machine's Hardware Playbook
Technical Machine's Hardware PlaybookTechnicalMachine
 
SQuAD 2013: Team Collaboration for Testing
SQuAD 2013: Team Collaboration for TestingSQuAD 2013: Team Collaboration for Testing
SQuAD 2013: Team Collaboration for Testinglisacrispin
 
What schools should be teaching IT students
What schools should be teaching IT studentsWhat schools should be teaching IT students
What schools should be teaching IT studentsAndy Lester
 
15 Explosive Things You Should Try As An Agilist by Peter Gfader
15 Explosive Things You Should Try As An Agilist by Peter Gfader15 Explosive Things You Should Try As An Agilist by Peter Gfader
15 Explosive Things You Should Try As An Agilist by Peter GfaderBosnia Agile
 
Full Stack Engineering - April 29th, 2014 @ Full Stack Engineering Meetup NYC
Full Stack Engineering - April 29th, 2014 @ Full Stack Engineering Meetup NYCFull Stack Engineering - April 29th, 2014 @ Full Stack Engineering Meetup NYC
Full Stack Engineering - April 29th, 2014 @ Full Stack Engineering Meetup NYCKarl Stanton
 
2013 09-11 java zone - extreme programming live
2013 09-11 java zone - extreme programming live2013 09-11 java zone - extreme programming live
2013 09-11 java zone - extreme programming liveJohannes Brodwall
 

What's hot (20)

Why TDD is Important for Everyone
Why TDD is Important for EveryoneWhy TDD is Important for Everyone
Why TDD is Important for Everyone
 
TDD for the rest of us
TDD for the rest of usTDD for the rest of us
TDD for the rest of us
 
TDD For The Rest Of Us
TDD For The Rest Of UsTDD For The Rest Of Us
TDD For The Rest Of Us
 
Introduction to TDD
Introduction to TDDIntroduction to TDD
Introduction to TDD
 
Introduction to Unit Testing
Introduction to Unit TestingIntroduction to Unit Testing
Introduction to Unit Testing
 
Introduction to BDD
Introduction to BDDIntroduction to BDD
Introduction to BDD
 
Planning with #NoEstimates
Planning with #NoEstimatesPlanning with #NoEstimates
Planning with #NoEstimates
 
TestBoss Manchester March 2019 - Automation in Testing: The missing piece
TestBoss Manchester March 2019 - Automation in Testing: The missing pieceTestBoss Manchester March 2019 - Automation in Testing: The missing piece
TestBoss Manchester March 2019 - Automation in Testing: The missing piece
 
Agile Programming Live - AgilePrague2012
Agile Programming Live - AgilePrague2012Agile Programming Live - AgilePrague2012
Agile Programming Live - AgilePrague2012
 
Community and Github: 7/27/2011
Community and Github: 7/27/2011Community and Github: 7/27/2011
Community and Github: 7/27/2011
 
Mikey Ariel - My personal tech-writing agile manifesto
Mikey Ariel - My personal tech-writing agile manifestoMikey Ariel - My personal tech-writing agile manifesto
Mikey Ariel - My personal tech-writing agile manifesto
 
WeActuallyBuildStuff - Extreme Programming Live
WeActuallyBuildStuff - Extreme Programming LiveWeActuallyBuildStuff - Extreme Programming Live
WeActuallyBuildStuff - Extreme Programming Live
 
Technical Machine's Hardware Playbook
Technical Machine's Hardware PlaybookTechnical Machine's Hardware Playbook
Technical Machine's Hardware Playbook
 
SQuAD 2013: Team Collaboration for Testing
SQuAD 2013: Team Collaboration for TestingSQuAD 2013: Team Collaboration for Testing
SQuAD 2013: Team Collaboration for Testing
 
What schools should be teaching IT students
What schools should be teaching IT studentsWhat schools should be teaching IT students
What schools should be teaching IT students
 
15 Explosive Things You Should Try As An Agilist by Peter Gfader
15 Explosive Things You Should Try As An Agilist by Peter Gfader15 Explosive Things You Should Try As An Agilist by Peter Gfader
15 Explosive Things You Should Try As An Agilist by Peter Gfader
 
Full Stack Engineering - April 29th, 2014 @ Full Stack Engineering Meetup NYC
Full Stack Engineering - April 29th, 2014 @ Full Stack Engineering Meetup NYCFull Stack Engineering - April 29th, 2014 @ Full Stack Engineering Meetup NYC
Full Stack Engineering - April 29th, 2014 @ Full Stack Engineering Meetup NYC
 
Lean Startup and Tech
Lean Startup and TechLean Startup and Tech
Lean Startup and Tech
 
B leach
B leachB leach
B leach
 
2013 09-11 java zone - extreme programming live
2013 09-11 java zone - extreme programming live2013 09-11 java zone - extreme programming live
2013 09-11 java zone - extreme programming live
 

Viewers also liked

Повышение эффективности вложений в эксплуатацию инф.систем
Повышение эффективности вложений в эксплуатацию инф.системПовышение эффективности вложений в эксплуатацию инф.систем
Повышение эффективности вложений в эксплуатацию инф.системRoman_Peresypkin
 
Rocking SEO for WP - #WCLV2015
Rocking SEO for WP - #WCLV2015Rocking SEO for WP - #WCLV2015
Rocking SEO for WP - #WCLV2015Kenny Eliason
 
Building a Strategic Business Case for your Product
Building a Strategic Business Case for your ProductBuilding a Strategic Business Case for your Product
Building a Strategic Business Case for your ProductJoe Raynus
 
Bitcoin
Bitcoin Bitcoin
Bitcoin SPPL
 
Telum Media Hong Kong and Greater China PR Alert - 30th August 2016
Telum Media Hong Kong and Greater China PR Alert - 30th August 2016Telum Media Hong Kong and Greater China PR Alert - 30th August 2016
Telum Media Hong Kong and Greater China PR Alert - 30th August 2016Christina Lau Tam
 
乳腺癌治疗药物全球研发现状
乳腺癌治疗药物全球研发现状乳腺癌治疗药物全球研发现状
乳腺癌治疗药物全球研发现状shanghq_cn
 
5 Tips for Business English Fluency - Infographic
5 Tips for Business English Fluency - Infographic5 Tips for Business English Fluency - Infographic
5 Tips for Business English Fluency - InfographicHilda E. Colby
 

Viewers also liked (11)

It's not that simple
It's not that simpleIt's not that simple
It's not that simple
 
Apagon analogico
Apagon analogicoApagon analogico
Apagon analogico
 
2 BÁSICO B
2 BÁSICO B2 BÁSICO B
2 BÁSICO B
 
Повышение эффективности вложений в эксплуатацию инф.систем
Повышение эффективности вложений в эксплуатацию инф.системПовышение эффективности вложений в эксплуатацию инф.систем
Повышение эффективности вложений в эксплуатацию инф.систем
 
Rocking SEO for WP - #WCLV2015
Rocking SEO for WP - #WCLV2015Rocking SEO for WP - #WCLV2015
Rocking SEO for WP - #WCLV2015
 
Irena Sendler
Irena SendlerIrena Sendler
Irena Sendler
 
Building a Strategic Business Case for your Product
Building a Strategic Business Case for your ProductBuilding a Strategic Business Case for your Product
Building a Strategic Business Case for your Product
 
Bitcoin
Bitcoin Bitcoin
Bitcoin
 
Telum Media Hong Kong and Greater China PR Alert - 30th August 2016
Telum Media Hong Kong and Greater China PR Alert - 30th August 2016Telum Media Hong Kong and Greater China PR Alert - 30th August 2016
Telum Media Hong Kong and Greater China PR Alert - 30th August 2016
 
乳腺癌治疗药物全球研发现状
乳腺癌治疗药物全球研发现状乳腺癌治疗药物全球研发现状
乳腺癌治疗药物全球研发现状
 
5 Tips for Business English Fluency - Infographic
5 Tips for Business English Fluency - Infographic5 Tips for Business English Fluency - Infographic
5 Tips for Business English Fluency - Infographic
 

Similar to Spaceship TDD Style

Zen and the Art of Test Maintenance
Zen and the Art of Test MaintenanceZen and the Art of Test Maintenance
Zen and the Art of Test MaintenanceGil Zilberfeld
 
Real Life Test Maintenance
Real Life Test MaintenanceReal Life Test Maintenance
Real Life Test MaintenanceGil Zilberfeld
 
Real life unit testing tools and practices
Real life unit testing   tools and practicesReal life unit testing   tools and practices
Real life unit testing tools and practicesGil Zilberfeld
 
Zen And the Art of Test Maintenance Presentation
Zen And the Art of Test Maintenance PresentationZen And the Art of Test Maintenance Presentation
Zen And the Art of Test Maintenance PresentationGil Zilberfeld
 
Building better agile processes
Building better agile processesBuilding better agile processes
Building better agile processesGil Zilberfeld
 
TDD - Christchurch APN May 2012
TDD - Christchurch APN May 2012TDD - Christchurch APN May 2012
TDD - Christchurch APN May 2012Alan Christensen
 
Unit testing the prequel
Unit testing   the prequelUnit testing   the prequel
Unit testing the prequelGil Zilberfeld
 
Aki Salmi - Refactoring legacy code: a true story @ I T.A.K.E. Unconference 2...
Aki Salmi - Refactoring legacy code: a true story @ I T.A.K.E. Unconference 2...Aki Salmi - Refactoring legacy code: a true story @ I T.A.K.E. Unconference 2...
Aki Salmi - Refactoring legacy code: a true story @ I T.A.K.E. Unconference 2...Mozaic Works
 
Creating change from within - Agile Practitioners 2012
Creating change from within - Agile Practitioners 2012Creating change from within - Agile Practitioners 2012
Creating change from within - Agile Practitioners 2012Dror Helper
 
Refactoring Test Collaboration
Refactoring Test CollaborationRefactoring Test Collaboration
Refactoring Test CollaborationClaire Moss
 
Putting the D&D in TDD
Putting the D&D in TDDPutting the D&D in TDD
Putting the D&D in TDDGuy Royse
 
7 Steps for writing your first test
7 Steps for writing your first test7 Steps for writing your first test
7 Steps for writing your first testGil Zilberfeld
 
Zen and the art of Test Maintenance - #TestIL Meetup Tel Aviv
Zen and the art of Test Maintenance - #TestIL Meetup Tel AvivZen and the art of Test Maintenance - #TestIL Meetup Tel Aviv
Zen and the art of Test Maintenance - #TestIL Meetup Tel AvivGil Zilberfeld
 
Software testing and quality assurance
Software testing and quality assuranceSoftware testing and quality assurance
Software testing and quality assuranceBenjamin Baumann
 
Janet Gregory - Agile testing challenges Knowit 2014
Janet Gregory - Agile testing challenges Knowit 2014Janet Gregory - Agile testing challenges Knowit 2014
Janet Gregory - Agile testing challenges Knowit 2014Knowit Oy
 
Test Driven Development on Android (Kotlin Kenya)
Test Driven Development on Android (Kotlin Kenya)Test Driven Development on Android (Kotlin Kenya)
Test Driven Development on Android (Kotlin Kenya)Danny Preussler
 
A Testers Guide to the Myths, Legends and Tales of Unit Testing
A Testers Guide to the Myths, Legends and Tales of Unit TestingA Testers Guide to the Myths, Legends and Tales of Unit Testing
A Testers Guide to the Myths, Legends and Tales of Unit TestingAsh Winter
 
Test Driven Development - a gentle introduction
Test Driven Development - a gentle introductionTest Driven Development - a gentle introduction
Test Driven Development - a gentle introductionSergei Kukharev
 

Similar to Spaceship TDD Style (20)

Zen and the Art of Test Maintenance
Zen and the Art of Test MaintenanceZen and the Art of Test Maintenance
Zen and the Art of Test Maintenance
 
TDD for Testers
TDD for TestersTDD for Testers
TDD for Testers
 
Real Life Test Maintenance
Real Life Test MaintenanceReal Life Test Maintenance
Real Life Test Maintenance
 
Real life unit testing tools and practices
Real life unit testing   tools and practicesReal life unit testing   tools and practices
Real life unit testing tools and practices
 
Zen And the Art of Test Maintenance Presentation
Zen And the Art of Test Maintenance PresentationZen And the Art of Test Maintenance Presentation
Zen And the Art of Test Maintenance Presentation
 
Building better agile processes
Building better agile processesBuilding better agile processes
Building better agile processes
 
TDD - Christchurch APN May 2012
TDD - Christchurch APN May 2012TDD - Christchurch APN May 2012
TDD - Christchurch APN May 2012
 
Unit testing the prequel
Unit testing   the prequelUnit testing   the prequel
Unit testing the prequel
 
Aki Salmi - Refactoring legacy code: a true story @ I T.A.K.E. Unconference 2...
Aki Salmi - Refactoring legacy code: a true story @ I T.A.K.E. Unconference 2...Aki Salmi - Refactoring legacy code: a true story @ I T.A.K.E. Unconference 2...
Aki Salmi - Refactoring legacy code: a true story @ I T.A.K.E. Unconference 2...
 
Agile testing
Agile testingAgile testing
Agile testing
 
Creating change from within - Agile Practitioners 2012
Creating change from within - Agile Practitioners 2012Creating change from within - Agile Practitioners 2012
Creating change from within - Agile Practitioners 2012
 
Refactoring Test Collaboration
Refactoring Test CollaborationRefactoring Test Collaboration
Refactoring Test Collaboration
 
Putting the D&D in TDD
Putting the D&D in TDDPutting the D&D in TDD
Putting the D&D in TDD
 
7 Steps for writing your first test
7 Steps for writing your first test7 Steps for writing your first test
7 Steps for writing your first test
 
Zen and the art of Test Maintenance - #TestIL Meetup Tel Aviv
Zen and the art of Test Maintenance - #TestIL Meetup Tel AvivZen and the art of Test Maintenance - #TestIL Meetup Tel Aviv
Zen and the art of Test Maintenance - #TestIL Meetup Tel Aviv
 
Software testing and quality assurance
Software testing and quality assuranceSoftware testing and quality assurance
Software testing and quality assurance
 
Janet Gregory - Agile testing challenges Knowit 2014
Janet Gregory - Agile testing challenges Knowit 2014Janet Gregory - Agile testing challenges Knowit 2014
Janet Gregory - Agile testing challenges Knowit 2014
 
Test Driven Development on Android (Kotlin Kenya)
Test Driven Development on Android (Kotlin Kenya)Test Driven Development on Android (Kotlin Kenya)
Test Driven Development on Android (Kotlin Kenya)
 
A Testers Guide to the Myths, Legends and Tales of Unit Testing
A Testers Guide to the Myths, Legends and Tales of Unit TestingA Testers Guide to the Myths, Legends and Tales of Unit Testing
A Testers Guide to the Myths, Legends and Tales of Unit Testing
 
Test Driven Development - a gentle introduction
Test Driven Development - a gentle introductionTest Driven Development - a gentle introduction
Test Driven Development - a gentle introduction
 

More from Gil Zilberfeld

Dirty tests and How To Clean Them
Dirty tests and How To Clean ThemDirty tests and How To Clean Them
Dirty tests and How To Clean ThemGil Zilberfeld
 
Unit testing for Grown-ups
Unit testing for Grown-upsUnit testing for Grown-ups
Unit testing for Grown-upsGil Zilberfeld
 
Spock: It's Only Logical
Spock: It's Only LogicalSpock: It's Only Logical
Spock: It's Only LogicalGil Zilberfeld
 
Better Estimation and Planning
Better Estimation and PlanningBetter Estimation and Planning
Better Estimation and PlanningGil Zilberfeld
 
Dependency injection and Why It Matters to Testers
Dependency injection and Why It Matters to TestersDependency injection and Why It Matters to Testers
Dependency injection and Why It Matters to TestersGil Zilberfeld
 
Spring Testing Features
Spring Testing FeaturesSpring Testing Features
Spring Testing FeaturesGil Zilberfeld
 
Better Estimation and Planning
Better Estimation and PlanningBetter Estimation and Planning
Better Estimation and PlanningGil Zilberfeld
 
The Whole Story - Mapping, Slicing and Figuring things out
The Whole Story - Mapping, Slicing and Figuring things outThe Whole Story - Mapping, Slicing and Figuring things out
The Whole Story - Mapping, Slicing and Figuring things outGil Zilberfeld
 
Playing games remotely
Playing games remotelyPlaying games remotely
Playing games remotelyGil Zilberfeld
 
An agile introduction to DevOps
An agile introduction to DevOpsAn agile introduction to DevOps
An agile introduction to DevOpsGil Zilberfeld
 
Interview with the Vampire
Interview with the VampireInterview with the Vampire
Interview with the VampireGil Zilberfeld
 
What is wrong with agile
What is wrong with agileWhat is wrong with agile
What is wrong with agileGil Zilberfeld
 

More from Gil Zilberfeld (18)

Dirty tests and How To Clean Them
Dirty tests and How To Clean ThemDirty tests and How To Clean Them
Dirty tests and How To Clean Them
 
Unit testing for Grown-ups
Unit testing for Grown-upsUnit testing for Grown-ups
Unit testing for Grown-ups
 
Spock: It's Only Logical
Spock: It's Only LogicalSpock: It's Only Logical
Spock: It's Only Logical
 
Better Estimation and Planning
Better Estimation and PlanningBetter Estimation and Planning
Better Estimation and Planning
 
Dependency injection and Why It Matters to Testers
Dependency injection and Why It Matters to TestersDependency injection and Why It Matters to Testers
Dependency injection and Why It Matters to Testers
 
Spring Testing Features
Spring Testing FeaturesSpring Testing Features
Spring Testing Features
 
Better Estimation and Planning
Better Estimation and PlanningBetter Estimation and Planning
Better Estimation and Planning
 
The Untold User Story
The Untold User StoryThe Untold User Story
The Untold User Story
 
The Whole Story - Mapping, Slicing and Figuring things out
The Whole Story - Mapping, Slicing and Figuring things outThe Whole Story - Mapping, Slicing and Figuring things out
The Whole Story - Mapping, Slicing and Figuring things out
 
Fractal test planning
Fractal test planningFractal test planning
Fractal test planning
 
Agile Intro to DevOps
Agile Intro to DevOpsAgile Intro to DevOps
Agile Intro to DevOps
 
Playing games remotely
Playing games remotelyPlaying games remotely
Playing games remotely
 
A Horror Story
A Horror StoryA Horror Story
A Horror Story
 
An agile introduction to DevOps
An agile introduction to DevOpsAn agile introduction to DevOps
An agile introduction to DevOps
 
Work
WorkWork
Work
 
Interview with the Vampire
Interview with the VampireInterview with the Vampire
Interview with the Vampire
 
Simple
SimpleSimple
Simple
 
What is wrong with agile
What is wrong with agileWhat is wrong with agile
What is wrong with agile
 

Recently uploaded

Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontologyjohnbeverley2021
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard37
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxRemote DBA Services
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 

Recently uploaded (20)

Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptx
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 

Spaceship TDD Style

  • 2. @gil_zilberfeld Who Am I Agile helper Software improver Author of “Everyday Unit Testing” www.gilzilberfeld.com www.everydayunittesting.com @gil_zilberfeld
  • 5. @gil_zilberfeld Rules of Engagement • We’re building parts of a spaceship • Gotta have a test framework • Break into pairs • Introduce yourself - 5 minutes • Try to stick to technology you feel comfortable in • Work in rounds • 15 minute work • 10 public review
  • 6. @gil_zilberfeld The Fantastic Four • Navigation • Weapons and Shields • Engine • Environment Not the whole ship!
  • 7. @gil_zilberfeld Round 1: Silence of the Names • Write empty tests • Write as many test cases as possible using names • All tests should pass • No speaking
  • 8. @gil_zilberfeld Review - Names • How do you feel about the names? Did it change over time? • Did both of you suggest names? • Are the names clear? • Did the tests pass? • How did the name ideation go? • How did the first test set the stage?
  • 9. @gil_zilberfeld Round 2: Test Runner • 1st person selects, writes and fails a test • 2nd person makes it pass • No refactoring • All tests must pass
  • 10. @gil_zilberfeld Review – Test First, Pass Second • How many tests passed? • Which tests did you start with? • Who’s holding up the line? What did you feel about this? • What is the quality of the code? • What is the quality of the test? • Do the names describe the tests correctly? • How much conversation time?
  • 11. @gil_zilberfeld Round 3 - Transformers • Refactor code and tests • Save the old version • No adding and removing tests • All tests must pass
  • 12. @gil_zilberfeld Review - Refactoring • What did you decide to refactor? • Who led the process? • Did everyone agree on the changes? • What did you refactor more, code or tests? • Did you run the tests after every change? • Did you do enough refactoring? • How long between test runs?
  • 13. @gil_zilberfeld Round 4 –Predator Vs Alien • Break up the pairs • 3 minute introduction • The Predators write the tests • No talking to the aliens • Add more tests if needed • Step away when a test fails • The Aliens write the passing code • No talking to predators • Observe already working tests and code • Step away when a test passes • All tests must pass • Get points for passing additional tests
  • 14. @gil_zilberfeld Review – Facing the unknown • Predators: • What was the quality of tests compared to the ones you wrote before? • Why did you pick those test cases? • How did you work together? • Aliens: • What did you think about the tests picked by the predators? • Was the existing code helpful? • How did you work together?
  • 15. @gil_zilberfeld The many faces of TDD • TDD is not just Red-Green-Refactor • Can be done in different ways • It is a learning experience • More fun in groups / pairs
  • 16. @gil_zilberfeld What did you learn? • New • Surprising • Disappointing
  • 17. @gil_zilberfeld Thank You! • Questions? • Contact me: • @gil_zilberfeld • http://www.gilzilberfeld.com • http://www.everydayunittesting.com