16
Coding Dojo Golden Master Technique Approval Tests -Gilded Rose Kata- @AlinPandichi

Coding Dojo - Golden Master Technique - Approval Tests - Gilded Rose Kata-

Embed Size (px)

Citation preview

Page 1: Coding Dojo - Golden Master Technique - Approval Tests - Gilded Rose Kata-

Coding Dojo

Golden Master TechniqueApproval Tests

­Gilded Rose Kata­

@AlinPandichi

Page 2: Coding Dojo - Golden Master Technique - Approval Tests - Gilded Rose Kata-

Coding DojoExpectations?

Page 3: Coding Dojo - Golden Master Technique - Approval Tests - Gilded Rose Kata-

Coding Dojo Mindset●  We are here to learn●  Safe place outside of work●  Need to slow down●  Focus on doing it right●  Non­competitive, collaborative, fun environment

Page 4: Coding Dojo - Golden Master Technique - Approval Tests - Gilded Rose Kata-

Practice session

●  One laptop with a functional dev. env. is connected to a projector

●  Two developers pair program on the laptop. The others are watching the code changes.

●  Every 7 minutes, one developer leaves the laptop and the next one from the room takes his place. 

Page 5: Coding Dojo - Golden Master Technique - Approval Tests - Gilded Rose Kata-

Golden master technique

1. Find the way the system delivers its outputs

2. Find a way to capture the output of the system without changing the production code

3. Generate enough random inputs and persist the tuple input/output

Page 6: Coding Dojo - Golden Master Technique - Approval Tests - Gilded Rose Kata-

Golden master technique

4. Write a system test to check the SUT against the previously persisted data

5. Commit the test6. Check test behaviour and coverage

Outcome: we will have a basic safety net composed of system tests.

Page 7: Coding Dojo - Golden Master Technique - Approval Tests - Gilded Rose Kata-

Approval Tests

ApprovalTests is an open source assertion/verification library to aid unit testing

http://approvaltests.sourceforge.net

Page 8: Coding Dojo - Golden Master Technique - Approval Tests - Gilded Rose Kata-

Gilded Rose Kata

●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

●At the end of each day our system lowers both values for every item

Page 9: Coding Dojo - Golden Master Technique - Approval Tests - Gilded Rose Kata-

Gilded Rose Kata

●Once the sell by date has passed, Quality degrades twice as fast

●The Quality of an item is never negative

● "Aged Brie" actually increases in Quality the older it gets

Page 10: Coding Dojo - Golden Master Technique - Approval Tests - Gilded Rose Kata-

Gilded Rose Kata

●The Quality of an item is never more than 50

● "Sulfuras", being a legendary item, never has to be sold or decreases in Quality

Page 11: Coding Dojo - Golden Master Technique - Approval Tests - Gilded Rose Kata-

Gilded Rose Kata

● "Backstage passes", like aged brie, increases in Quality as it's SellIn value approaches; Quality increases by 2 when there are 10 days or less and by 3 when there are 5 days or less but Quality drops to 0 after the concert

Page 12: Coding Dojo - Golden Master Technique - Approval Tests - Gilded Rose Kata-

Gilded Rose Kata

New requirement:

●“Conjured” items degrade in Quality twice as fast as normal items

Page 13: Coding Dojo - Golden Master Technique - Approval Tests - Gilded Rose Kata-

Practice time!

Page 14: Coding Dojo - Golden Master Technique - Approval Tests - Gilded Rose Kata-

Retrospective

●  What did you learn today?

●  What happened as expected?

●  What surprised you?

●  What do you plan to use at work?

Page 15: Coding Dojo - Golden Master Technique - Approval Tests - Gilded Rose Kata-

Resources

● https://github.com/apandichi/GildedRose­Refactoring­Kata

● http://blog.adrianbolboaca.ro/2014/05/golden­master/

● http://approvaltests.com/

● http://approvaltests.sourceforge.net

Page 16: Coding Dojo - Golden Master Technique - Approval Tests - Gilded Rose Kata-

Thank you!