Professional Documents
Culture Documents
1
Testing
Definition : “Testing is the process of establishing confidence that a
program or system does what it is supposed to do” (Maciaszek and Liong
2004).
(We have not really got anything else to sell but quality)
2
What is meant by Quality Testing
(Testing)
3
Software Testing
Definition: “Testing is a process of planning, preparation and measuring
aimed at establishing the characteristics of an information system and
demonstrating the difference between the actual and the desired
status”(McDermid 1991).
4
Types of Software Testing
1. Function Testing
2. Performance Testing
System functional Other System Customer User
3. Acceptance Testing requirements requirements Requirements
specification
environment
4. Installation Testing
5
Function Testing (Types of Function Testing)
Unit Testing
Integration Testing
System Testing
6
Function Testing (Types of Function Testing)
Unit Testing
“Testing the individual programs as they are written”
Typically unit testing occurs with access to the code)
Integration Testing
Integration testing is process of verifying the interaction between system components.
Classical integration testing strategies, such as top-down or bottom-up, are used with
traditional, hierarchically strategies are rather architecture driven, which implies
integrating the software components or subsystems based on identified functional aspects
System Testing
System testing is concerned with the behaviour of a whole system
“Testing of group of programs”
System testing should compare the system to the non-functional system
requirements such as speed, accuracy, and reliability.
7
Function Testing (Types of Function Testing)
White Box Testing (Glass Box Testing)
White box testing, clear box testing, glass box testing or structural testing is used in
computer programming, software engineering and software testing to check that the
outputs of a program, given certain inputs, conform to the structural specification of the
program.
The term white box (or glass box) indicates that testing is done with knowledge of the
code used to execute certain functionality. For this reason, a programmer is usually
required to perform white box tests.
Black Box Testing
Black box testing or concrete box testing is used in computer programming,
software engineering and software testing to check that the outputs of a program, given
certain inputs, conform to the functional specification of the program. In electrical
hardware testing the specifications of the interface between the device and application
circuit is tested.
The term black box indicates that the internal implementation of the program
being executed is not examined by the tester. For this reason black box testing
is not normally carried out by the programmer. In most real-world engineering
firms, one group does design work while a separate group does the testing
(Black box testing, (Wikipedia)).
8
Performance Testing (Types of Performance Testing)
Stress tests
Volume tests
Configuration tests
Regression tests
Security tests
Maintenance tests
Compatibility tests
9
Performance Testing (Types of Performance Testing)
Stress tests
Evaluate the system when stressed to its limits over a short period of time.
If the requirements state that a system is to handle up to a specified number of devices
or users, a stress test evaluates system performance.
This test is especially important for systems that usually operate below maximum
capacity but are severely stressed at certain times of peak demand.
Volume tests
This test basically related to handling of large amounts of data in the system. For
example, we look at whether data structures have been defined to be large enough to
handle all possible situations.
In addition, we check fields, records, and files to see if their sizes can accommodate all
expected data.
Configuration tests
In this test we analyze the various software and hardware configurations specified in the
requirements.
A configuration test evaluates all possible configurations to make sure that each satisfies
the requirements. For instance, we may define a minimal system to serve a single user,
and other configurations build on the minimal configuration to serve additional user.
10
Performance Testing (Types of Performance Testing)
Regression tests
These tests are required when the system is tested in replacing an existing system.
The regression tests guarantee that the new system’s performance is at least as good as
that of the old. Regression tests are always used during a phased development.
Security tests
Security tests ensure that the security requirements are met.
We test system characteristics related to availability, integrity, and confidentiality of
data and services.
Maintenance tests
These address the need for diagnostic tools and procedures to help in finding the source
of problems.
We may be required to supply diagnostic programs, memory maps, traces of transactions, circuit
diagrams and other aids. We verify that the aids exist and that they function properly.
Compatibility tests
These are needed when system interfaces with other systems. We find out whether the
interface functions perform according to the requirements.
For instance, if the system is to communicate with a large database system to retrieve
information, a compatibility test examines the speed and accuracy of data retrieval.
11
Acceptance Testing (Types of Acceptance Testing)
It involves testing the system with data supplied by the system procurer rather
than simulated data developed as part of the testing.
It is also defined as, “Testing to verify the working of program for
implementation or use”. .
Acceptance testing often reveals errors and omissions in the system requirements
definition. The requirements may not reflect the actual facilities and performance
required by the user and testing may show that the system does not exhibit
expected performance or functionality
Alpha Test
Beta Test
Conformance test
12
Acceptance Testing (Types of Acceptance Testing)
Alpha Test
The in-house test is called an alpha test; the alpha version of a product still awaits full
debugging or full implementation of all its functionality, but satisfies a majority of the
software requirements.
It often lacks features promised in the final release, but demonstrates the feasibility and
basic structure of the software.
Beta Test
A beta version or beta release usually represents the first version of a computer program
that implements all features in the initial software requirements specification.
It is likely to be unstable but useful for internal demonstrations and previews to select
customers, but not yet ready for release.
Conformance test
Conformance testing is aimed at verifying whether the observed behaviour of the tested
system conforms to its specification (Pressman 1992).
13
Installation Testing
Installation testing
The final round of testing involves installing the system at user sites.
If acceptance testing has been performed on-site, installation testing
may not be needed. However, if acceptance testing conditions were
not the same as actual site conditions, additional testing is necessary.
Here we allocate files and assign access to appropriate functions and
data.
14