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

Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 

Recently uploaded (20)

Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 

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