This document discusses structural and functional testing. Structural testing generates test cases based on the internal structure of a program, while functional testing generates test cases based on the program's functionality without considering internal structure. Some types of structural testing include statement coverage, branch coverage, path coverage, and conditional coverage. Types of functional testing include equivalence class partitioning and boundary value analysis. Testing has limitations in that it can find errors but not prove their absence, does not help find root causes, and only identifies known issues without uncovered defects.
3. TESTING
According to the glossary of the IEEE
standardization , testing is defined as:
“The process of analyzing a software
item to detect the differences between existing
and required conditions (that is, bugs) and
to evaluate the features of
the software item”
4. GOALS OF TESTING
Goal of testing:
finding faults in the software
producing a zero defect software
testing should be traceable
it should be deterministic
7. Cont…
Test a program innovatively
Use both static and dynamic testing
8. STRUCTURAL TESTING
Generates test cases based on the structure of
the program
Also known as white box testing
The internal structure of the program is taken
into account
9. FUNCTIONAL TESTING
Generates test cases based on the functionality
of the software
Also known as black box testing
The internal structure of the program is hidden
from the testing process
10. Cont…
Identify the functions which software is
expected to perform
Treats the software as a "black box", examining
functionality without any knowledge of
internal implementation
11. TYPES OF STRUCTURAL
TESTING
The different types of structural testing
are :
Statement coverage: all statements in the
programs should be executed at least once
Branch coverage: all branches in the
program should be executed at least once
12. Cont…
Path coverage: all execution paths in the
program should be executed at lest once
Conditional coverage: For conditional
branches, this means that, we execute the
TRUE branch at least once and the FALSE
branch at least once
13. TYPES OF FUNCTIONAL
TESTING
The different types of functional testing are:
Equivalence class partitioning: In this
approach, the domain of input values to a
program is partitioned into a set of equivalent
classes
Boundary value analysis: It is the analysis of
the programming error that frequently occurs at
the boundaries of different equivalence classes of
inputs
14. LIMITATIONS
Testing can be used to show the presence of
errors, but never to show their absence
Software testing does not help in finding root
causes
It can only identify the known issues or errors.
It gives no idea about defects still uncovered.