Software Testing
Software Testing
By Marcin Starzomski :P
By Marcin Starzomski :P
What is Testing
What is Testing
?
?
Testing is a process used to help
Testing is a process used to help
identify the correctness,
identify the correctness,
completeness and quality of
completeness and quality of
developed computer software.
developed computer software.
Testing is nothing but criticism or
Testing is nothing but criticism or
comparison, that is comparing the
comparison, that is comparing the
actual value with expected one.
actual value with expected one.
S
S
software faults and
software faults and
S
S
oftware failures
oftware failures
failure - the software does not do
failure - the software does not do
what the user expects
what the user expects
faults - error in the correctness of
faults - error in the correctness of
the semantic of a computer program
the semantic of a computer program
W
W
hite box
hite box
(
(
glass box
glass box
)
)
Testing
Testing
In white box or "glass box", testing
In white box or "glass box", testing
the test developer has access to the
the test developer has access to the
source code. They ensure that
source code. They ensure that
components used in the construction
components used in the construction
are functional to some degree.
are functional to some degree.
B
B
lack box
lack box
Testing
Testing
In black box testing the test
In black box testing the test
engineer only accesses the software
engineer only accesses the software
through the same interfaces that the
through the same interfaces that the
customer or user would.
customer or user would.
G
G
rey
rey
(G
(G
ray
ray
)
)
B
B
ox
ox
T
T
esting
esting
T
T
he typical grey box tester is
he typical grey box tester is
permitted to set up or manipulate the
permitted to set up or manipulate the
testing environment. It can also be
testing environment. It can also be
used of testers who know the internal
used of testers who know the internal
workings or algorithm of the
workings or algorithm of the
software under test and can write
software under test and can write
tests specifically for the anticipated
tests specifically for the anticipated
results.
results.
ALFA
ALFA
Testing Phase
Testing Phase
I
I
n the first phase of alpha testing,
n the first phase of alpha testing,
developers test the software using
developers test the software using
white box techniques. Additional
white box techniques. Additional
inspection is then performed using
inspection is then performed using
black box or grey box techniques.
black box or grey box techniques.
BETA Testing Phase
BETA Testing Phase
Versions of the software, known as beta-
Versions of the software, known as beta-
versions, are released to a limited
versions, are released to a limited
audience outside of the company. Testing
audience outside of the company. Testing
during the beta phase, informally called
during the beta phase, informally called
'beta testing, is generally constrained to
'beta testing, is generally constrained to
black box techniques although a core of
black box techniques although a core of
test engineers are likely to continue with
test engineers are likely to continue with
white box testing in parallel to the beta
white box testing in parallel to the beta
tests.
tests.
GAMMA Testing Phase :]
GAMMA Testing Phase :]
Cynics have referred to all software
Cynics have referred to all software
releases as "gamma testing" since
releases as "gamma testing" since
defects are found in almost all
defects are found in almost all
commercial, commodity and publicly
commercial, commodity and publicly
available software eventually
available software eventually
Remember !
Remember !
A
A
lpha and beta refer to stages of the
lpha and beta refer to stages of the
software before release (and also
software before release (and also
implicitly on the size of the testing
implicitly on the size of the testing
community, and the constraints on
community, and the constraints on
the testing methods), white box,
the testing methods), white box,
black box, and grey box refer to the
black box, and grey box refer to the
ways in which the tester accesses
ways in which the tester accesses
the target.
the target.
C
C
ycle o
ycle o
f
f
testing
testing
Requirements Analysis: Testing should begin in the
Requirements Analysis: Testing should begin in the
requirements phase of the software life cycle(SDLC).
requirements phase of the software life cycle(SDLC).
Design Analysis: During the design phase, testers work
Design Analysis: During the design phase, testers work
with developers in determining what aspects of a design
with developers in determining what aspects of a design
are testable and under what parameter those testers work.
are testable and under what parameter those testers work.
Test Planning: Test Strategy
Test Planning: Test Strategy
Test Development: Test Scenarios, Test Cases, Test Scripts
Test Development: Test Scenarios, Test Cases, Test Scripts
to use in testing software.
to use in testing software.
Test Execution: Testers execute the software based on the
Test Execution: Testers execute the software based on the
plans and tests and report any errors found to the
plans and tests and report any errors found to the
development team.
development team.
Test Reporting: Once testing is completed, testers
Test Reporting: Once testing is completed, testers
generate metrics and make final reports on their test effort
generate metrics and make final reports on their test effort
and whether or not the software tested is ready for
and whether or not the software tested is ready for
release.
release.
Retesting the Defects
Retesting the Defects
System testing
System testing
Most software produced today is
Most software produced today is
modular. System testing is a phase
modular. System testing is a phase
of software testing in which
of software testing in which
developers see if there are any
developers see if there are any
communications flaws--either not
communications flaws--either not
passing information, or passing
passing information, or passing
incorrect information--between
incorrect information--between
modules.
modules.
Code Coverage
Code Coverage
Code coverage is inherently a white box testing
Code coverage is inherently a white box testing
activity.process allows developers and quality
activity.process allows developers and quality
assurance personnel to look for parts of a system that
assurance personnel to look for parts of a system that
are rarely or never accessed under normal conditions
are rarely or never accessed under normal conditions
(error handling and the like) and helps reassure test
(error handling and the like) and helps reassure test
engineers that the most important conditions
engineers that the most important conditions
(function points) have been tested.
(function points) have been tested.
process allows developers and quality assurance
process allows developers and quality assurance
personnel to look for parts of a system that are rarely
personnel to look for parts of a system that are rarely
or never accessed under normal conditions (error
or never accessed under normal conditions (error
handling and the like) and helps reassure test
handling and the like) and helps reassure test
engineers that the most important conditions
engineers that the most important conditions
(function points) have been tested.
(function points) have been tested.
Testing Dilema
Testing Dilema
Exploratory vs. Scripted
Exploratory vs. Scripted
Manual vs. Automated
Manual vs. Automated
Thank you
Thank you
For paying atention to
For paying atention to
the end of teh presentation !
the end of teh presentation !