Testing and Change

Guidewire is an XP-ish shop, and one of the delights of working there is the incredible test infrastructure that they have set up. It has been immensely educational to work with people who take testing so seriously. Now that I have some first-hand experience with this sort of an environment, I have a few tentative observations:

* Test-first development is hard when a GUI layer is involved
* End-to-end tests are not worth the effort until you have a 1.0 product. And perhaps they aren't even worth the effort until you have a 2.0 product, where certain application paths have been established and need to be maintained.
* Unit testing can get really nasty when there are elaborate dependencies between classes
o It is very hard to keep dependencies low. It requires effort at every step. If you aren't constantly watching it, you will introduce them.
* A flexible sample data and configuration generation platform is crucial for a good test environment
* If tests aren't easy to write, they won't get written or they will be written poorly
|