Testing Overview

Home
Up

 

 

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.
Copyright © 2001-2006 Anthony Cairns
Last modified: December 30, 2006