Brian Marick has been thinking about test frameworks in Ruby.
It's nicely done, but the killer idea is in the next-to-last paragraph that says:
This has been my approach to test automation for some time, but it's hard to get across the idea until you've done it and succeeded once or twice.
I'll go even further, and stipulate that there is always a way to slice the application such that a test automator can write fixtures without reference to the underlying source code, and still provide effective, efficient system-level testing.
It's nicely done, but the killer idea is in the next-to-last paragraph that says:
In this particular case, the app communicates with the outside world via XML over the network, FTP files, and a database, so there’s no need to link the fixtures into the code. (emphasis mine) If it worked through a GUI, some remote procedure call interface would have to be added, but I persist in thinking that’s not too much to ask.
This has been my approach to test automation for some time, but it's hard to get across the idea until you've done it and succeeded once or twice.
I'll go even further, and stipulate that there is always a way to slice the application such that a test automator can write fixtures without reference to the underlying source code, and still provide effective, efficient system-level testing.