There has been a lot of activity in the Functional Test Driven Development world of late. Jennitta Andrea and Ward Cunningham recently hosted a WebCast on "Envisioning the Next Generation of Functional Test Tools". Also Thoughtworks announced their intention to launch a product into this space. This growing momentum for innovation in Functional Testing has been gathering pace since the the Functional Testing Tools Visioning Workshop held in Portland last year.
In the webcast Jenitta extended some of the ideas originally discussed at the Functional Testing Tools Visioning Workshop, mainly:
- Applying the Red, Green, Refactor approach to Functional Testing.
- Extending TDD to include Functional TDD.
- Extending the Product Specification to take advantage of Behaviour Driven Development & Domain Specific Languages to enable a common shared language. between the Core technologies and disciplines.
- Innovation of an an IDE designed for the functional test area - something the software development community has had in spades.
- Explicity extending the life of the Functional Test from Functional Test Driven Development to Operation Support.
- Enable different Contexts/Views on Functional Tests, dependent upon the audience. So, for example, an Analyst would have a different view of the test than a Developer.
- Advocating the replacement of the term "Test" with the term "Example".
Elisabeth Hendrickson blogged about the progress Ward Cunningham has made in this area, with his product Process Explorer:
Also Brian Marick has been working on test driving GUI's with Wireframes - a new way of integrating wireframe models with FIT tests.Process Explorer allows you to explore the automated functional tests through a variety of representations. You can see the tests in a traditional way, as a series of commands like “check(’data here’).” You can see the executed tests with results embedded. You can also see a table with the number of times any given action is executed in current batch of use cases. You can explore each action and see which use cases exercise it. And even more groovy, you can see a swim-lane representation of all the actions in a use case organized by actor.
In the swim lane view, as you mouse over each step in the use case, a little bubble pops up showing you the result of the step. That isn’t a static picture that has to be maintained. It’s live HTML generated on the fly by the chunk of code responsible for returning a partial page from the server after an AJAX request.
Given the fast moving pace of this field of testing, what are readers experiences with Functional testing tools? Where do they start to add value in your delivery lifecycle, if at all?
As always, we'll keep you informed of the latest developments in this area, meanwhile you can use the Customers and Requirements tag to see more on this topic.