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