April Meeting: Test Driven Development

Details

Date: Tues 26th April 2011

Time: 7:15pm start to a 9:15pm (doors open at 6:30pm and close when the till’s full)

Location: http://www.pieandale.com

Theme: Test Driven Development

Talk

A short talk from Shaun Finglas about his experiences in developing a version of Pong using test driven development, object oriented design principles, CRC and dependency injection. He’ll show us the production and test code, and explain design decisions he’s made. Hopefully this will illustrate how Agile software development techniques can improve games development by reducing close coupling, driving a better API and promoting the correct level of abstraction.

Exercise

We’ll try and get 90 minutes for the programming part of the meeting so that we can try a kata with a few more issues to solve. Having discussed the best kata to use for this session with a few people we’ve selected “Back to the Checkout” from Dave Thomas:  

http://codekata.pragprog.com/2007/01/kata_nine_back_.html

This involves producing a supermarket checkout application that takes a number of price reduction offers. The exercise starts with a simple “scan” method that is called again and again when the checkout operative passes a product over the bar code scanner. The way the bill is produced is open ended, but the system needs take into account offers like “buy one get on free”, “buy two get on free” etc which are represented in the post as lists of SKUs (stock keeping units).

We’ve chosen this kata because the final solution has some interesting problems to solve regarding the coupling of the classes produced. As we’re still introducing TDD to some people I believe this will illustrate that test driving code can produce a better API with better separation of behaviour in addition to providing the benefits of security, communication and confidence to change that we have already seen.

Leave a Reply

Your email address will not be published. Required fields are marked *