With a provocation this big, I hope I’ve caught your attention. So, let’s draw some lines: the objective is, of course, not to let others do you work. It is to share work once between the client, the business analyst and the person that will run the acceptance test.
From my point of view, all these persons do the same work:
- the client wants features. As such, he will test those features when the product will be delivered
- the business analyst will describe those features in details. He has to know the intricacies of each use case
- the person that is in charge of acceptance test will likely run them more than once, probably with each delivery
As such, it is a mistake for these scenarios to be written thrice. At first, the client should describe the acceptance test that he will run: it is on these scenarios that the product will be accepted or not. The business analyst will refine these, when he describes the business. And then the acceptance test will be run.
Why not let the one of the actors do the work? In fact, in a webapp, such thing is possible with Selenium. Selenium is a suite of tools to automate your web acceptance tests. Let’s just say that one of them, Selenium IDE, is a neat little plugin that finds its way into Firefox (one more reason to use it) and acts as a recorder for interactions and page flow. The record can be exported in many formats (JUnit and TestNG for Java, but other languages are supported), modified, then put in a continuous build.
Let’s imagine that one of our trio records the use-cases. He can then share them with the other two, so that all three have the same scenarios to run.
On one of my latest project, I convinced the project manager to use Selenium IDE. He seems quite happy with it so I hope I will be able to go further the route I described earlier. I would be very interested in your own experience in this field.