Thanks to petdance for publicizing the latest C-SPIN talk. I ventured forth through the snowy roads of Illinois to attend and really enjoyed the presentation. Martin of Object Mentor was a seasoned and humorous presenter who had some really interesting ideas about the role tests can play in the project lifecycle.
The main idea I took from the talk was that managers need/want to have a way of seeing inside the project, in order to manage the project before things get bad (late). But often it is difficult to get an idea of how things are progressing because all the components aren't finished, so a demo isn't possible. He jokingly imitated a developer's response to a manager's demo request:
"Would you drive over a bridge that is half done?"
"Would you live in a house that didn't have a roof?"
Martin proposed that acceptance tests can serve as an indicator of how the project is progressing. As more tests work more of the project is shown to be complete; and if the tests exist before the programs are written it is possible to see how much more there is to do. He went so far as to say the tests could even serve as the project specification; so that as more tests succeed more of the project is complete...and the manager now has a metric. He demonstrated a wiki tool which provides a framework that allows specifications and tests to comingle. I don't know much about XP, so it was news to me that this testing framework is an implementation of Ward Cunningham's FIT
Also he distinguished between "unit tests" and "acceptance tests". If I understood him correctly a unit test is a test of a particular component written with knowledge of the unit being tested. Whereas an acceptance test is a test written to display that a particular component does what is expected without knowledge of the component itself. Perhaps I don't quite have that right. Anyhow, it was an interesting talk, and someone from the Chicago Quality Assurance Association announced a talk on March 25th on the subject of Testing Dirty Systems. Need to email email@example.com to register (no cost) if you want to go.