Operational Acceptance Test - White Paper, 2015 Capgemini
Operational Acceptance Test - White Paper, 2015 Capgemini
Introduction
Before any new asset is engaged for productive use
Acceptance is one of the final steps in the software
development life cycle.
For decades has Operational Acceptance been ill-defined,
misunderstood, and/or just plain ignored. Where User
Acceptance has been written about and hailed as a final
phase in testing before production. User Acceptance is but
one side of the coin, Operational Acceptance is the other.
Whether a project team uses an agile, iterative or sequential
development methodology, there are three key questions that
need to be addressed:
Arguably it was not until the year 2000, and the infamous
Millennium Bug, that a need to have wholly separated and
designated test teams was realized. Since the turn of the
century, more organizations have begun to realize the benefits
of engaging independent consultants and teams that
specialize in testing; thus ensuring the highest level of quality
is attained for their asset developments.
Background
Operational Testing:
Testing conducted to evaluate a component or
system in its operational environment.
Operational Acceptance
Types
Portability
Reliability
Security
Procedure
Performance
Maintainability
Localization
Interoperability
Installability
Disaster Recovery
Conversion
Functional Stability
Portability
Reliability
These testing characteristics, along with their respective
sub-types, are each further explored below for definition, test
method and test objective.
Functional Stability
Functional testing, in itself, is normally an aspect of User
Acceptance Testing (UAT), but it is also a necessary aspect in
the performance of non-functional operational acceptance.
From the perspective of a non-functional test execution:
It is not the primary role of functional testing to detect all of the
defects within a given asset. It is not the responsibility of
functional testing to ensure that any outstanding defects are
resolved; nor does functional testing determine when the
asset will be ready for deployment or production use.
The purpose of functional testing is to determine whether the
functional requirements of the asset have been met. And in
respect to Operational Acceptance, functional testing is
performed on behalf of a legitimate user of the asset, who is
endeavouring to use the asset in a means that it is intended to
be used and for its intended purpose. [REF-6] Ideally, functional
testing is performed from the perspective of the end-user,
the customer.
Usability
Stability
Functional Stability
Compatibility
Accessibility
Non Functional
Quality
Characteristics
Backup / Recovery
Sub Types
Accessibility Testing
Conversion Testing
Stability Testing
Usability Testing
Accessibility Testing
Accessibility testing is defined by the International
Organization for Standardization (ISO), as a type of usability
testing used to measure the degree to which [an asset] can be
operated by users with the widest possible range of
characteristics and capabilities. [REF-4]
In more simple terms, it is better defined as a type of nonfunctional testing that specifically evaluates the assets
capability to interact and convey information to people who
may be disabled or impaired from using the asset in a
traditional method. Internationally, the World Wide Web
Consortiums (W3C) Web Content Accessibility Guidelines
(WCAG) has been generally accepted as the pseudo-standard
for accessibility testing. [REF-7]
Test Method
Accessibility measures the level of access an asset has
available for use by users with varying levels of ability and/or
disability. Some people are unable to make use of their hands
whereas others may have difficulty distinguishing between
colours; there are deaf people as there are blind people.
Accessibility removes the barriers that would otherwise make
it difficult, or impossible, for these users to make use of the
asset. [REF-8]
Test Objective
The objective of this test type is to evaluate the degree to
which an asset can be operated by users with the greatest
range of diversity and ability [REF-5], including accessibility
requirements in example of age, or visual or
hearing impairment.
Scope Considerations
Validation of asset design
Validation of asset data schema
Validation of asset construction
Interdependencies
Dynamic validation of accessibility compliance is dependent
on functional user interfaces.
Schedule Considerations
With accessibility being a non-functional test activity, it is
commonly bundled as a subcomponent of OAT and, in many
asset development projects, left until the final moments of the
development life cycle.
Leaving accessibility testing until near the end of the project
life cycle generally creates more work for the development
teams by not discovering accessibility issues earlier in the
project life cycle.
Various aspects of OAT, including accessibility, should be
addressed early in the product development life cycle often
following design and preceding code development thus
improving overall asset quality.
Though Accessibility Testing is non-functional in nature, and
generally follows asset development, its dynamic test activities
are often performed via functional testing performed as part of
User Acceptance Testing (UAT) and/or System Testing (ST).
Therefore, it is not uncommon practice for projects to
reallocate this test activity to a functional test team.
Conversion Testing
Conversion testing is about ascertaining whether continued
capability can be maintained following data format change
and/or software amendments are applied to the asset; for
example implementation of new database schemas or
migration to new software platforms.
Test Method
Irrespective of the subtype of conversion testing to be
engaged, each uses a method that specifies the requirements
of the conversion process, its tolerances of variance and in
particular that which is to remain invariant through the
conversion process, those that are new, modified, or
obsoleted by the conversion [REF-8] as well as any other
organizational standards and/or architectural design that the
asset must adhere to.
Test Objective
The objective of conversion testing is to discover nonconformities, data losses and degradations of service in/within
the asset; and to improve the overall quality of the conversion
processes. [REF-9]
Stability Testing
Stability testing is often confused with load testing, though it is
actually a type of testing that evaluates how durable and
stable the asset is to continue to function and perform
throughout the life cycle of the asset.
Test Method
A common test method is where the stability requirements of
the asset are specified in terms of the capability of the asset to
avoid unexpected and/or unwanted effects after amendment.
Test Objective
The objective of stability testing is to ascertain the degree in
which an asset continues to function over its intended, and
forecasted, life cycle. [REF-8]
Usability Testing
Usability testing refers to the evaluation of an asset by testing
it with representative users. Typically test participants will
endeavour to perform typical business behaviour and/or user
functions using the asset as it would be used during normal
production use. The objective is to identify usability issues,
identify non-conformances (defects) and to determine if the
asset meets pre-defined business requirements. [REF-10]
Test Method
A usability testing method should outline the learnability of
the asset, and specifies the use requirements, inclusive of any
design standards to which the asset must comply. The
testing may be achieved test labs, desktop sharing programs
or other technologies used to monitor how people use
the interfaces.
Note: ISO/IEC 9241 defines standards for defining the
requirements for human-systems interaction.
Test Objective
Test Method
Schedule Considerations
Though non-functional in nature, and following asset
development, in respect to the validation of dynamic test
activities of Usability it is often validated via functional testing
that completed during User Acceptance Testing (UAT).
Therefore, it is not uncommon practice for projects to
reallocate this test activity to a functional test team.
Portability Testing
Portability testing evaluates the ability in which an asset may
be transferred from one operating platform to another;
including any re-configuration needed for it to be executed in
various types of environments.
The objective of portability testing is to ascertain the degree of
ease, or difficulty, in which an asset is effectively and efficiently
transferred from one operational platform to another; or to
alter the configuration of the operational platform.
Traditional thinking endeavoured to accommodate various
quality characteristics in the evaluation of software quality,
including adaptability of the asset, coexistence with other
assets and asset portability compliance.
These quality characteristics are confirmed via portability
testing and the sub-types of:
Compatibility Testing
Installability Testing
Interoperability Testing
Localization Testing
Test Method
The test method is developed in conjunction with its sub-types
to minimise on redundancy and test overlap. [REF-11] The method
should outline the portability requirements, including any
design standards to which the asset must conform. [REF-8] It is
measured by the maximum amount of effort required to
transfer the asset from one environment to another. [REF-12]
For example, this could include evaluating if the asset is able
to be operated from a variety of different browsers and
versions. [REF-8]
Compatibility Testing
Compatibility testing evaluates the ability to which an asset
can satisfactorily operate, function and coexist with other
independent assets operating and functioning in the same
shared environment, and where necessary, interoperate with
the other assets. See also section 4.8 Interoperability Testing.
Test Objective
The objective of Compatibility Testing is to ascertain whether
the asset can function alongside other dependent and/or
independent assets, whether communicating or noncommunicating, in a shared environment. [REF-8]
Scope Considerations
Phase test scope [REF-13] should consider inclusion of
Hardware
Networks
Operating System
User Interface (i.e. browser, mobile, smart TV)
Versions (backward and forward)
Backward: testing of the asset in earlier releases/
versions.
Schedule Considerations
Exclusion or delay of this test activity may result in conflicts
with other assets, inability to interoperate with other assets, or
compromised and/or insecure environments.
Installability Testing
Installability testing determines if an asset can be installed,
uninstalled, removed, and/or upgrade as required. ISO defines
it as a type of portability testing that is conducted to evaluate
whether an asset can be installed as required in all specified
environments. [REF-4]
Test Method
The method of testing for Installability is specified in terms of
the processes outlined in the assets installation manual, for
each pre-specified target environment. [REF-14] The installability
requirement should be defined as part of the overall asset
requirement.
Test Objective
Localization Testing
Scope Considerations
Should the installability requirements be incomplete or
missing, the test team may need to analyse possible attributes
of asset installation which are more or less desirable.
Derivation of installability requirements may be possible from
these attributes.
Installability testing and validation should also be considered in
conjunction with localization testing
Schedule Considerations
Installability testing is sometimes referred to as Implementation
or Deployment testing. It is common practice to retain
Installability testing until near the end of the release
development cycle. The project team ought to schedule the
test early enough where any defects and adjustments required
do not adversely impact the critical path, yet late enough to
ensure a stable asset in which to validate.
Interoperability Testing
Interoperability is the ability of making differing assets work
together (inter-operate). It describes the capability of different
assets to exchange data via a common set of exchange
formats, to read and write the same file formats, and to use
the same protocols. [REF-15]
According to ISO interoperability is defined as The capability
to communicate, execute programs, or transfer data among
various functional units in a manner that requires the user to
have little or no knowledge of the unique characteristics of
those units. [REF-16]
Test Method
Interoperability testing uses a model that outlines the syntax
and data format compatibility, sufficient physical and logical
connection methods, and the ease of use features. The
interoperation requirements should include design standards
to which the asset must conform.
Test Objective
Interoperability testing involves validation of whether an asset
is capable of communicating and exchanging data and
information with other assets within, or across, environments;
and whether the asset is able to make effective use of said
data and information received from the other assets. [REF-8]
Test Method
Localization testing should include (but is not limited to) an
analysis of whether any text appearing in the asset [REF-8] is not
mistranslated or misapplied [REF-17] by way of testing that
evaluates the linguistics used therein; specific to each country
or region of use.
Test Objective
The objective is to ensure that person or persons of a local
region are capable of understanding and using the asset
without having to translate the foreign language to their native
language, or worse the foreign variant of the same language to
their variant of a language.
Assuming that English is English is not always wise,
particularly when safe operation of the asset is paramount.
There are many variants of the language, not only differences
in spelling between dictionaries, but where the interpretation
and use of words and phrases alter amongst the English
speaking countries (e.g. Australia, India, United Kingdom,
United States and South Africa). This is not to mention those
countries that use English as a second language.
It is not only the English language that has many dialects and
variants; the same is true for many other languages including
Chinese, French, Russian and others.
Reliability Testing
In respect to asset quality reliability was first attempted to be
evaluated in terms of can the asset be easily analysed,
changed, maintain stability, undergo maintenance, efficiently
use resources, and be generally recoverable. These terms or
characteristics of quality are measured via reliability testing.
Reliability testing is a type of testing executed to determine the
probability that an asset will continue to perform its required
function without failure, or within tolerable performance levels,
under stated conditions for a stated period of time. [REF-18]
Those conditions may include:
Scope Considerations
Test Method
Test Method
Backup and recovery testing makes use of a test method
which articulates the backup and recovery requirements.
These requirements specify a need to backup the operational
state of the asset under test (including data, configuration and/
or environment settings), at various points in time prior to the
outage simulation or dataflow interruption. Then restore the
state of the asset under test from a backup closest to the
interruption (simulated or staged event).
The test compares the state of the restored asset under test
to the state of the asset pre-failure. The test may also compare
the process of restoration against the plan or procedures
for restoration.
Note: This type of testing may be used during the support of IT
disaster recovery tests.
Test Objective
Schedule Considerations
Test Method
Typically disaster recovery testing uses a model of validating
the DR strategy, plan or procedure; a document which details
the disaster recovery requirements, including any required
design standards to which the DR solution must comply. [REF-8]
Testing may include additional aspects including procedures
to be completed by operational staff, relocation of data,
software, personnel, or other facilities, or the recovery of
previously backed up data located at an offsite facility.
Test Objective
The objective of DR testing is to provide a level of assurance to
the organization that
Scope Considerations
If disaster recovery testing is omitted, or not validated for its
ability to function in conjunction with the documented
procedures, the result thereof may be inability to recover the
present asset; and may also adversely impact other preexisting assets ability to recover (of the same shared
environment). [REF-20]
For iterative projects an organization may wish to adopt a risk
based regression testing approach for components being
introduced into the production environment, thereby reducing
potential impacts to any cohabiting assets, for instances
where component (or partial component) implementations
may occur.
Schedule Considerations
Using a sequential style project methodology, the disaster
recovery test phase is often the last test phase performed
before engaging the implementation rehearsal exercises and
production cutover. However, in the world of agile and iterative
projects, disaster recovery testing may need to reconsider this
traditional placement in the schedule. As components,
instances and/or releases of the newly development asset are
introduced into the environment; they need to be continually
revalidated for their recoverability.
Depending on the size and complexity of the asset
development, it is not uncommon practice for the project team
to engage DR testing as an independent and separate test
activity or phase from OAT.
Maintainability Testing
Maintainability corresponds to the ability to change the asset.
Maintainability Testing is the determination as to how easy is it
for an asset to be retained in an operational state, or predetermined state or condition; through the application of an
acceptable amount of effort. [REF-21] Maintainability can be
indirectly evaluated by applying static analysis.
Test Method
Maintainability testing uses a model of the ability to maintain
the requirements of the asset. The requirements shall be
specified in terms of the effort required to effect change in
Adaptive, Corrective, Perfective and Preventative maintenance.
Performance Testing
Performance testing is a technique used to ascertain the
parameters of the asset in terms of responsiveness,
effectiveness and stability under various workloads.
This process involves quantitative tests performed to measure
and report on the load, stress, endurance, volume and
capacity threshold limits of the asset.
Performance testing measures the quality attributes of the
system, such as scalability, capacity and resource utilization.
Test Method
Performance testing uses a method of testing that pushes or
stresses the asset to evaluate the limits and thresholds of its
capabilities. This may be accomplished through: [REF-8]
Test Objective
Performance testing is performed to ascertain how well a
system performs in terms of responsiveness and stability
under a particular workload. The objective is to evaluate how
well an asset performs when it is placed under various types
and sizes of load. The evaluation may include: capacity,
endurance, load, stress and volume tests. [REF-8]
Schedule Considerations
Scope Considerations
Test Method
The documentation management process, as described in
ISO 12207 [REF-23], includes review of formats, technical content,
and presentation styles against established documentation
standards.
Testing is performed with both the asset and the
documentation, to evaluate that the documentation is fit-forpurpose and supports the users sufficiently in their use of the
asset. At a minimum, the documentation is validated [REF-21] to
include:
Schedule Considerations
Should procedure testing not be performed early enough
during the project life cycle an increased number of nonconformities (defects) may be encountered, resulting in
additional delays to the project time line. [REF-11]
Security Testing
ISO defines this as a type of testing conducted to evaluate
the degree to which [an asset], and associated data and
information, are protected so that unauthorised persona or
systems cannot use, read or modify them, and authorized
persons or systems are not denied access to them. [REF-4] It is
a technique used to ascertain if the asset protects the data
and maintains the functionalities as intended; in respect to
authentication, authorization, availability, confidentiality,
integrity and non-repudiation.
Test Method
There are varying techniques for assessing the security of an
asset:
Test Objective
Test Objective
Security testing, also known as Security & Penetration Testing,
is a type of testing whose primary purpose is to evaluate the
level of protection in which an asset (under test) secures and
controls access to its associated data so that only authorized
10
Scope Considerations
According to the Business Continuity Institute (BCI) and the
British Standards Institute (BSi) [REF-25] cyber-attack is the top
threat to security in information technology assets today.
Security validation and testing should be included, at
appropriate levels according to risks related to the asset, the
organization and its brand, for each and every environment
the asset is intended to operate within.
To exclude security testing would greatly increase the
probability of asset misuse.
Schedule Considerations
The optimal time to execute security testing will vary from
project to project. Threat model evaluations may be
conducted during design, and automated code-scanning may
occur throughout the project life cycle - particularly during or
immediately following agile and iterative development cycles.
More detailed vulnerability and threat analysis and penetration
testing should be executed close to the development cycle to
minimise repair cost whilst balancing a need to be on
production like deployment configuration.
Depending on the size and complexity of the asset
development, it is not uncommon practice for the project team
to engage Security testing as an independent and separate
test activity or phase from OAT.
Conclusion
Operational acceptance subsumes many types and sub-types
of testing, covering various attributes of quality. Organizations
may choose to employ Operational Acceptance Testing (OAT)
or Operational Readiness & Assurance (OR&A) tests to
evaluate these attributes associated with their traditional
sequential or modern iterative software development
methodologies; respectively.
Application of the international software testing standard ISO
29119, by certified testing professionals who are
knowledgeable in the interrelationship of the various standards
as they relate to OAT and OR&A will greatly increase an
organizations probability in:
2. http://slideshare.net/suhasreddy1/v-model-final
3. http://istqb.org/about-istqb/history.html
4. ISO/IEC/IEEE 29119-1:2013 Software and Systems
Engineering Software Testing Part 1
5. http://en.wikipedia.org/wiki/
Operations_readiness_and_assurance
6. http://w3.org/wiki/Accessibility_testing
7. Testing ASP.NET Web Applications, Jeff McWherter and
Ben Hall, Ch.9 - Accessibility Testing
Bibliographical References
1. ISTQB, International Software Testing Qualifications Board
Standard glossary of terms used in Software Testing,
Version 2.1 (dd. April 1st, 2010)
11
To find out how Capgemini and Sogetis Testing Services can help your organization achieve its Testing and QA business
goals, please contact your local Capgemini or Sogeti testing representative or our Global Testing Services Sales Team:
Anthony Woods
Test Manager
Sudhir Pai
VP Testing Service Line Lead - Australia
MCOS_GI_AH_20150717
www.capgemini.com/testing or
www.sogeti.com/testing