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)

421 vues

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

×