Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.
Coding Dojo:
Designing Test Cases for
the Gilded Rose Kata
October 2016
Peter Kofler, ‘Code Cop’
@codecopkofler
www.code-c...
Peter Kofler
• Ph.D. (Appl. Math.)
• Professional Software
Developer for 15+ years
• “fanatic about code quality”
• I help...
I help development teams with
PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY
●
Professionalism
●
Quality and
Produc...
Mentoring
PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY
●
Pair Programming
●
Programming
Workshops
●
Deliberate
Pr...
Developing Quality
Software Developers
Coding Dojo?
Expectations?
Coding Dojo Mindset
●
Safe place outside
work
●
We are here to learn
●
Need to slow down
●
Focus on doing it right
●
Colla...
Dojo Structure
●
Introduction 15'
●
Coding 60'
●
Retrospective 15'
●
Break 15'
●
Coding 60'
●
Retrospective 15'
●
etc.
PET...
Clean, Readable
and Expressive
Unit Test Cases?
(Buzzword Alarm ;-)
Readable?
●
Easily read; legible:
e.g. a readable typeface.
●
Enjoyable or interesting to read:
e.g. a readable story.
●
W...
Expressive?
●
Full of expression; meaningful:
e.g. an expressive shrug.
●
Effectively conveying thought:
e.g. an expressiv...
Clean?
●
Free from dirt or marks:
e.g. a clean kitchen floor.
●
Without imperfections or errors:
e.g. a clean edge.
●
What...
TDD Skills
●
Driving Development with Tests
●
Designing Test Cases 
●
Designing Clean Code
●
Refactoring Safely
PETER KOF...
Welcome to team Gilded Rose
PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY
The existing inventory system
●
We have items to sell. Items degrade in
quality the older they get.
●
All items have a Sel...
Requirements
●
At the end of each day our system lowers
both values for every item.
●
Once the sell by date has passed, Qu...
Special Item: Brie
●
Aged Brie actually increases in Quality
the older it gets.
PETER KOFLER, CODE-COP.ORG FANATIC ABOUT C...
Backstage Passes
●
A backstage pass
increases in Quality
as it's SellIn value
approaches (by a
complex formula)
●
but Qual...
Special Item
●
Sulfuras, a legendary item, never has to
be sold or decreases in Quality.
PETER KOFLER, CODE-COP.ORG FANATI...
Assignment
●
Get the code
●
Run tests, should see a failing test
●
Read GildedRoseRequirements.txt
●
Create “perfect” unit...
Create a test suite
that is a readable
document at the
same time!
What Will We Do Now?
●
Derive test cases from requirements.
●
Find all necessary test cases.
●
Create “perfect” tests.
●
N...
Don't Focus on
Getting it Done.
F0cus on Doing
It Perfectly.
→Practice
Closing Circle
●
What did you learn today?
●
What surprised you today?
●
What will you do
differently in the
future?
PETER...
Peter Kofler
@codecopkofler
www.code-cop.org
Kata by
Emily Bache
@emilybache
http://coding-is-like-cooking.info/2013/03/wr...
CC Images
●
Bruce http://www.flickr.com/photos/sherpas428/4350620602/
●
pairing http://www.flickr.com/photos/dav/94735395/...
Prochain SlideShare
Chargement dans…5
×

Designing Test Cases for the Gilded Rose Kata v3 (2016)

0 vue

Publié le

Revised slides of the Coding Dojo "Designing Test Cases for the Gilded Rose" with extra content on Clean, Readable and Expressive Tests.

Publié dans : Technologie
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Designing Test Cases for the Gilded Rose Kata v3 (2016)

  1. 1. Coding Dojo: Designing Test Cases for the Gilded Rose Kata October 2016 Peter Kofler, ‘Code Cop’ @codecopkofler www.code-cop.org Copyright Peter Kofler, licensed under CC-BY.
  2. 2. Peter Kofler • Ph.D. (Appl. Math.) • Professional Software Developer for 15+ years • “fanatic about code quality” • I help development teams PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY
  3. 3. I help development teams with PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY ● Professionalism ● Quality and Productivity ● Continuous Improvement
  4. 4. Mentoring PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY ● Pair Programming ● Programming Workshops ● Deliberate Practice, e.g. Coding Dojos
  5. 5. Developing Quality Software Developers
  6. 6. Coding Dojo? Expectations?
  7. 7. Coding Dojo Mindset ● Safe place outside work ● We are here to learn ● Need to slow down ● Focus on doing it right ● Collaborative Game PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY
  8. 8. Dojo Structure ● Introduction 15' ● Coding 60' ● Retrospective 15' ● Break 15' ● Coding 60' ● Retrospective 15' ● etc. PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY
  9. 9. Clean, Readable and Expressive Unit Test Cases? (Buzzword Alarm ;-)
  10. 10. Readable? ● Easily read; legible: e.g. a readable typeface. ● Enjoyable or interesting to read: e.g. a readable story. ● What if a test suite would be a readable document at the same time? PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY
  11. 11. Expressive? ● Full of expression; meaningful: e.g. an expressive shrug. ● Effectively conveying thought: e.g. an expressive glance. ● What if tests revealed their intend? Would express what should happen? PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY
  12. 12. Clean? ● Free from dirt or marks: e.g. a clean kitchen floor. ● Without imperfections or errors: e.g. a clean edge. ● What if all your tests would be nicely structured and consistent? PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY
  13. 13. TDD Skills ● Driving Development with Tests ● Designing Test Cases  ● Designing Clean Code ● Refactoring Safely PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY
  14. 14. Welcome to team Gilded Rose PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY
  15. 15. The existing inventory system ● We have items to sell. Items degrade in quality the older they get. ● All items have a SellIn value which denotes the number of days we have to sell the item. ● All items have a Quality value which denotes how valuable the item is. PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY
  16. 16. Requirements ● At the end of each day our system lowers both values for every item. ● Once the sell by date has passed, Quality degrades twice as fast. ● The Quality of an item is never negative. ● The Quality is never more than 50. PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY
  17. 17. Special Item: Brie ● Aged Brie actually increases in Quality the older it gets. PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY
  18. 18. Backstage Passes ● A backstage pass increases in Quality as it's SellIn value approaches (by a complex formula) ● but Quality drops to 0 after the concert. PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY
  19. 19. Special Item ● Sulfuras, a legendary item, never has to be sold or decreases in Quality. PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY
  20. 20. Assignment ● Get the code ● Run tests, should see a failing test ● Read GildedRoseRequirements.txt ● Create “perfect” unit tests ● derive test cases from requirements ● cover all cases e.g. boundary conditions ● readable, concise, free of duplication PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY
  21. 21. Create a test suite that is a readable document at the same time!
  22. 22. What Will We Do Now? ● Derive test cases from requirements. ● Find all necessary test cases. ● Create “perfect” tests. ● Name test cases accordingly. ● Test boundary conditions. ● Readable, concise, free of duplication. ● Experiment with styles. PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY
  23. 23. Don't Focus on Getting it Done. F0cus on Doing It Perfectly.
  24. 24. →Practice
  25. 25. Closing Circle ● What did you learn today? ● What surprised you today? ● What will you do differently in the future? PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY
  26. 26. Peter Kofler @codecopkofler www.code-cop.org Kata by Emily Bache @emilybache http://coding-is-like-cooking.info/2013/03/writing-good-tests-for-the-gilded-rose-kata/ PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY
  27. 27. CC Images ● Bruce http://www.flickr.com/photos/sherpas428/4350620602/ ● pairing http://www.flickr.com/photos/dav/94735395/ ● dojo http://www.flickr.com/photos/49715404@N00/3267627038/ ● agenda http://www.flickr.com/photos/24293932@N00/2752221871/ ● inn http://www.flickr.com/photos/danielleblue/170496395/ ● Brie http://www.flickr.com/photos/chez_loulou/2767503201 ● Pass http://www.flickr.com/photos/frf_kmeron/5556518514 ● Sulfuras https://www.flickr.com/photos/sharelabs/11195626116 ● wants you http://www.flickr.com/photos/shutter/105497713/ PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY

×