190
test scripts and test cases, which will be produced later and against which the
delivery of the requirement will ultimately be tested. The responsibility for
definition of the acceptance criteria lies with the business analyst in conjunction
with the organisation, while the responsibility for the development of the test
scripts lies with the testers, often with support from the end user community.
This leads to a clear separation of concerns between the key roles that the
business analyst needs to involve. They are:
the customer – who provides the driver for requirements, and the domain
knowledge and experience;
the developer – who fulfils the requirements, using technical knowledge and
experience;
the tester – who verifies that the system does indeed do what the customer
wants it to do, as defined via the requirements.
Requirements can only form the basis for testing if they are specific, objective and
measurable. The careful definition of the acceptance criteria for a requirement
should ensure that the last two of these are adequately achieved. The key
consideration here is to attach some form of quantification and scale of
measurement to each requirement. Without this, it will not be possible to know
whether the requirement has been met. Testing is only complete when these
specific measurable acceptance criteria have been met. If such a mechanism for
measurement cannot be identified during the development of a requirement, this is
usually an indication that the requirement is not specific enough, or does not
represent a single discrete requirement. If you cannot write acceptance criteria for
what you are about to build, you should not be building it. The requirement and its
related acceptance criteria should therefore be redefined until it becomes possible to
identify such a measurement mechanism. Often the problem is that the acceptance
criteria for requirements are not defined in advance, but only during development
or testing, or, even worse, once the work has been done.
Using acceptance criteria definition
The acceptance criteria for requirements, used subsequently to produce detailed
test plans and test data, should quantify the behaviour, the performance or some
other demonstrable quality of the final end product. In order for implementation
of an individual requirement to be considered acceptable, it is often necessary to
meet more that one measurable criterion; this is why we use the plural, ‘criteria’,
here. Acceptance criteria must be defined for all types of requirements
(particularly functional and non-functional ones), and at the same level of
granularity as the definition of the requirements themselves.
The development of acceptance criteria can clearly be linked to scenarios and
storyboards (Techniques 50 and 51), and, in the case of functional requirements,
use cases and use case descriptions (Technique 62). The use of scenarios
particularly helps in defining the scope of a requirement along with its respective
acceptance criteria. Defining the requirements and their related acceptance tests
together can force earlier conversations with the users to take place, and ensure
that more relevant detail is described than would be the case if one were not
considering the acceptance criteria.
BUSINESS ANALYSIS TECHNIQUES