Testing

The software industry has long been known as "ship first, then test".  How can you deliver a product to your business partners at high speed and ensure quality?  Unfortunately you cannot do both.  However you can reduce the risk by testing.

 

What is testing?  In reality it is an extension of programming.  If programming is writing code, then testing is the implementation of that code and to see if it works in the environment it is to be installed in. Many projects have run over because the “testing” portion of the project is only allowed a few days or weeks, when in reality it needed much more time and attention. 

 

Simply put, successful testing always involves the development of a test strategy/plan and test cases/scenarios. How do you test something you do not know what you are testing? This activity must begin during the analysis and design of the project when expected results are being defined.  This greatly improves the exercise of testing and validates the documented business rules the software will perform.  The test plan helps achieve the test objectives.  After the test plan and test cases are developed, create the test data that represents conditions that occur in actual processing. 

 

Once the strategy, plan and cases are developed, testing takes place in two major phases.  In the first phase, the development team conducts its own tests of the software which include unit tests, integration tests and system tests.  The development team corrects errors as they surface, and identifies and documents any updates to the business rules with the business partners.  The team may also perform regression testing ensuring that correcting a particular part of the software does not cause problems in other parts.  

 

In the second phase of testing, the business partners take a much more active role and conduct their own system tests (called acceptance testing) to determine whether the software can be accepted for production use.  System performance can be validated with benchmark tests.

 

Performance testing is done after unit testing.  The objective is to measure resources (memory, disk, etc) required and to determine system response time.  Performance testing can be combined with systems testing or partially in acceptance testing.

 

Applications Software Test Objectives and Test Techniques *

Testing Technique

Test Objective Description

Concurrency Test

To test whether multiple users can create system deadlocks or damage each other’s work.

Configuration Test

To verify that the product can be installed and operated in different hardware and software environments.

Conversion Test

To determine whether old data files an record balances are carried forward accurately and properly.

Function Test

To verify that each required capability is implemented correctly.

Integration Test

To test a group of programs to see that a transaction or data passes between programs.

Interface Test

To demonstrate that all systems work in concert.

Load/Volume Test

To test whether simultaneous users can overload the system.

Parallel Test

To verify that each test results from the two systems are compared with each other.

Performance Test

To measure resources required such as memory, disk and to determine system response time.

Pilot Test

To test a new system in one department or division at a time until enough experience is gained prior to launching an all-out implementation throughout the organization.

Production Acceptance Test

To test operational preparedness of a new system prior to move from test to production environment.

Quality Assurance Test

To make the software product fail.

Recovery Test

To determine whether the system can function normally after a system failure, error or other malfunction.

Regression Test

To verify that changes do not introduce new errors.

Security Test

To determine whether unauthorized people can use computer resources.

Stress Test

To verify boundary conditions of a program.

System Test

To test the entire system to prove the validity of the software requirements definition and design specifications including its interfaces.

Unit Test

To test individual programs, modules, subroutines or subprograms to verify their functionality.

User Acceptance Test

To test software functions and features; to determine if the system meets business needs; and to see if the system was developed according to user requirements.

 

 

* adapted from the ICCP Official Exam Review Outline Copyright 2000

Copyright © Rehm Technology LLC. All rights reserved.