際際滷

際際滷Share a Scribd company logo
Test Driven Development hoe en waarom van een test driven aanpak van software development
Roelof Reitsma teamleider Coconut development team (@OGD) interesses: - Agile development (Scrum) - webdevelopment (Ruby on Rails) - geautomatiseerd testen
inhoud waarom automated testing? wat is test driven development? waarom test driven development? praktijkvoorbeeld: chatten met een gebruiker randvoorwaarden  interessante urls & literatuur
waarom automated testing? wat is test driven development? waarom test driven development? praktijkvoorbeeld: chatten met een gebruiker randvoorwaarden  interessante urls & literatuur
waarom automated tests? aantonen dat code het juiste resultaat geeft handmatig testen kost teveel tijd betrouwbare systemen eenvoudiger wijzigingen maken油  voorkomen van regressie tests zijn ons vangnet油 maakt refactoring mogelijk
We value code that is easy to maintain over code that is easy to write Steve Freeman / Nathan Price
dus wat willen we? code die 油 goed onderhoudbaar is makkelijk aan te passen leesbaar is duidelijk in wat het doet zo klein mogelijk is
Doel van test driven development: clean code that works
waarom clean code? veel makkelijker onderhoudbaar je collega's zullen je dankbaar zijn minder code betekent minder onderhoud het is fijn om te schrijven
waarom automated testing? wat is test driven development? waarom test driven development? praktijkvoorbeeld: chatten met een gebruiker randvoorwaarden  interessante urls & literatuur
wat is test driven development? simpel idee:  schrijf eerst je tests, daarna de code test als design instrument voor developers 油 om features te leren begrijpen en analyseren het maakt de manier waarop je software ontwikkelt radicaal anders
TDD Mantra: 油 Red, green, refactor
wat is test driven development? alleen nieuwe code toevoegen als een test faalt daarna refactoring: duplicatie verwijderen slechte naamgeving verbeteren incrementeel, stap voor stap design
waarom automated testing? wat is test driven development? waarom test driven development? praktijkvoorbeeld: chatten met een gebruiker randvoorwaarden  interessante urls & literatuur
waarom test first? omdat test-last niet werkt je hebt geen zin meer je hebt geen tijd meer code blijkt lastig te testen er is iets veel belangrijkers te doen (?)
waarom test driven? complexe features of omgevingen venturing into unknown territory focus - 'scope creep' voorkomen eerst weten wat je wilt bereiken stoppen als je dat bereikt hebt beperken afhankelijkheid en samenhang code油 ritme - continu naar een doel werken
Developers should be having fun! Jeff Sutherland
inhoud waarom automated testing? wat is test driven development? waarom test driven development? praktijkvoorbeeld: chatten met een gebruiker randvoorwaarden  interessante urls & literatuur
Chatten met een gebruiker Product owner: ik wil kunnen chatten met een andere gebruiker
Chatten met een gebruiker Als gebruiker wil ik met een andere gebruiker kunnen chatten, zodat ik snel en eenvoudig kennis en informatie kan delen userstory voor de chatfunctie
Chatten met een gebruiker grafisch ontwerp chatfunctie
Chatten met een gebruiker Acceptatietest chatfunctie mbv Cucumber features ( zie voor meer info: http://cukes.info/ )
Chatten met een gebruiker eerste schets model voor chatfunctie
Chatten met een gebruiker begin bij het model (de backend) en schrijf de eerste test
Chatten met een gebruiker RED: de test faalt met een NameError: de klasse Conversation bestaat nog niet!
Chatten met een gebruiker RED:   er wordt nog steeds geen nieuwe conversatie aangemaakt!
Chatten met een gebruiker GREEN: de test slaagt met minimale effort
油
Chatten met een gebruiker REFACTOR: nog heel weinig om te refactoren, maar we hebben nu een conversatie zonder gebruikers! Nog maar een test:
Chatten met een gebruiker RED: nu heb ik weer een falende test, omdat de start functie nu een argument meekrijgt
Chatten met een gebruiker GREEN: code en test weer in orde. Hoewel....
Chatten met een gebruiker REFACTOR: de duplicate code verwijderen
Chatten met een gebruiker REFACTOR: de naamgeving verbeteren (started_by vind ik beter)
Chatten met een gebruiker REFACTOR: starter veranderd in started_by, tests uitvoeren en gelukkig: groen licht
Hoe verder? stap voor stap, bijvoorbeeld: hoe koppel je de andere gebruiker aan de conversatie?油 werk omhoog door de verschillende lagen  ga door tot je de eerste acceptatietest kunt laten slagen en STOP 油 naar de volgende feature, in dit voorbeeld: berichten sturen belangrijk: blijf refactoren! denk aan 'clean code that works'
waarom automated testing? wat is test driven development? waarom test driven development? praktijkvoorbeeld: chatten met een gebruiker randvoorwaarden  interessante urls & literatuur
wat heb ik nodig om te beginnen? kies een testtool een definitie van DONE snelle feedback (Continuous Integration) kennis van OOP, refactoring, patterns maar je kunt NU al beginnen!  test drive een bugfix test drive een modelfunctie test drive een javascript methode etcetera...
Vandaag is een mooie dag om het anders te gaan doen Roelof Reitsma
waarom automated testing? wat is test driven development? waarom test driven development? praktijkvoorbeeld: chatten met een gebruiker randvoorwaarden  interessante urls & literatuur
Wat handige URL's Testing frameworks: Jasmine (javascript): http://pivotal.github.com/jasmine/ NUnit (.NET): http://www.nunit.org/ Moq (.NET, mocks & stubs): http://code.google.com/p/moq/ PHPUnit (PHP): http://phpunit.sourceforge.net/ Fitnesse (acceptance testing): http://fitnesse.org/ Specflow (acceptance testing, .NET): http://www.specflow.org/ Cuke4PHP (acceptance testing): https://github.com/olbrich/cuke4php Continuous integration: Teamcity: http://www.jetbrains.com/teamcity/ Jenkins CI: http://jenkins-ci.org/ Cruise Control: http://cruisecontrol.sourceforge.net/
Test driven development by example - Kent Beck
xUnit Test Patterns - Gerard Meszaros
Growing object-oriented software - Steve Freeman / Nat Pryce
Working effectively with legacy code - Michael Feathers
Tot slot Download presentatie:油 http://ryreitsma.blogspot.com 油 Vragen?

More Related Content

Viewers also liked (13)

PPTX
仂弍仍亳于仂 于仆亠亠仆仆 仄舒亶仆仂于亳 仗舒于 仆亠仍亠从舒仍仆仂 于仍舒仆仂 于 舒仆亳亶 从舒仗...
Kyiv National Economic University
ODP
Product development and tools
roelofr
PDF
usability testing
Stefan Wobben
PDF
WordCamp US: Clean Code
mtoppa
PDF
Test driven development
Sharafat Ibn Mollah Mosharraf
PDF
Test-Driven Development Fundamentals on Force.com
Salesforce Developers
PDF
iks auf der gearconf 2012: Clean Code - Von der Lehre in den Alltag
IKS Gesellschaft f端r Informations- und Kommunikationssysteme mbH
PPTX
Scrum voor Dummies by kenan ilgor
ilgor
PDF
Clean code
Arturo Herrero
PPTX
仂仆 舒 于亳亟亳 仆亠仍亠从舒仍仆仂亞仂 仗舒于舒 于 从舒仆
Kyiv National Economic University
PDF
Robot Framework Dos And Don'ts
Pekka Kl辰rck
PDF
Robot Framework Introduction
Pekka Kl辰rck
仂弍仍亳于仂 于仆亠亠仆仆 仄舒亶仆仂于亳 仗舒于 仆亠仍亠从舒仍仆仂 于仍舒仆仂 于 舒仆亳亶 从舒仗...
Kyiv National Economic University
Product development and tools
roelofr
usability testing
Stefan Wobben
WordCamp US: Clean Code
mtoppa
Test driven development
Sharafat Ibn Mollah Mosharraf
Test-Driven Development Fundamentals on Force.com
Salesforce Developers
iks auf der gearconf 2012: Clean Code - Von der Lehre in den Alltag
IKS Gesellschaft f端r Informations- und Kommunikationssysteme mbH
Scrum voor Dummies by kenan ilgor
ilgor
Clean code
Arturo Herrero
仂仆 舒 于亳亟亳 仆亠仍亠从舒仍仆仂亞仂 仗舒于舒 于 从舒仆
Kyiv National Economic University
Robot Framework Dos And Don'ts
Pekka Kl辰rck
Robot Framework Introduction
Pekka Kl辰rck

Similar to Test Driven Development (20)

PPT
Sdb Presentatie
menfey
PPTX
Niet onderhoudbare software in 10 makkelijke stappen
Rick Beerendonk
PPTX
Testen binnen dev ops DTC 2014
Kaspar van Dam
PDF
PFZ Workshop - Automatiseren van functionele tests
Richard Tuin
PPTX
DevOps presentatie
Jurgen van de Pol
PPTX
Continuous delivery met jenkins twist en puppet
ltebbens
PDF
際際滷s AI en Chatgpt met voorbeelden.pdf
Ennuonline
PPT
Drupal Ncrv
Bert Boerland
PPT
Devnology Community Day
boonzaai
PPTX
際際滷s ontwerpen met Chatgpt & AI tools
Ennuonline
PPT
Vertaling Seo Concepten Naar Implementatie
efocus.im
PPTX
CMD Interaction Design - Y1 Q1 les 2 - Research to Design
Ferry den Dopper
PPTX
HTML 5 in een vogelvlucht (Dutch)
Maurice De Beijer [MVP]
PPTX
Techdays 2012 - Better code through reviews and tools
Jesse Houwing
PPT
DPC2007 Case Study Surfnet (Herman Van Dompseler)
dpc
PPTX
Interaction Design 1.1: User Centered Design
Ferry den Dopper
PPTX
Reputatiemanagement verbeteren met SEO
Ramon Gulikers
PDF
Getting Real [Dutch]
Niels Bruin
PPT
Presentatie Webteksten en Seo
Rene Greve SEO Internet Marketing
PPTX
A story about drupalistas, brands, marketeers, seo and sea (Drupal SEO & SEA ...
Dries Coucke
Sdb Presentatie
menfey
Niet onderhoudbare software in 10 makkelijke stappen
Rick Beerendonk
Testen binnen dev ops DTC 2014
Kaspar van Dam
PFZ Workshop - Automatiseren van functionele tests
Richard Tuin
DevOps presentatie
Jurgen van de Pol
Continuous delivery met jenkins twist en puppet
ltebbens
際際滷s AI en Chatgpt met voorbeelden.pdf
Ennuonline
Drupal Ncrv
Bert Boerland
Devnology Community Day
boonzaai
際際滷s ontwerpen met Chatgpt & AI tools
Ennuonline
Vertaling Seo Concepten Naar Implementatie
efocus.im
CMD Interaction Design - Y1 Q1 les 2 - Research to Design
Ferry den Dopper
HTML 5 in een vogelvlucht (Dutch)
Maurice De Beijer [MVP]
Techdays 2012 - Better code through reviews and tools
Jesse Houwing
DPC2007 Case Study Surfnet (Herman Van Dompseler)
dpc
Interaction Design 1.1: User Centered Design
Ferry den Dopper
Reputatiemanagement verbeteren met SEO
Ramon Gulikers
Getting Real [Dutch]
Niels Bruin
Presentatie Webteksten en Seo
Rene Greve SEO Internet Marketing
A story about drupalistas, brands, marketeers, seo and sea (Drupal SEO & SEA ...
Dries Coucke
Ad

Test Driven Development

  • 1. Test Driven Development hoe en waarom van een test driven aanpak van software development
  • 2. Roelof Reitsma teamleider Coconut development team (@OGD) interesses: - Agile development (Scrum) - webdevelopment (Ruby on Rails) - geautomatiseerd testen
  • 3. inhoud waarom automated testing? wat is test driven development? waarom test driven development? praktijkvoorbeeld: chatten met een gebruiker randvoorwaarden interessante urls & literatuur
  • 4. waarom automated testing? wat is test driven development? waarom test driven development? praktijkvoorbeeld: chatten met een gebruiker randvoorwaarden interessante urls & literatuur
  • 5. waarom automated tests? aantonen dat code het juiste resultaat geeft handmatig testen kost teveel tijd betrouwbare systemen eenvoudiger wijzigingen maken油 voorkomen van regressie tests zijn ons vangnet油 maakt refactoring mogelijk
  • 6. We value code that is easy to maintain over code that is easy to write Steve Freeman / Nathan Price
  • 7. dus wat willen we? code die 油 goed onderhoudbaar is makkelijk aan te passen leesbaar is duidelijk in wat het doet zo klein mogelijk is
  • 8. Doel van test driven development: clean code that works
  • 9. waarom clean code? veel makkelijker onderhoudbaar je collega's zullen je dankbaar zijn minder code betekent minder onderhoud het is fijn om te schrijven
  • 10. waarom automated testing? wat is test driven development? waarom test driven development? praktijkvoorbeeld: chatten met een gebruiker randvoorwaarden interessante urls & literatuur
  • 11. wat is test driven development? simpel idee: schrijf eerst je tests, daarna de code test als design instrument voor developers 油 om features te leren begrijpen en analyseren het maakt de manier waarop je software ontwikkelt radicaal anders
  • 12. TDD Mantra: 油 Red, green, refactor
  • 13. wat is test driven development? alleen nieuwe code toevoegen als een test faalt daarna refactoring: duplicatie verwijderen slechte naamgeving verbeteren incrementeel, stap voor stap design
  • 14. waarom automated testing? wat is test driven development? waarom test driven development? praktijkvoorbeeld: chatten met een gebruiker randvoorwaarden interessante urls & literatuur
  • 15. waarom test first? omdat test-last niet werkt je hebt geen zin meer je hebt geen tijd meer code blijkt lastig te testen er is iets veel belangrijkers te doen (?)
  • 16. waarom test driven? complexe features of omgevingen venturing into unknown territory focus - 'scope creep' voorkomen eerst weten wat je wilt bereiken stoppen als je dat bereikt hebt beperken afhankelijkheid en samenhang code油 ritme - continu naar een doel werken
  • 17. Developers should be having fun! Jeff Sutherland
  • 18. inhoud waarom automated testing? wat is test driven development? waarom test driven development? praktijkvoorbeeld: chatten met een gebruiker randvoorwaarden interessante urls & literatuur
  • 19. Chatten met een gebruiker Product owner: ik wil kunnen chatten met een andere gebruiker
  • 20. Chatten met een gebruiker Als gebruiker wil ik met een andere gebruiker kunnen chatten, zodat ik snel en eenvoudig kennis en informatie kan delen userstory voor de chatfunctie
  • 21. Chatten met een gebruiker grafisch ontwerp chatfunctie
  • 22. Chatten met een gebruiker Acceptatietest chatfunctie mbv Cucumber features ( zie voor meer info: http://cukes.info/ )
  • 23. Chatten met een gebruiker eerste schets model voor chatfunctie
  • 24. Chatten met een gebruiker begin bij het model (de backend) en schrijf de eerste test
  • 25. Chatten met een gebruiker RED: de test faalt met een NameError: de klasse Conversation bestaat nog niet!
  • 26. Chatten met een gebruiker RED: er wordt nog steeds geen nieuwe conversatie aangemaakt!
  • 27. Chatten met een gebruiker GREEN: de test slaagt met minimale effort
  • 28.
  • 29. Chatten met een gebruiker REFACTOR: nog heel weinig om te refactoren, maar we hebben nu een conversatie zonder gebruikers! Nog maar een test:
  • 30. Chatten met een gebruiker RED: nu heb ik weer een falende test, omdat de start functie nu een argument meekrijgt
  • 31. Chatten met een gebruiker GREEN: code en test weer in orde. Hoewel....
  • 32. Chatten met een gebruiker REFACTOR: de duplicate code verwijderen
  • 33. Chatten met een gebruiker REFACTOR: de naamgeving verbeteren (started_by vind ik beter)
  • 34. Chatten met een gebruiker REFACTOR: starter veranderd in started_by, tests uitvoeren en gelukkig: groen licht
  • 35. Hoe verder? stap voor stap, bijvoorbeeld: hoe koppel je de andere gebruiker aan de conversatie?油 werk omhoog door de verschillende lagen ga door tot je de eerste acceptatietest kunt laten slagen en STOP 油 naar de volgende feature, in dit voorbeeld: berichten sturen belangrijk: blijf refactoren! denk aan 'clean code that works'
  • 36. waarom automated testing? wat is test driven development? waarom test driven development? praktijkvoorbeeld: chatten met een gebruiker randvoorwaarden interessante urls & literatuur
  • 37. wat heb ik nodig om te beginnen? kies een testtool een definitie van DONE snelle feedback (Continuous Integration) kennis van OOP, refactoring, patterns maar je kunt NU al beginnen! test drive een bugfix test drive een modelfunctie test drive een javascript methode etcetera...
  • 38. Vandaag is een mooie dag om het anders te gaan doen Roelof Reitsma
  • 39. waarom automated testing? wat is test driven development? waarom test driven development? praktijkvoorbeeld: chatten met een gebruiker randvoorwaarden interessante urls & literatuur
  • 40. Wat handige URL's Testing frameworks: Jasmine (javascript): http://pivotal.github.com/jasmine/ NUnit (.NET): http://www.nunit.org/ Moq (.NET, mocks & stubs): http://code.google.com/p/moq/ PHPUnit (PHP): http://phpunit.sourceforge.net/ Fitnesse (acceptance testing): http://fitnesse.org/ Specflow (acceptance testing, .NET): http://www.specflow.org/ Cuke4PHP (acceptance testing): https://github.com/olbrich/cuke4php Continuous integration: Teamcity: http://www.jetbrains.com/teamcity/ Jenkins CI: http://jenkins-ci.org/ Cruise Control: http://cruisecontrol.sourceforge.net/
  • 41. Test driven development by example - Kent Beck
  • 42. xUnit Test Patterns - Gerard Meszaros
  • 43. Growing object-oriented software - Steve Freeman / Nat Pryce
  • 44. Working effectively with legacy code - Michael Feathers
  • 45. Tot slot Download presentatie:油 http://ryreitsma.blogspot.com 油 Vragen?

Editor's Notes

  • #13: Red IS ECHT NODIG! Hoe vaak zie tests die nooit falen? Dit garandeert dat je echt iets test.
  • #24: LET OP: dit is in dit geval het design dat ik voor deze belachelijk kleine feature moet doen. In de praktijk is veel meer nodig!
  • #38: Testttool is belangrijk, 1 plek waar alle tests gerund worden en iedereen kan ze op dezelfde manier runnen