Back to proposals-2013
Title: Test driven development on the Raspberry Pi
Proposer: willem_van_den_ende
Proposer: marc_evers
Proposer: rob_westgeest
Type: Tutorial
Duration: 90 minutes
Description:
This will be bits of presentation mixed with a prepared kata to show how we do it.
Doing test-driven development for embedded devices is possible. It has
its' own set of constraints, such as:
- limited availablity of hardware due to time or cost constraints
- some hardware will not run your favourite programming language
- hardware is slow and/or has a limited amount of memory available
- real-time constraints on several parts of the software
- you often have to combine multiple devices, each with their own hardware and software interfaces
Luckily Moore's law also applies to embedded development so we can
increasingly use higher level languages, which make practices like test
driven development and continuous integration feasible for embedded
development as well. And with some creativity we can write end-to-end
tests for the parts of our solution that defy unit testing.
In this presentation we will show how we developed a soft-drinks vending
machine prototype using raspberry pi's, arduino, lego and various bits
and pieces. See how we used test driven development and hexagonal
architecture to keep our code clean and our minds sane.
topics: test driven development, hexagonal architecture, continuous
integration, growing object oriented software guided by tests
audience: developers, lead engineers
Description of the hands-on session to go with it:
Embedded TDD on the Rasbperry Pi hands-on
On the one hand, 'embedded' becomes more and more software. On the other, software gets embedded in more and more things. With devices like the Raspberry Pi and Gumstix rolling your own becomes feasible. At least we can experiment with getting fast feedback cheaply.
Test Driven Development (TDD) can drive your design and give fast feedback on the quality of your work. Doing this on an embedded device gives some additional challenges - it's often not so easy to talk to the device & get your software on it, while the choice of programming language is often limited (C anyone?).
Join this session to have some fun with TDD on a Raspberry Pi with a two line display and some buttons. Add a feature to our vending machine by writing some end-to-end tests and unit tests first.
If you're lucky, you can run your tests on the Raspberry Pi from our buildserver, but since like in the 'real world' 'the device' is not that often available… you'd better be lucky, or develop with discipline ;)
Jon: Note - there will be two speakers: Willem van den Ende with Marc Evers or Rob Westgeest