|
|
|
|
Overview Although
testing is usually perceived as a necessity in software development it is rarely
applied as a rigorous activity. Within
many projects, testing is simply omitted altogether; in others, it is executed
with the distinct intent to prove that the application performs correctly under
test conditions. Software problems are can be up to 1000 times more costly to find and repair
after deployment. Having software tested at several points throughout a
project’s life cycle is crucial, as it allows an early elimination of
architectural defects and ensures the validation of software functions. Due
to the process of software development maturing over the years, with the
inception and use of formal methods, more formal testing methods and techniques
have been adopted by testing professionals. The
most common reasons for testing software are as follows: Ø
To ensure that it corresponds to its design
specification Ø
To establish what the limitations are
Ø
To mitigate the risk of failure Ø
To provide confidence that it performs adequately Ø
To uncover defects Ø To understand the risks involved in releasing a new or upgraded version
When looking at the needs of testing the overall risks
must be addressed for the AUT (Application Under Test), these include: Ø
The business, safety or security criticality Ø
The commercial and/or public visibility
The
following diagram reflects areas that must be taken into consideration when
planning on implementing a testing process to a project.
Any
organisation must first examine the issues involved in introducing a testing
process into an organisation and the management of its successful adoption and
use. When
any software development project is started the following have to be taken into
account as early as possible as to ensure the overall success in a controlled
manner as possible: Ø
Obtain management commitment and involvement o
Project needs by the business o
Establish any existing baseline software testing
practices o
Identify related organisational processes o
Establish the scope and scale of the overall testing
process o
What staff are required o
What the costs are o
What the quality level is to be o
What timeline must the project be based upon o
How much effort is required to implement a test
strategy o
Any external factors o
Outline what training and mentoring are available o
How will your organisation monitor and improve the
testing process
Each of these outlined items is detailed further
below. The first key task is to ensure that the
introduction of the testing process is fully supported by the appropriate senior
management within the organisation. It
is important that the senior management is fully aware of the importance of a
formal testing process as well as the potential cost of not following good
testing practices. Any project that is being undertaken or proposed
must initially establish what the business needs from the project itself. Once any existing levels of software testing have
been assessed in an organisation then it will be possible to identify a baseline
from which to govern testing practices. Due to information technology departments, quality
assurance departments and specific business areas existing in most organisations
there is a need to identify what other processes already exist that may have an
impact on the testing process, such as management practices and development
standards. This will provide an
effective means of promoting the benefits of the testing process. When organisations consider the scope and scale of
the overall testing process it must be established as to whether the intention
is to implement and perform an organisation-wide testing process or a
small-scale rollout of the process, these are generally decided based upon a
mixture of cost and organisational difficulties. The staff requirements must be estimated as early
as possible, as to ensure that any lead times for recruitment and staff
allocation can be taken into account. The overall costs of the entire testing process
definition and performance must also be taken into account, as these can quite
easily escalate beyond expectation if control is not maintained. A decision must be made to state the level of
quality that is expected from the final delivery, as this is also likely to have
an impact on the overall costs of the project. Most projects will have an idea of the timescales
that are required for the implementation; this is likely to make an impact on
the overall staffing requirements and costs. A certain amount of effort will have to be realised
during the planning of any test strategy implementation, which is likely to
comprise of many areas from within the organisation, and is certain to require
external resources due to the expertise required throughout. External factors will need to be considered, such
as with external vendor developed work for additional development work on their
own products, or input from external governing standards agencies or from
governmental sources as a result of changes in legal requirements. To ensure the successful implementation and use of
the testing process it is essential that suitable staff training is provided as
well as the allocation of a mentor, who will provide training and mentoring to
other staff in need of guidance. Once a formal testing process has been introduced
it is vital that the progress is monitored so that the benefits of introducing
the process can be quantified and the process can be improved. Progress reports
and metrics will be used to provide this information to the senior management
and other areas within an organisation.
|
Send mail to Anthony.Cairns@AnthonyCairns.com with
questions or comments about this web site.
|