Two of the fundamentally astute calls in Agile development is to test everywhere, often and to get active participation of the clients throughout a project. What better way to do so by combining the two by having the clients and their analysts create the acceptance tests during a project. This is the proposition of the FIT-Framework for Integrated Tests as delineated by Ward Cunningham and Nick Mugridge in their $45 book , FIT for Developing Software, by Prentice Hall.
We have argued that Extreme Programming and Agile practitioners should not abandon the Planning Process but rather bring their Test First with Good Measures philosophy to all phases of project planning. But at acceptance testing, what could be better than to bring the analysts and clients on board to setup the key tests ? In effect this promotes early and deep ownership in the project by analysts and key clients – one of the key “tests” of overall project success.
The whole idea behind FIT is to make it dead simple for analysts and clients to specify the tests in simple HTML or Excel tables and then to automate the process of reading and doing the tests. Developers are responsible for making their systems able to read and perform what is in effect a batch stream of test command and expected results. FIT itself and its Wiki-based reporting system are Open Source.
But Developers do not have to limit themselves to FIT but may want to create their own test scripts and and test interfaces. Developers then use these as templates for clients to set up other testing as well. The key here is to get clients and other stakeholders committed to testing and project approval early. All parties are trying to avoid the late whistle – so that 2 days before a system is to go live you dont get someone saying – “well it doesnt seem to meet this requirement or test which we meant to check but didnt get around to until the eleventh hour”. FIT is more than an idea; its a good set of advisements on testing and some real coding tools and concepts to get users well started on Integrated Testing.