Testing is a process for examining a unit or body of work against a defined criteria. In the case
of Information Technology, that body of work may be requirements, design, code, test cases
and so forth. The standards are established in many sources: the Systems Development
Methodology, Standards and Procedures, GUI Standards, product branding, industry
standards, and most especially the requirements for the project.
Unlike the tests and examinations administered by schools and universities, in the
development process, the test is not the end; once defects are uncovered by testing, the
opportunity to correct them is available. So, for the purposes of the Business Analyst, the
definition of testing is the examination of a body of work against a known standard with the
intent to discover and repair defects. Acceptance Testing is the final subset of testing.
Acceptance testing has a more focused intent: it is designed to validate that the product
delivered meets the customer’s needs, that is, it is acceptable to the customer.
The world of testing is divided into two realms. Those activities that can be performed without
the use of executable code, called static testing; and those activities that require the use of
some portion of the executable code, called dynamic testing. Reviews and inspections are
classic examples of static testing, while systems and acceptance testing are typically focused
exclusively on dynamic testing.
Throughout much of the literature of testing, the terms Validation and Verification are used.
The usage is not consistent from source to source at a superficial level. Although a deep and
penetrating analysis of the supporting documentation by each of the authoring groups can
resolve some of the points of conflict, it is not a particularly useful exercise.
For the purposes of this Common Body of Knowledge and Skill Category, verification is used
to refer to activities performed prior to the existence of executable code. Validation is used to
refer to those activities which are performed with the executable code.
The “V” Model shown in Figure 7-1 represents the relationship of various life cycle activities
and the verification and validation activities that are conducted. The base of the V is the point
at which executable code is available. This marks the transition from the ability to only
perform static testing to the ability to perform both static and dynamic testing. In many
organizations testing does not begin until there is executable code. This deprives them of the
opportunity to improve the quality of their products at a reduced cost through the early use of
static testing approaches.