Thursday 9 a.m.–12:20 p.m.

TDD for web applications, from scratch

Harry Percival

Audience level:
Best Practices & Patterns


Learn Test-Driven-Development and Django by building a simple web application from scratch. We'll cover unit testing, Django models, views and templates, as well as using Selenium to open up a real web browser for functional tests. This talk is intended for audiences new to TDD, new to Django, and even new to Python! You'll need Python 3, Git, Firefox, Selenium and Django installed on your PC.


The aim is to cover the basics of setting up a simple Django site, but using full, rigorous TDD at every step along the way. In past conferences I've covered the same steps as the official Django tutorial. This tutorial is new and updated, but covers similar topics, using the same structure that I'm using for [my book](, which is available for free for anyone looking to follow up on what the learn. We'll learn how to set up functional tests with Selenium, how to set up Django, how to run Django unit tests, how TDD actually works in practice, the unit test / code cycle where we re-run the tests after each tiny, incremental change to the code, as well as all the basics of Django. We'll talk about what to test, what not to test, what the point of all this testing is anyway, and I promise to make it all at least moderately entertaining. Plus it's all in Python 3! # Pre-requisites! It is absolutely vital that you come with the required software pre-installed on your PC. It's not fair on everyone else to be sitting there while we wait for you to download stuff from PyPI over the conference network. So, make sure you have the following installed on your PC: * Python 3.3 * Git * Firefox * Selenium * Django Have a look at the [preface section in my book]( for detailed installation instructions, and just [email me]( if you need help.

Student Handout

No handouts have been provided yet for this tutorial