Driving Development by Tests TDD Serie Haarlem Software Developer Meetup
-
Upload
marco-beelen -
Category
Software
-
view
36 -
download
0
Transcript of Driving Development by Tests TDD Serie Haarlem Software Developer Meetup
![Page 1: Driving Development by Tests TDD Serie Haarlem Software Developer Meetup](https://reader035.fdocuments.in/reader035/viewer/2022070521/58ef52501a28ab77108b460d/html5/thumbnails/1.jpg)
Test Driven DevelopmentDriving Development by Tests
Haarlem Software Developer Meetup@mcbeelen
![Page 2: Driving Development by Tests TDD Serie Haarlem Software Developer Meetup](https://reader035.fdocuments.in/reader035/viewer/2022070521/58ef52501a28ab77108b460d/html5/thumbnails/2.jpg)
Confidential Page 2
KvK 53479335
Lichtfabriekplein 1, 2031 TE Haarlem
P.O. Box 2031 , 2002 CA Haarlem
+31 (0)88 248 1632, [email protected]
www.ximedes.com
Meetup Sponsor:
![Page 3: Driving Development by Tests TDD Serie Haarlem Software Developer Meetup](https://reader035.fdocuments.in/reader035/viewer/2022070521/58ef52501a28ab77108b460d/html5/thumbnails/3.jpg)
01-10-2015 Confidential Page 3
![Page 4: Driving Development by Tests TDD Serie Haarlem Software Developer Meetup](https://reader035.fdocuments.in/reader035/viewer/2022070521/58ef52501a28ab77108b460d/html5/thumbnails/4.jpg)
01-10-2015 Confidential Page 4
User StoryIn order to ….. achieve some goalAs a .... actorI want to ...... have certain functionality
Scenario: ExampleGiven….. some situationWhen.... perform actionThen...... verify correct behaviour
![Page 5: Driving Development by Tests TDD Serie Haarlem Software Developer Meetup](https://reader035.fdocuments.in/reader035/viewer/2022070521/58ef52501a28ab77108b460d/html5/thumbnails/5.jpg)
01-10-2015 Confidential Page 5
![Page 6: Driving Development by Tests TDD Serie Haarlem Software Developer Meetup](https://reader035.fdocuments.in/reader035/viewer/2022070521/58ef52501a28ab77108b460d/html5/thumbnails/6.jpg)
01-10-2015 Confidential Page 6
Once upon a time …
![Page 7: Driving Development by Tests TDD Serie Haarlem Software Developer Meetup](https://reader035.fdocuments.in/reader035/viewer/2022070521/58ef52501a28ab77108b460d/html5/thumbnails/7.jpg)
01-10-2015 Confidential Page 7
Controller
Validator Service
Collaborator
Converter
Acceptance Test
![Page 8: Driving Development by Tests TDD Serie Haarlem Software Developer Meetup](https://reader035.fdocuments.in/reader035/viewer/2022070521/58ef52501a28ab77108b460d/html5/thumbnails/8.jpg)
01-10-2015 Confidential Page 8
Controller
Validator Service
Collaborator
Converter
Acceptance Test
UnitTest
![Page 9: Driving Development by Tests TDD Serie Haarlem Software Developer Meetup](https://reader035.fdocuments.in/reader035/viewer/2022070521/58ef52501a28ab77108b460d/html5/thumbnails/9.jpg)
01-10-2015 Confidential Page 9
Controller
MockValidator
MockService
ObsoleteCollaborator
MockConverter
UnitTestLondon School of TDD
![Page 10: Driving Development by Tests TDD Serie Haarlem Software Developer Meetup](https://reader035.fdocuments.in/reader035/viewer/2022070521/58ef52501a28ab77108b460d/html5/thumbnails/10.jpg)
01-10-2015 Confidential Page 10
![Page 11: Driving Development by Tests TDD Serie Haarlem Software Developer Meetup](https://reader035.fdocuments.in/reader035/viewer/2022070521/58ef52501a28ab77108b460d/html5/thumbnails/11.jpg)
01-10-2015 Confidential Page 11
Three options to make a test pass:
1 2
Obvious Implementation
![Page 12: Driving Development by Tests TDD Serie Haarlem Software Developer Meetup](https://reader035.fdocuments.in/reader035/viewer/2022070521/58ef52501a28ab77108b460d/html5/thumbnails/12.jpg)
01-10-2015 Confidential Page 12
assertThat(calculate.multiply(2 * 5), is(10));
1 2multiply(x, y) { return x * y;}
multiply(x, y) { return 10;}
multiply(x, y) { return 2 * 5;}
multiply(x, y) { return x * y;}
![Page 13: Driving Development by Tests TDD Serie Haarlem Software Developer Meetup](https://reader035.fdocuments.in/reader035/viewer/2022070521/58ef52501a28ab77108b460d/html5/thumbnails/13.jpg)
01-10-2015 Confidential Page 13
![Page 14: Driving Development by Tests TDD Serie Haarlem Software Developer Meetup](https://reader035.fdocuments.in/reader035/viewer/2022070521/58ef52501a28ab77108b460d/html5/thumbnails/14.jpg)
01-10-2015 Confidential Page 14
Triangulation3
![Page 15: Driving Development by Tests TDD Serie Haarlem Software Developer Meetup](https://reader035.fdocuments.in/reader035/viewer/2022070521/58ef52501a28ab77108b460d/html5/thumbnails/15.jpg)
01-10-2015 Confidential Page 15
assertThat(calculate.multiply(2 * 5), is(10));3
multiply(x, y) { return 10;}
assertThat(calculate.multiply(2 * 7), is(14));
multiply(x, y) { return 2 * y;}
assertThat(calculate.multiply(3 * 7), is(21));
multiply(x, y) { return x * y;}
![Page 16: Driving Development by Tests TDD Serie Haarlem Software Developer Meetup](https://reader035.fdocuments.in/reader035/viewer/2022070521/58ef52501a28ab77108b460d/html5/thumbnails/16.jpg)
01-10-2015 Confidential Page 16
Baby steps TDD
http://www.tddfellow.com/blog/2016/10/19/do-more-with-baby-steps-tdd/
![Page 17: Driving Development by Tests TDD Serie Haarlem Software Developer Meetup](https://reader035.fdocuments.in/reader035/viewer/2022070521/58ef52501a28ab77108b460d/html5/thumbnails/17.jpg)
01-10-2015 Confidential Page 17
The Transformation Priority Premise
“As the tests get more specific, the code gets more generic.”
https://8thlight.com/blog/uncle-bob/2013/05/27/TheTransformationPriorityPremise.html
![Page 18: Driving Development by Tests TDD Serie Haarlem Software Developer Meetup](https://reader035.fdocuments.in/reader035/viewer/2022070521/58ef52501a28ab77108b460d/html5/thumbnails/18.jpg)
01-10-2015 Confidential Page 18
![Page 19: Driving Development by Tests TDD Serie Haarlem Software Developer Meetup](https://reader035.fdocuments.in/reader035/viewer/2022070521/58ef52501a28ab77108b460d/html5/thumbnails/19.jpg)
01-10-2015 Confidential Page 19
1. You are here to LEARN. (and have fun)
2. Try to do your best.
3. Work in pairs.Find a partner in a similar programming language and operating system
![Page 20: Driving Development by Tests TDD Serie Haarlem Software Developer Meetup](https://reader035.fdocuments.in/reader035/viewer/2022070521/58ef52501a28ab77108b460d/html5/thumbnails/20.jpg)
01-10-2015 Confidential Page 20
![Page 21: Driving Development by Tests TDD Serie Haarlem Software Developer Meetup](https://reader035.fdocuments.in/reader035/viewer/2022070521/58ef52501a28ab77108b460d/html5/thumbnails/21.jpg)
01-10-2015 Confidential Page 21
1 2
Primefactors:
Factorize a positive integer number into its prime factors.
Pokerhands:
Determine the winner given two pokerhands.
![Page 22: Driving Development by Tests TDD Serie Haarlem Software Developer Meetup](https://reader035.fdocuments.in/reader035/viewer/2022070521/58ef52501a28ab77108b460d/html5/thumbnails/22.jpg)
See you next time: March16thTest Driven Development
Refactoring Haarlem Software Developer Meetup