I attended the tutorials the first day of Pycon. The first one I attended was Python 102. I guess I figured it would be more like 302, so there wasn't much new. Since I'm still basically programming in the 1.6-2.2 era I thought it would be good to have a review of Generators (which lasted about 30 seconds), but oh well. I had time to read the documentation and brush up that way.

The second session was Grig and Titus' "Agile Testing". They wrote and tested (extensively) a web application and were able to achieve 90% code coverage (which is pretty outstanding) and automate the whole process.

An interesting diagram they showed was by Jason Huggins (creator of Selenium), which was called the "Testing pyramid". Just like how programmers eat according to the suggested food pyramid, they should test according to the test pyramid (sadly it seems that in the real world neither happens ;)). They said that they didn't do tdd, but rather ted (test enabled development, ie developing tests alongside or soon after). To automate some of the logic they also used FitNesse, which allows one to create business logic tests easily via a wiki interface. They also used TextTest to do some black box testing.

Using Titus' creation Twill (and WSGI Intercept) they were able to profile and provide coverage reports for common user interactions. This was useful because Twill can automare real user interactions which are more important to profile and cover than random unit tests which may test interactions seldom encountered in real life. (To automate generation of Twill tests, here's some code I wrote).

Finally for testing the actual gui, they used Selenium. All their tests were automated and run using BuildBot following a checkin (or every six hours).

They main walkaway points are that automation of tests is necessary for them to get run (otherwise they will bit rot). Holistic testing will allow one to have more confidence in their tests, and that running tests under a different environment will expose bugs that may get overlooked.