Agile Testing Articles and Tutorials

This is a central repository of links to the various articles and tutorials that I posted so far on my Agile Testing blog, as well as links to some of my talks and presentations. Enjoy!

Grig Gheorghiu (grig at gheorghiu dot net)

Talks and presentations

"How to get to DONE: Agile and Automated Testing Techniques and Tools" talk at Agile/XP SoCal meeting May 2009 (PDF slides)
"Practical Applications of (Agile) Web Testing Tools" tutorial at PyCon 2008 (PDF slides)
"Python Testing Tools" tutorial at PyCon 2007 (PDF slides)
"Agile Development and Testing in Python" tutorial at PyCon 2006
"Agile Documentation -- using tests as documentation" talk at PyCon 2006
"Agile Testing with Python Test Frameworks" talk at PyCon 2005

Cloud Computing (Amazon EC2 and S3)

Experiences deploying a large-scale infrastructure in Amazon EC2
Dark launching and other lessons from Facebook on massive deployments
You're not a cloud provider if you don't provide an API
Resource monitoring and graphing with Cacti in EC
HAProxy and Apache performance tuning tips
HAProxy, X-Forwarded-For, GeoIP, KeepAlive
Load balancing in Amazon EC2 with HAProxy
Working with Amazon EC2 regions
Deploying EC2 instances from the command line
Update on EC2 and EBS
Experiences with Amazon EC2 and EBS
Some issues when restoring files using duplicity
Incremental backups to Amazon S3 with duplicity
Back up your Windows desktop to S3 with SecoBackup

System Administration and Security

The sad state of open source monitoring tools
Automating system administration tasks with pexpect
Mounting local file systems using the 'bind' mount type
Telecommuting via ssh tunneling
Managing DNS zone files with dnspython
Configuring OpenLDAP as a replacement for NIS
Chroot-ed FTP with wu-ftpd
System monitoring via SNMP
Compiling and installing a custom Linux kernel
Xen installation and configuration

Apache and Tomcat

Watch that Apache KeepAlive setting!
A couple of Apache performance tips
Migrating SSL certs from IIS to Apache
Configuring Apache 2 and Tomcat 5.5 with mod_jk
Apache virtual hosting with Tomcat and mod_jk
File sharing with Apache and WebDAV
Compiling mod_python on RHEL 64-bit

Databases

MySQL fault-tolerance and disaster recovery techniques
MySQL load balancing and read-write splitting with MySQL Proxy
Resetting MySQL account passwords
Installing and using cx_Oracle on Unix
Installing Python 2.4.1 and cx_Oracle on AIX
Installing the Firebird database on a 64-bit RHEL Linux server
Martin Fowler on in-memory databases and testing

Data visualization

sparkplot: creating sparklines with matplotlib

Python Testing Tools Taxonomy

Python Testing Tools Taxonomy

Unit testing

Unit testing in Python part 1: unittest
Unit testing in Python part 2: doctest
Unit testing in Python part 3: py.test
Michael Feathers on unit testing rules
Are unit tests free when TDD-ing?

Acceptance testing

PyFIT/FitNesse Tutorial Part 1
PyFIT/FitNesse Tutorial Part 2
PyFIT/FitNesse Tutorial Part 3
Running FitNesse tests from the command line
Should acceptance tests talk to the database?
Should acceptance tests be included in the continuous build process?
On the importance of functional testing

Web application testing

Web app testing with Jython and HttpUnit
Web app testing with Python part 1: MaxQ
Web app testing with Python part 3: twill
In-process Web app testing with twill, wsgi_intercept anddoctest
Acceptance tests for Web apps: GUI vs. business logic

Selenium-specific articles

30-second Selenium installation tutorial
Web application testing with Python part 2: Selenium andTwisted
Quick update on Selenium in TestRunner mode
Quick update on Selenium in Twisted Server mode
Using Selenium to test a Plone site (part 1)
Using Selenium to test a Plone site (part 2)
New features in Selenium 0.3
Article on Selenium in Oct. 2005 issue of "Better Software"
Selenium at OpenQA
Running Selenium in Python Driven Mode
Testing 'Commentary' (and thus Ajax) with Selenium
Useful tools for writing Selenium tests
Remote Web app testing with Selenium IDE
Ajax testing with Selenium using waitForCondition
Running the Selenium Twisted server on Linux
30-second Selenium installation tutorial
Selenium test creation and maintenance with make_selenium.py

Performance/load/stress testing

pyUnitPerf Tutorial
HTTP performance testing with httperf, autobench and openload
Performance vs. load vs. stress testing
More on performance vs. load testing

Continuous integration

Continuous integration with buildbot
Running buildbot on various platforms

Automated test distribution, execution and reporting

STAF/STAX Tutorial

General testing topics

The Second Law of Automated Testing
Beware of timings in your tests
Quick black-box testing example
White-box vs. black-box testing

Agile Documentation

Agile Documentation with doctest and epydoc
Agile documentation in the Django project

Python on Windows

Handling the 'Path' Windows registry value correctly
Running a Python script as a Windows service

The Cheesecake project

Cheesecake: How tasty is your code?
Cheesecake project on SourceForge
A whiff of Cheesecake
More Cheesecake bits
New home for Cheesecake and Sparkplot projects
Cheesecake 0.6 released

The Pybots project

Pybots -- Python Community Buildbots
Setting up Pybots buildslave

The py library

Keyword-based logging with the py library
py lib gems: greenlets and py.xml
'py library overview' slides

Usability

Jakob Nielsen on Usability Testing
Jakob Nielsen on Blog Usability

Book reviews

Book Review of "The Art of Security Testing" for Dr. Dobb's Journal

Other articles

They still teach Waterfall in schools
Mind mapping
Ambition and the 25% rule
Oblique Strategies and testing
Python as an agile language