Satisfaction criteria certainly must be agreed between customer and supplier but should that agreement extend to the detail of test scenarios and scripts?

On many of the projects I work with the build is documented as User Stories in a simple Card, Conversation, Confirmation format. When it comes to testing I expect our Development Test Manager to review the Confirmation part of each story as development proceeds and as testing approaches use these to (a) validate that they are comprehensive against the conversation, and (b) create the relevant test scenarios and scripts. This seems to work well and encourages good collaboration between the Test Manager, Developers and Product Owner, and it's very effective in ensuring that the stories are analysed in detail before testing starts. I would also expect the Test Manager on the Customer Review team to do the same work because there is further benefit in his test scripts potentially exposing further ambiguity or clarification in the stories. In doing so part (a) should be done collaboratively and (b) independently.

A key part of this process is its dependence on the content of the Satisfaction Criteria (Confirmation) - each party should agree on the Satisfaction Criteria but should maintain their own views on how they might be tested.

This approach is often challenged with a requirement for the Test Managers to work together to produce one set of scenarios and scripts (part b above). The suggested advantage in this case is that when the test managers agree on what the scripts should be then all ambiguity is removed. Perhaps an advantage could be gained by the collaborative approach if there were some additional means of ensuring the quality and thoroughness of the single script - that advantage being one of saving time and effort in only creating and executing one script. If so then maybe there is a trade off between saving time on the one hand and quality assurance on the other - and maybe depending on any given situation one may be preferred on merit.

Perhaps a hybrid approach is most appropriate; start by creating independent scripts and execute them separately, then once each script is executing with majority of cases passing, move to collaboration with a view to finishing up with the same script by combining them in these later stages.