Involved Researchers: Shelly Park, Frank Maurer (PI)
Acceptance testing is an important aspect of software development. Acceptance tests (sometimes referred as storytests in agile teams) are high level tests of business operations. They are not meant to test internals or technical elements of the code, but rather are used to ensure that software meets business goals. Executable (i.e. automated) acceptance tests can be used as a measure of project progress.
Executable Acceptance Test driven Development (EATDD) pushes the test-driven development (TDD) paradigm of agile methods up to the customer level. TDD requires that no production code is written unless an automated unit tests fails. EATDD extyends this by requiring that no code is written for a new feature unless an automated acceptance test fails. I.e. at least one customer acceptance test for a feature (also called story tests) needs to be developed before the development team starts tackling that feature.
Executable acceptance test-driven development is a promising approach that helps to clarify customer expectations and express them with concrete examples (acceptance tests) first. This leads to establishing clearer and less ambiguous contexts for development and helps teams to increase customer satisfaction.
In EATDD, acceptance tests basically become a form of executable specifications that help guide the development team in their efforts. Tests need to be written in the language of the domain so that they become understandable for end users and customer representatives. Acceptance tests are concrete examples of the behavior of a feature. They help overcome various issues found in more traditional forms of requirments specifications (see PhD thesis G Melnik).
We are investigating the impact of EATDD on team communication and software quality. In addition, we are comparing different representation formats for acceptance tests for various stakeholder groups in the development endeavor.
We conduct research into requirements for the next generation of Acceptance Testing tools. Our FitClipse project currently investigates test refactoring and extends existing approaches by providing a sense of test history.
IBM Jazz is supporting our research on integrating synchronous distributed project planning with executable acceptance test driven development for agile software teams.
If you are interested in participating in defining a common architecture afor acceptance testing/functional testing tools, please look at the Agile Alliance Functional Testing Tools page.